package com.sp2p.action.front; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.math.BigDecimal; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; import javax.xml.rpc.ServiceException; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.ServletActionContext; import com.hehenian.biz.common.account.IPersonService; import com.hehenian.biz.common.account.IPhoneVerifyService; import com.hehenian.biz.common.account.dataobject.AccountUserDo; import com.hehenian.biz.common.account.dataobject.PersonDo; import com.hehenian.biz.common.account.dataobject.PhoneVerifyDo; import com.hehenian.biz.common.base.result.IResult; import com.hehenian.biz.common.invite.IRecommandRewardService; import com.hehenian.biz.common.invite.InviteDetailService; import com.hehenian.biz.common.invite.InviteFriendService; import com.hehenian.biz.common.invite.dataobject.InviteDetail; import com.hehenian.biz.common.invite.dataobject.InviteFriend; import com.hehenian.biz.common.invite.dataobject.InviteType; import com.hehenian.biz.common.invite.dataobject.RecommondRewardDo; import com.hehenian.web.common.util.CommonUtils; import com.hehenian.web.common.util.ServletUtils; import com.shove.Convert; import com.shove.data.DataException; import com.shove.util.SqlInfusion; import com.shove.vo.PageBean; import com.shove.web.util.JSONUtils; import com.sp2p.constants.IConstants; import com.sp2p.service.BeVipService; import com.sp2p.service.IDCardValidateService; import com.sp2p.service.RegionService; import com.sp2p.service.UserService; import com.sp2p.service.ValidateService; public class FrontMyInformation extends BaseFrontAction { public static Log log = LogFactory.getLog(FrontMyInformation.class); private static final long serialVersionUID = 1L; private UserService userService; private RegionService regionService; private ValidateService validateService; private BeVipService beVipService; @SuppressWarnings("unused") private IDCardValidateService iDCardValidateService; private List<Map<String, Object>> provinceList; private List<Map<String, Object>> cityList; private List<Map<String, Object>> areaList; private List<Map<String, Object>> regcityList; private long workPro = -1L;// 初始化省份默认值 private long cityId = -1L;// 初始化话默认城市 private long regPro = -1L;// 户口区域默认值 private long regCity = -1L;// 户口区域默认值 private IPhoneVerifyService phoneVerifyService; private InviteFriendService inviteFriendService; private List<InviteFriend> inviteFriendList; private InviteDetail inviteDetail; private InviteDetailService inviteDetailService; private IPersonService personService; private IRecommandRewardService recommandRewardService; private RecommondRewardDo recommondRewardDo; private RecommondRewardDo sumRecommondRewardDo; public RecommondRewardDo getSumRecommondRewardDo() { return sumRecommondRewardDo; } public void setSumRecommondRewardDo(RecommondRewardDo sumRecommondRewardDo) { this.sumRecommondRewardDo = sumRecommondRewardDo; } public RecommondRewardDo getRecommondRewardDo() { return recommondRewardDo; } public void setRecommondRewardDo(RecommondRewardDo recommondRewardDo) { this.recommondRewardDo = recommondRewardDo; } /** * @param recommandRewardService the recommandRewardService to set */ public void setRecommandRewardService(IRecommandRewardService recommandRewardService) { this.recommandRewardService = recommandRewardService; } /** * @param personService the personService to set */ public void setPersonService(IPersonService personService) { this.personService = personService; } /** * @param inviteDetailService the inviteDetailService to set */ public void setInviteDetailService(InviteDetailService inviteDetailService) { this.inviteDetailService = inviteDetailService; } /** * @return the inviteDetail */ public InviteDetail getInviteDetail() { return inviteDetail; } /** * @param inviteDetail the inviteDetail to set */ public void setInviteDetail(InviteDetail inviteDetail) { this.inviteDetail = inviteDetail; } /** * @return the inviteFriendList */ public List<InviteFriend> getInviteFriendList() { return inviteFriendList; } /** * @param inviteFriendList the inviteFriendList to set */ public void setInviteFriendList(List<InviteFriend> inviteFriendList) { this.inviteFriendList = inviteFriendList; } /** * @param inviteFriendService the inviteFriendService to set */ public void setInviteFriendService(InviteFriendService inviteFriendService) { this.inviteFriendService = inviteFriendService; } public void setPhoneVerifyService(IPhoneVerifyService phoneVerifyService) { this.phoneVerifyService = phoneVerifyService; } //开设汇付账户 public String registerChinaHHN() { AccountUserDo user = (AccountUserDo) session().getAttribute("user"); String idNO = null; try { idNO = userService.queryIdNO(user.getId()); } catch (SQLException e) { e.printStackTrace(); } // user.setIdNo(idNO); request().setAttribute("idNo", idNO); request().setAttribute("usrCustId", user.getUsrCustId()); return SUCCESS; } /** * 查询个详细信息 * * @return * @throws Exception */ public String queryBaseData() throws Exception { Map<String, String> map = new HashMap<String, String>(); AccountUserDo user = (AccountUserDo) session().getAttribute("user"); String birth = null; String rxedate = null; if (user != null) { map = userService.queryPersonById(user.getId()); if (map != null && map.size() > 0) { workPro = Convert.strToLong(map.get("nativePlacePro") + "", -1L); cityId = Convert.strToLong(map.get("nativePlaceCity") + "", -1L); regPro = Convert.strToLong(map.get("registedPlacePro") + "", -1L); regCity = Convert.strToLong(map.get("registedPlaceCity") + "", -1L); birth = Convert.strToStr(map.get("birthday"), null); rxedate = Convert.strToStr(map.get("eduStartDay"), null); if (birth != null) { birth = birth.substring(0, 10); } if (rxedate != null) { rxedate = rxedate.substring(0, 10); } } } else { return "login"; } provinceList = regionService.queryRegionList(-1L, 1L, 1); cityList = regionService.queryRegionList(-1L, workPro, 2); regcityList = regionService.queryRegionList(-1L, regPro, 2); request().setAttribute("map", map); request().setAttribute("provinceList", provinceList); request().setAttribute("cityList", cityList); request().setAttribute("regcityList", regcityList); request().setAttribute("birth", birth); request().setAttribute("rxedate", rxedate); request().setAttribute("realName", map.get("realName")); String tab_type = SqlInfusion.FilteSqlInfusion(request("tab_type") == null ? null : request("tab_type")); if (tab_type != null) { request().setAttribute("tab_type", tab_type); } String yy = SqlInfusion.FilteSqlInfusion(request("yy") == null ? null : request("yy")); if (yy != null) { request().setAttribute("yy", yy); } Map<String, String> pmap = userService.queryPersonById(user.getId()); if (pmap != null && pmap.size() > 0) { request().setAttribute("pass", pmap.get("auditStatus")); } int authStep = user.getAuthStep(); if (authStep < 2) { request().setAttribute("person", "0"); } else { request().setAttribute("person", "1"); } request().setAttribute("ISDEMO", IConstants.ISDEMO); return SUCCESS; } // 添加或更新个人信息 public String updateUserBaseData() throws SQLException, IOException, DataException, NumberFormatException, ParseException { AccountUserDo user = (AccountUserDo) session("user"); JSONObject json = new JSONObject(); String realName = SqlInfusion.FilteSqlInfusion(paramMap.get("realName"));// 真实姓名 if (StringUtils.isBlank(realName)) { json.put("msg", "请正确填写真实名字"); JSONUtils.printObject(json); return null; } else if (2 > realName.length() || 20 < realName.length()) { json.put("msg", "真实姓名的长度为不小于2和大于20"); JSONUtils.printObject(json); return null; } String idNo = SqlInfusion.FilteSqlInfusion(paramMap.get("idNo"));// 身份证号码 long len = idNo.length(); if (StringUtils.isBlank(idNo)) { json.put("msg", "请正确输入身份证号码"); JSONUtils.printObject(json); return null; } else if (15 != len) { if (18 == len) { } else { json.put("msg", "请正确输入身份证号码"); JSONUtils.printObject(json); return null; } } // 验证身份证 String iDresutl = ""; // iDresutl = iDCardValidateService.IDCardValidate(idNo); if (iDresutl != "") { json.put("msg", "身份证不合法"); JSONUtils.printObject(json); return null; } String cellPhone = SqlInfusion.FilteSqlInfusion(paramMap.get("cellPhone"));// 手机号码 // 判断是否是手机注册用户 String iscellPhone = SqlInfusion.FilteSqlInfusion(paramMap.get("iscellPhone")); if (StringUtils.isBlank(iscellPhone)) { if (StringUtils.isBlank(cellPhone)) { json.put("msg", "请正确填写手机号码"); JSONUtils.printObject(json); return null; } else if (cellPhone.length() < 9 || cellPhone.length() > 15) { json.put("msg", "手机号码长度不对"); JSONUtils.printObject(json); return null; } /** * 判定用户是否已存在记录 */ Map<String, String> pMap = null; pMap = beVipService.queryPUser(user.getId()); // 验证手机的唯一性 Map<String, String> phonemap = null; phonemap = beVipService.queryIsPhone(cellPhone); if (pMap == null) { if (phonemap != null) { json.put("msg", "手机已存在"); JSONUtils.printObject(json); return null; } if (phonemap == null) { String phonecode = null; try { Object obje = session().getAttribute("phone"); if (obje != null) { phonecode = obje.toString(); } else { json.put("msg", "请输入正确的验证码"); JSONUtils.printObject(json); return null; } } catch (Exception e) { e.printStackTrace(); } if (phonecode != null) { if (!phonecode.trim().equals(cellPhone.trim())) { json.put("msg", "与获取验证码手机号不一致"); JSONUtils.printObject(json); return null; } } // 验证码 String vilidataNum = SqlInfusion.FilteSqlInfusion(paramMap.get("vilidataNum")); if (StringUtils.isBlank(vilidataNum)) { json.put("msg", "请填写验证码"); JSONUtils.printObject(json); return null; } String randomCode = null; Object objec = session().getAttribute("randomCode"); if (objec != null) { randomCode = objec.toString(); } else { json.put("msg", "请输入正确的验证码"); JSONUtils.printObject(json); return null; } if (randomCode != null) { if (!randomCode.trim().equals(vilidataNum.trim())) { json.put("msg", "请输入正确的验证码"); JSONUtils.printObject(json); return null; } } } } } String sex = SqlInfusion.FilteSqlInfusion(paramMap.get("sex"));// 性别(男 女) if (StringUtils.isBlank(sex)) { json.put("msg", "请正确填写性别"); JSONUtils.printObject(json); return null; } String birthday = SqlInfusion.FilteSqlInfusion(paramMap.get("birthday"));// 出生日期 if (StringUtils.isBlank(birthday)) { json.put("msg", "请正确填写出生日期"); JSONUtils.printObject(json); return null; } String highestEdu = SqlInfusion.FilteSqlInfusion(paramMap.get("highestEdu"));// 最高学历 if (StringUtils.isBlank(highestEdu)) { json.put("msg", "请正确填写最高学历"); JSONUtils.printObject(json); return null; } String eduStartDay = SqlInfusion.FilteSqlInfusion(paramMap.get("eduStartDay"));// 入学年份 if (StringUtils.isBlank(eduStartDay)) { json.put("msg", "请正确填写入学年份"); JSONUtils.printObject(json); return null; } String school = SqlInfusion.FilteSqlInfusion(paramMap.get("school"));// 毕业院校 if (StringUtils.isBlank(school)) { json.put("msg", "请正确填写入毕业院校"); JSONUtils.printObject(json); return null; } String maritalStatus = SqlInfusion.FilteSqlInfusion(paramMap.get("maritalStatus"));// 婚姻状况(已婚 未婚) if (StringUtils.isBlank(maritalStatus)) { json.put("msg", "请正确填写入婚姻状况"); JSONUtils.printObject(json); return null; } String hasChild = SqlInfusion.FilteSqlInfusion(paramMap.get("hasChild"));// 有无子女(有 无) if (StringUtils.isBlank(hasChild)) { json.put("msg", "请正确填写入有无子女"); JSONUtils.printObject(json); return null; } String hasHourse = SqlInfusion.FilteSqlInfusion(paramMap.get("hasHourse"));// 是否有房(有 无) if (StringUtils.isBlank(hasHourse)) { json.put("msg", "请正确填写入是否有房"); JSONUtils.printObject(json); return null; } String hasHousrseLoan = SqlInfusion.FilteSqlInfusion(paramMap.get("hasHousrseLoan"));// 有无房贷(有 无) if (StringUtils.isBlank(hasHousrseLoan)) { json.put("msg", "请正确填写入有无房贷"); JSONUtils.printObject(json); return null; } String hasCar = SqlInfusion.FilteSqlInfusion(paramMap.get("hasCar"));// 是否有车 (有 无) if (StringUtils.isBlank(hasCar)) { json.put("msg", "请正确填写入是否有车"); JSONUtils.printObject(json); return null; } String hasCarLoan = SqlInfusion.FilteSqlInfusion(paramMap.get("hasCarLoan"));// 有无车贷 (有 无) if (StringUtils.isBlank(hasCarLoan)) { json.put("msg", "请正确填写入有无车贷"); JSONUtils.printObject(json); return null; } Long nativePlacePro = Convert.strToLong(paramMap.get("nativePlacePro"), -1);// 籍贯省份(默认为-1) if (StringUtils.isBlank(nativePlacePro.toString())) { json.put("msg", "请正确填写入籍贯省份"); JSONUtils.printObject(json); return null; } Long nativePlaceCity = Convert.strToLong(paramMap.get("nativePlaceCity"), -1);// 籍贯城市 // (默认为-1) if (StringUtils.isBlank(nativePlaceCity.toString())) { json.put("msg", "请正确填写入籍贯城市"); JSONUtils.printObject(json); return null; } Long registedPlacePro = Convert.strToLong(paramMap.get("registedPlacePro"), -1);// 户口所在地省份(默认为-1) if (StringUtils.isBlank(registedPlacePro.toString())) { json.put("msg", "请正确填写入户口所在地省份"); JSONUtils.printObject(json); return null; } Long registedPlaceCity = Convert.strToLong(paramMap.get("registedPlaceCity"), -1);// 户口所在地城市(默认为-1) if (StringUtils.isBlank(registedPlaceCity.toString())) { json.put("msg", "请正确填写入户口所在地城市"); JSONUtils.printObject(json); return null; } String address = SqlInfusion.FilteSqlInfusion(paramMap.get("address"));// 所在地 if (StringUtils.isBlank(address)) { json.put("msg", "请正确填写入所在地"); JSONUtils.printObject(json); return null; } String telephone = SqlInfusion.FilteSqlInfusion(paramMap.get("telephone"));// 居住电话 if (StringUtils.isBlank(telephone)) { json.put("msg", "请正确填写入你的家庭电话"); JSONUtils.printObject(json); return null; } if (!StringUtils.isBlank(telephone)) { if (!StringUtils.isNumeric(telephone)) { json.put("msg", "你的家庭电话输入不正确"); JSONUtils.printObject(json); return null; } if (telephone.trim().length() < 7 || telephone.trim().length() > 11) { json.put("msg", "你的家庭电话输入长度不对"); JSONUtils.printObject(json); return null; } } /* 用户头像 */ String personalHead = SqlInfusion.FilteSqlInfusion(paramMap.get("personalHead"));// 个人头像 (默认系统头像) if (StringUtils.isBlank(personalHead)) { personalHead = null; json.put("msg", "请正确上传你的个人头像"); JSONUtils.printObject(json); return null; } if (user == null) { json.put("msg", "超时请重新登录"); JSONUtils.printObject(json); return null; } long personId = -1L; if (iscellPhone != null) { cellPhone = iscellPhone; } personId = userService.updateUserBaseData(realName, cellPhone, sex, birthday, highestEdu, eduStartDay, school, maritalStatus, hasChild, hasHourse, hasHousrseLoan, hasCar, hasCarLoan, nativePlacePro, nativePlaceCity, registedPlacePro, registedPlaceCity, address, telephone, personalHead, user.getId(), idNo); if (personId > 0) { // == if (user.getAuthStep() == 1) { user.setAuthStep(2); } session().removeAttribute("randomCode"); // user.setPersonalHead(personalHead);// 将个人头像放到session里面 json.put("msg", "保存成功"); JSONUtils.printObject(json); request().setAttribute("person", "1"); // user.setRealName(realName); session().setAttribute("user", user); return null; // 成功 } else { json.put("msg", "保存失败"); // 失败 JSONUtils.printObject(json); return null; } } /** * * 初始化工作认证信息, * * @return * @throws Exception */ public String queryWorkInit() throws Exception { // ============================== Map<String, String> map = new HashMap<String, String>(); Map<String, String> allworkmap = new HashMap<String, String>(); AccountUserDo user = (AccountUserDo) session().getAttribute("user"); provinceList = regionService.queryRegionList(-1L, 1L, 1); request().setAttribute("provinceList", provinceList); map = validateService.queryWorkDataById(user.getId()); allworkmap = validateService.queryAllWorkStatus(user.getId()); if (map != null && map.size() > 0) { workPro = Convert.strToLong(map.get("workPro").toString(), -1L); cityId = Convert.strToLong(map.get("workCity").toString(), -1L); } cityList = regionService.queryRegionList(-1L, workPro, 2); request().setAttribute("cityList", cityList); request().setAttribute("map", map); request().setAttribute("allworkmap", allworkmap); Map<String, String> pmap = userService.queryPersonById(user.getId()); if (pmap != null && pmap.size() > 0) { request().setAttribute("pass", pmap.get("auditStatus")); } // 得都用户基本资料信息 Map<String, String> mapList = userService.queryPersonById(user.getId()); if (mapList == null) { mapList = new HashMap<String, String>(); } int authStep = user.getAuthStep(); if (authStep < 2) { request().setAttribute("person", "0"); } else { request().setAttribute("person", "1"); } request().setAttribute("realName", pmap.get("realName")); return SUCCESS; } // ============================= /** * * 初始化基本资料信息, * * @return * @throws Exception */ public String queryBasicInit() throws Exception { Map<String, String> map = new HashMap<String, String>(); AccountUserDo user = (AccountUserDo) session().getAttribute("user"); String birth = null; String rxedate = null; if (user != null) { map = userService.queryPersonById(user.getId()); if (map != null && map.size() > 0) { workPro = Convert.strToLong(map.get("nativePlacePro").toString(), -1L); cityId = Convert.strToLong(map.get("nativePlaceCity").toString(), -1L); regPro = Convert.strToLong(map.get("registedPlacePro").toString(), -1L); regCity = Convert.strToLong(map.get("registedPlaceCity").toString(), -1L); birth = Convert.strToStr(map.get("birthday"), null); rxedate = Convert.strToStr(map.get("eduStartDay"), null); if (birth != null) { birth = birth.substring(0, 10); } if (rxedate != null) { rxedate = rxedate.substring(0, 10); } } } // 判断用户是否已经填写了基本信息 String flag = ""; if (map != null && map.size() > 0) {// 用户基本资料有数据但是不一定是已经填写了基本资料信息 // 还有可能是上传了个人头像 if (!StringUtils.isBlank(map.get("realName"))) {// 不为空 flag = "1"; } else { flag = "2"; } } else { flag = "2"; } request().setAttribute("flag", flag); provinceList = regionService.queryRegionList(-1L, 1L, 1); cityList = regionService.queryRegionList(-1L, workPro, 2); regcityList = regionService.queryRegionList(-1L, regPro, 2); request().setAttribute("map", map); request().setAttribute("provinceList", provinceList); request().setAttribute("cityList", cityList); request().setAttribute("regcityList", regcityList); request().setAttribute("birth", birth); request().setAttribute("rxedate", rxedate); request().setAttribute("ISDEMO", IConstants.ISDEMO); return SUCCESS; } /** * 更新的工作认证资料添加 * * @throws SQLException * @throws IOException * @throws DataException */ public String updateUserWorkData() throws SQLException, IOException, DataException { JSONObject json = new JSONObject(); AccountUserDo user = (AccountUserDo) session().getAttribute("user"); if (user.getAuthStep() == 1) { // 个人信息认证步骤 json.put("msg", "querBaseData"); JSONUtils.printObject(json); return null; } String orgName = SqlInfusion.FilteSqlInfusion(paramMap.get("orgName")); if (StringUtils.isBlank(orgName)) { json.put("msg", "请正确填写公司名字"); JSONUtils.printObject(json); return null; } else if (2 > orgName.length() || 50 < orgName.length()) { json.put("msg", "公司名字长度为不小于2和大于50"); JSONUtils.printObject(json); return null; } String occStatus = SqlInfusion.FilteSqlInfusion(paramMap.get("occStatus")); if (StringUtils.isBlank(occStatus)) { json.put("msg", "请填写职业状态"); JSONUtils.printObject(json); return null; } Long workPro = Convert.strToLong(paramMap.get("workPro"), -1L); if (workPro == null || workPro == -1L) { json.put("msg", "请填写工作城市省份"); JSONUtils.printObject(json); return null; } Long workCity = Convert.strToLong(paramMap.get("workCity"), -1L); if (workCity == null || workCity == -1L) { json.put("msg", "请填写工作城市"); JSONUtils.printObject(json); return null; } String companyType = SqlInfusion.FilteSqlInfusion(paramMap.get("companyType")); if (StringUtils.isBlank(companyType)) { json.put("msg", "请填写公司类别"); JSONUtils.printObject(json); return null; } String companyLine = SqlInfusion.FilteSqlInfusion(paramMap.get("companyLine")); if (StringUtils.isBlank(companyLine)) { json.put("msg", "请填写公司行业"); JSONUtils.printObject(json); return null; } String companyScale = SqlInfusion.FilteSqlInfusion(paramMap.get("companyScale")); if (StringUtils.isBlank(companyScale)) { json.put("msg", "请填写公司规模"); JSONUtils.printObject(json); return null; } String job = SqlInfusion.FilteSqlInfusion(paramMap.get("job")); if (StringUtils.isBlank(job)) { json.put("msg", "请填写职位"); JSONUtils.printObject(json); return null; } String monthlyIncome = SqlInfusion.FilteSqlInfusion(paramMap.get("monthlyIncome")); if (StringUtils.isBlank(monthlyIncome)) { json.put("msg", "请填写月收入"); JSONUtils.printObject(json); return null; } String workYear = SqlInfusion.FilteSqlInfusion(paramMap.get("workYear")); if (StringUtils.isBlank(workYear)) { json.put("msg", "请填写现单位工作年限"); JSONUtils.printObject(json); return null; } String companyTel = SqlInfusion.FilteSqlInfusion(paramMap.get("companyTel")); if (StringUtils.isBlank(companyTel)) { json.put("msg", "请真确填写公司电话"); JSONUtils.printObject(json); return null; } if (!StringUtils.isNumeric(companyTel)) { json.put("msg", "请真确填写公司电话"); JSONUtils.printObject(json); return null; } if (companyTel.trim().length() < 7 || companyTel.trim().length() > 11) { json.put("msg", "请真确填写公司电话"); JSONUtils.printObject(json); return null; } String workEmail = SqlInfusion.FilteSqlInfusion(paramMap.get("workEmail")); if (StringUtils.isBlank(workEmail)) { json.put("msg", "请填写工作邮箱"); JSONUtils.printObject(json); return null; } String companyAddress = SqlInfusion.FilteSqlInfusion(paramMap.get("companyAddress")); if (StringUtils.isBlank(companyAddress)) { json.put("msg", "请填写公司地址"); JSONUtils.printObject(json); return null; } String directedName = SqlInfusion.FilteSqlInfusion(paramMap.get("directedName")); if (StringUtils.isBlank(directedName)) { json.put("msg", "请填写直系人姓名"); JSONUtils.printObject(json); return null; } else if (2 > directedName.length() || 50 < directedName.length()) { json.put("msg", "直系人姓名长度为不小于2和大于50"); JSONUtils.printObject(json); return null; } String directedRelation = SqlInfusion.FilteSqlInfusion(paramMap.get("directedRelation")); if (StringUtils.isBlank(directedRelation)) { json.put("msg", "请填写直系人关系"); JSONUtils.printObject(json); return null; } String directedTel = SqlInfusion.FilteSqlInfusion(paramMap.get("directedTel")); if (StringUtils.isBlank(directedTel)) { json.put("msg", "请真确填写直系人电话"); JSONUtils.printObject(json); return null; } if (!StringUtils.isNumeric(directedTel)) { json.put("msg", "请真确填写直系人电话"); JSONUtils.printObject(json); return null; } if (directedTel.trim().length() != 11) { json.put("msg", "请真确填写直系人电话长度错误"); JSONUtils.printObject(json); return null; } String otherName = SqlInfusion.FilteSqlInfusion(paramMap.get("otherName")); if (StringUtils.isBlank(workPro.toString())) { json.put("msg", "请填写其他人姓名"); JSONUtils.printObject(json); return null; } else if (2 > otherName.length() || 50 < otherName.length()) { json.put("msg", "其他人姓名长度为不小于2和大于50"); JSONUtils.printObject(json); return null; } String otherRelation = SqlInfusion.FilteSqlInfusion(paramMap.get("otherRelation")); if (StringUtils.isBlank(otherRelation)) { json.put("msg", "请填写其他人关系"); JSONUtils.printObject(json); return null; } String otherTel = SqlInfusion.FilteSqlInfusion(paramMap.get("otherTel")); if (StringUtils.isBlank(otherTel)) { json.put("msg", "请正确填写其他人联系电话"); JSONUtils.printObject(json); return null; } if (!StringUtils.isNumeric(otherTel)) { json.put("msg", "请正确填写其他人联系电话"); JSONUtils.printObject(json); return null; } if (otherTel.trim().length() != 11) { json.put("msg", "请真确填写直系人电话长度错误"); JSONUtils.printObject(json); return null; } String moredName = SqlInfusion.FilteSqlInfusion(paramMap.get("moredName")); if (StringUtils.isBlank(moredName)) { json.put("msg", "morename"); JSONUtils.printObject(json); return null; } else if (2 > moredName.length() || 50 < moredName.length()) { json.put("msg", "更多联系人姓名长度为不小于2和大于50"); JSONUtils.printObject(json); return null; } String moredRelation = SqlInfusion.FilteSqlInfusion(paramMap.get("moredRelation")); if (StringUtils.isBlank(moredRelation)) { json.put("msg", "morereation"); JSONUtils.printObject(json); return null; } String moredTel = SqlInfusion.FilteSqlInfusion(paramMap.get("moredTel")); if (StringUtils.isBlank(moredTel)) { json.put("msg", "moretel"); JSONUtils.printObject(json); return null; } if (!StringUtils.isNumeric(moredTel)) { json.put("msg", "moretel"); JSONUtils.printObject(json); return null; } if (moredTel.trim().length() != 11) { json.put("msg", "请真确填写直系人电话长度错误"); JSONUtils.printObject(json); return null; } // 用户Id Long userId = user.getId(); Long result = -1L; // 判断用户是否已经是vip Map<String, String> vipMap = null; vipMap = beVipService.queryUserById(user.getId()); int vipStatus = 1;// 1 为非vip 2 为vip 3 代扣费vip int newutostept = -1; if (vipMap.size() > 0 && vipMap != null) { vipStatus = Convert.strToInt(vipMap.get("vipStatus"), 1); newutostept = Convert.strToInt(vipMap.get("authStep"), -1);// 用户此时的认证步骤状态 } if (user != null) { result = userService.updateUserWorkData(orgName, occStatus, workPro, workCity, companyType, companyLine, companyScale, job, monthlyIncome, workYear, companyTel, workEmail, companyAddress, directedName, directedRelation, directedTel, otherName, otherRelation, otherTel, moredName, moredRelation, moredTel, userId, vipStatus, newutostept); } if (result > 0) { // 保存成功更新认证步骤 if (user.getAuthStep() == 2) { user.setAuthStep(3); } if (vipStatus != 1) {// 是vip会员 // 更新用户的session步骤和是更新user表中的认证步骤 user.setAuthStep(4); json.put("msg", "vip保存成功"); JSONUtils.printObject(json); return null; } else { json.put("msg", "保存成功"); JSONUtils.printObject(json); return null; } } else { json.put("msg", "保存失败"); JSONUtils.printObject(json); return null; } } /** * (前台)个人设置中修改密码 * * @return */ public String updatexgmm() { AccountUserDo user = (AccountUserDo) session().getAttribute("user"); try { Map<String, String> pmap = userService.queryPersonById(user.getId()); if (pmap != null && pmap.size() > 0) { request().setAttribute("pass", pmap.get("auditStatus")); } String j = request("j"); request().setAttribute("j", j); /* * int authStep = user.getAuthStep(); if(authStep < 2){ * request().setAttribute("person", "0"); }else{ } */ request().setAttribute("person", "1"); request().setAttribute("emailBound", user.getEmail()); request().setAttribute("realName", pmap.get("realName")); // 根据用户ID查询安全问题 Map<String, String> map = userService.queryQuestion(user.getId()); request().setAttribute("map", map); } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } public void setiDCardValidateService(IDCardValidateService iDCardValidateService) { this.iDCardValidateService = iDCardValidateService; } public UserService getUserService() { return userService; } public ValidateService getValidateService() { return validateService; } public void setValidateService(ValidateService validateService) { this.validateService = validateService; } public void setUserService(UserService userService) { this.userService = userService; } public RegionService getRegionService() { return regionService; } public void setRegionService(RegionService regionService) { this.regionService = regionService; } public List<Map<String, Object>> getProvinceList() { return provinceList; } public void setProvinceList(List<Map<String, Object>> provinceList) { this.provinceList = provinceList; } public List<Map<String, Object>> getCityList() { return cityList; } public void setCityList(List<Map<String, Object>> cityList) { this.cityList = cityList; } public List<Map<String, Object>> getAreaList() { return areaList; } public void setAreaList(List<Map<String, Object>> areaList) { this.areaList = areaList; } public List<Map<String, Object>> getRegcityList() { return regcityList; } public void setRegcityList(List<Map<String, Object>> regcityList) { this.regcityList = regcityList; } public long getWorkPro() { return workPro; } public void setWorkPro(long workPro) { this.workPro = workPro; } public long getCityId() { return cityId; } public void setCityId(long cityId) { this.cityId = cityId; } public long getRegPro() { return regPro; } public void setRegPro(long regPro) { this.regPro = regPro; } public long getRegCity() { return regCity; } public void setRegCity(long regCity) { this.regCity = regCity; } public void setBeVipService(BeVipService beVipService) { this.beVipService = beVipService; } public void setIDCardValidateService(IDCardValidateService cardValidateService) { iDCardValidateService = cardValidateService; } /** * 彩生活导入个人资料数据 * * @return * @throws IOException */ public String importFromBeautyLife() throws Exception { JSONObject json = new JSONObject(); String realName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("realName")), null); String idNo = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("idNo")), null); // 未正确传入数据 if (StringUtils.isBlank(realName) || StringUtils.isBlank(idNo)) { json.put("msg", "-1"); JSONUtils.printObject(json); return null; } Map<String, String> map = regionService.queryFromBeautyLife(realName, idNo); // 无匹配数据 if (map == null || map.size() == 0) { json.put("msg", "0"); JSONUtils.printObject(json); return null; } // 该用户已经被激活过 int state = Convert.strToInt(map.get("activatedState"), 0); if (state == 2) { json.put("msg", "-2"); JSONUtils.printObject(json); return null; } // 未知错误 if (state == 0) { json.put("msg", "-3"); JSONUtils.printObject(json); return null; } // 导入数据 long result = regionService.importFromBeautyLife(map, this.getUserId()); if (result > 0) { this.getUser().setAuthStep(5); json.put("msg", "2"); } else json.put("msg", "1"); JSONUtils.printObject(json); return null; } /** * 新增安全问题 * * @return [参数说明] * * @return String [返回类型说明] * @exception throws [违例类型] [违例说明] * @see [类、类#方法、类#成员] */ public String addQuestion() { AccountUserDo user = (AccountUserDo) session("user"); long userId = Convert.strToLong(user.getId().toString(), -1L); String question = SqlInfusion.FilteSqlInfusion(paramMap.get("question")); String answer = SqlInfusion.FilteSqlInfusion(paramMap.get("answer")); long result = -1; try { result = userService.addQuestion(userId, question, answer); if (result > 0) { JSONUtils.printStr("1"); } else { JSONUtils.printStr("2"); } } catch (Exception e) { e.printStackTrace(); } return null; } /** * 修改安全问题 * * @return [参数说明] * * @return String [返回类型说明] * @exception throws [违例类型] [违例说明] * @see [类、类#方法、类#成员] */ public String updateQuestion() { AccountUserDo user = (AccountUserDo) session("user"); long userId = Convert.strToLong(user.getId().toString(), -1L); String question = SqlInfusion.FilteSqlInfusion(paramMap.get("question")); String oldAnswer = SqlInfusion.FilteSqlInfusion(paramMap.get("oldAnswer")); String answer = SqlInfusion.FilteSqlInfusion(paramMap.get("answer")); String oldQuestion = SqlInfusion.FilteSqlInfusion(paramMap.get("oldQuestion")); long result = -1; try { // 根据用户ID查询原始答案 Map<String, String> answerMap = userService.queryOldAnswer(userId, oldAnswer, oldQuestion); if (answerMap == null || answerMap.equals("")) { JSONUtils.printStr("3"); return null; } result = userService.updateQuestion(userId, question, answer); if (result > 0) { JSONUtils.printStr("1"); } else { JSONUtils.printStr("2"); } } catch (Exception e) { e.printStackTrace(); } return null; } /** * 查询邮箱是否设置 * * @return [参数说明] * * @return String [返回类型说明] * @exception throws [违例类型] [违例说明] * @see [类、类#方法、类#成员] */ public String queryEmail() { AccountUserDo user = (AccountUserDo) session("user"); try { // 根据用户ID查询邮箱 Map<String, String> userList = userService.queryPersonById(user.getId()); request().setAttribute("userList", userList); } catch (Exception e) { e.printStackTrace(); } return SUCCESS; } /** * 根据用户ID--修改、新增邮箱 * * @return [参数说明] * * @return Stirng [返回类型说明] * @exception throws [违例类型] [违例说明] * @see [类、类#方法、类#成员] */ public String updateEmail() { AccountUserDo user = (AccountUserDo) session("user"); long userId = Convert.strToLong(user.getId().toString(), -1L); String email = SqlInfusion.FilteSqlInfusion(paramMap.get("email")); // long result = -1; try { String pwd = user.getPassword();// 邮箱设置--查询密码 String password = Convert.strToStr(paramMap.get("password"), null); if ("1".equals(IConstants.ENABLED_PASS)) { password = com.shove.security.Encrypt.MD5(password.trim()); } else { password = com.shove.security.Encrypt.MD5(password.trim() + IConstants.PASS_KEY); } if (!pwd.equals(password)) { JSONUtils.printStr("2"); return null; } // 验证邮箱的唯一性 Map<String, String> map = userService.queryIsEimal(email); if (null != map) { JSONUtils.printStr("3"); return null; } // 新增、修改成功 // result = userService.updateEmail(userId, email); IResult<PhoneVerifyDo> updateResult = this.phoneVerifyService.updateEmail(userId, email); user.setEmail(email); if (updateResult.isSuccess()) { JSONUtils.printStr("1"); } session().removeAttribute("emailBound"); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 某一个月第一天和最后一天 * @param date * @return */ private Map<String, Date> getFirstday_Lastday_Month(Date date)throws ParseException { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); //第一天 GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance(); gcLast.setTime(date); gcLast.set(Calendar.DAY_OF_MONTH, 1); String day_first = df.format(gcLast.getTime()); StringBuffer str = new StringBuffer().append(day_first).append(" 00:00:00"); day_first = str.toString(); //最后一天 calendar.add(Calendar.MONTH, 1); //加一个月 calendar.set(Calendar.DATE, 1); //设置为该月第一天 calendar.add(Calendar.DATE, -1); //再减一天即为上个月最后一天 String day_last = df.format(calendar.getTime()); StringBuffer endStr = new StringBuffer().append(day_last).append(" 23:59:59"); day_last = endStr.toString(); Map<String, Date> map = new HashMap<String, Date>(); map.put("first", df.parse(day_first)); map.put("last", df.parse(day_last)); return map; } /** * 邀请好友列表 * @return */ public String inviteFriend() { PageBean<?> pageBean = getPageBean(); Map<String, String> paramMap = getParamMap(); Map<String, Object> queryParams = new HashMap<String, Object>(); queryParams.putAll(paramMap); Long userId = getUser().getId(); queryParams.put("userId", userId); Long totalNum = this.inviteFriendService.countInviteFriend(queryParams); pageBean.setTotalNum(totalNum); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); queryParams.put("pageNum", pageNum); queryParams.put("pageSize", pageBean.getPageSize()); this.inviteFriendList = this.inviteFriendService.listInviteFriend(queryParams); for (InviteFriend inviteFriend : this.inviteFriendList) { double awardMoney = this.recommandRewardService.getReferGroupReward(inviteFriend.getFriendUserInfo().getId() + "", userId + ""); inviteFriend.setAwardMoney(new BigDecimal(awardMoney)); } Map<String, Date> map = new HashMap<String, Date>(); try { map = this.getFirstday_Lastday_Month(new Date()); } catch (ParseException e) { e.printStackTrace(); } this.recommondRewardDo = this.recommandRewardService.getSumRewardAmount(userId+"", map.get("first"), map.get("last")); this.sumRecommondRewardDo = this.recommandRewardService.getSumRewardAmount(userId+"", null, null); return SUCCESS; } /** * 短信邀请 * @return */ public String smsInvite() { JSONObject jsonObject = new JSONObject(); if (!checkCode()) { jsonObject.put("msg", "验证码错误"); ServletUtils.writeJson(jsonObject.toString()); return null; } AccountUserDo inviteUser = getUser(); Map<String, Object> queryParams = new HashMap<String, Object>(); queryParams.put("invite", inviteUser.getId()); if (this.inviteDetail != null) { // 判断每个号码一天只能发送一次的逻辑 List<InviteDetail> inviteDetailList = this.inviteDetailService.getList(queryParams); String mobileStr = this.inviteDetail.getInvitee().getMobilePhone(); String[] mobileArray = mobileStr.split(","); for (InviteDetail inviteDetail : inviteDetailList) { for (String mobile : mobileArray) { if (mobile.equals(inviteDetail.getInvitee().getMobilePhone())) { jsonObject.put("msg", "手机号" + mobile + "今天已经邀请过,请填写其他手机号码"); ServletUtils.writeJson(jsonObject.toString()); return null; } } } Long todaySendCount = this.inviteDetailService.count(queryParams); if (todaySendCount + mobileArray.length > 5) { jsonObject.put("msg", "当天发送短信邀请不能超过5次,你已经发送" + todaySendCount + "次"); ServletUtils.writeJson(jsonObject.toString()); return null; } List<InviteDetail> inviteDetails = getInviteDetailList(inviteUser, mobileStr); System.out.println(this.inviteDetailService.addInvite(inviteDetails)); } jsonObject.put("code", 0); ServletUtils.writeJson(jsonObject.toString()); return null; } /** * 获取邀请记录集合 * @param inviteUser * @param mobileStr * @return */ private List<InviteDetail> getInviteDetailList(AccountUserDo inviteUser, String mobileStr) { InviteDetail inviteRecord; AccountUserDo invitee; Long userId = -1l; List<InviteDetail> inviteDetails = new ArrayList<InviteDetail>(); if (StringUtils.isNotEmpty(mobileStr)) { for (String mobile : mobileStr.split(",")) { try { userId = this.userService.findUserByIdOrPhone(mobile); } catch (SQLException e) { e.printStackTrace(); } inviteRecord = new InviteDetail(); invitee = new AccountUserDo(); invitee.setId(userId); invitee.setMobilePhone(mobile); inviteRecord.setInvite(inviteUser); inviteRecord.setInvitee(invitee); inviteRecord.setType(InviteType.SMS); inviteRecord.setContent(this.inviteDetail.getContent()); inviteDetails.add(inviteRecord); } } return inviteDetails; } private boolean checkCode() { String pageId = paramMap.get("pageId"); String code = (String) session().getAttribute(pageId + "_checkCode"); String _code = paramMap.get("code");// 验证码 if (code == null || !code.equals(_code)) { return false; } else { return true; } } public String showImage() throws IOException, ServiceException { PersonDo person = this.personService.getByUserId(getUserId()); String imagePath = CommonUtils.getImagePath(person.getInvite2dcodePath()); File file = new File(imagePath); FileInputStream inputStream = new FileInputStream(file); byte[] data = new byte[(int)file.length()]; inputStream.read(data); inputStream.close(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("image/png"); OutputStream stream = null; try { stream = response.getOutputStream(); stream.write(data); stream.flush(); } catch (Exception e) { e.printStackTrace(); } finally { stream.close(); } return null; } }