From d4b0addad7356fb7a407b7efd855a63cc64eb15e Mon Sep 17 00:00:00 2001 From: wanggongfeng <1305282856@qq.com> Date: Tue, 24 Dec 2019 11:21:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=97=E6=84=BF=E8=80=85=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../token/util/IdentityNoAnalysisUtil.java | 35 +++++++++++++++++++ .../epdc/service/impl/AppUserServiceImpl.java | 10 +++--- .../EpdcCompleteVolunteerInfoFormDTO.java | 8 +++++ .../impl/VolunteerInfoServiceImpl.java | 32 +++++++++++++++++ 4 files changed, 81 insertions(+), 4 deletions(-) diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/util/IdentityNoAnalysisUtil.java b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/util/IdentityNoAnalysisUtil.java index 8ffb6fe71..ca247743e 100644 --- a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/util/IdentityNoAnalysisUtil.java +++ b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/util/IdentityNoAnalysisUtil.java @@ -4,6 +4,7 @@ import org.apache.commons.lang3.StringUtils; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.Date; /** @@ -23,6 +24,17 @@ public class IdentityNoAnalysisUtil { private static final Integer EIGHTEEN_ID_CARD=18; private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + /** + * 从身份证号码中获取生日 + * @param idno + * @return null表示idno错误,未获取到生日 + */ + public static Date getBirthDay(String idno){ + if(!isValid(idno)){ + return null; + } + return toBirthDay(idno.substring(6, 14)); + } /** * 根据身份证号获取性别 @@ -140,4 +152,27 @@ public class IdentityNoAnalysisUtil { } return true; } + + /** + * 转换成日期 + * @param birthday + * @return + */ + private static Date toBirthDay(String birthday){ + try{ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, Integer.parseInt(birthday.substring(0, 4))); + calendar.set(Calendar.MONTH, Integer.parseInt(birthday.substring(4, 6)) - 1);//月份从0开始,所以减1 + calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(birthday.substring(6, 8))); + //以下设置意义不大 + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + + return calendar.getTime(); + }catch (Exception e){ + return null; + } + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 3341f96fd..906c5c48c 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -1060,21 +1060,23 @@ public class AppUserServiceImpl implements AppUserService { */ @Override public Result volunteerAuthenticate(TokenDto tokenDto, EpdcCompleteVolunteerInfoFormDTO formDto) { + String sex = IdentityNoAnalysisUtil.getSex(formDto.getIdentityNo()); // 身份证解析性别 + Date birthday = IdentityNoAnalysisUtil.getBirthDay(formDto.getIdentityNo()); // 身份证解析生日 + formDto.setSex(sex); // 性别 + formDto.setBirthday(birthday); // 生日 + formDto.setUserId(tokenDto.getUserId()); // 用户ID //验证是否为志愿者 Result volunteerCountResult = userFeignClient.getVolunteerCountById(tokenDto.getUserId()); if (!volunteerCountResult.success() || null == volunteerCountResult.getData()) { return new Result().error("志愿者认证失败"); }else if(volunteerCountResult.getData() == 0){ //添加志愿者 - formDto.setUserId(tokenDto.getUserId()); Result insertCountResult = userFeignClient.insertVolunteerInfo(formDto); } //调用用户完善个人信息-保存 EpdcCompleteUserInfoFormDTO epdcCompleteUserInfoFormDTO = ConvertUtils.sourceToTarget(formDto, EpdcCompleteUserInfoFormDTO.class); - String sex = IdentityNoAnalysisUtil.getSex(formDto.getIdentityNo());//身份证解析性别 - epdcCompleteUserInfoFormDTO.setSex(sex);//性别 - epdcCompleteUserInfoFormDTO.setPartyFlag(tokenDto.getPartyFlag());//党员标志 + epdcCompleteUserInfoFormDTO.setPartyFlag(tokenDto.getPartyFlag());// 党员标志 Result result = completeUserInfoNoVerifyCode(tokenDto, epdcCompleteUserInfoFormDTO); return result; diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java index f20e4ea8d..8097369a3 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.Date; /** * 移动端完善用户信息 @@ -83,6 +84,13 @@ public class EpdcCompleteVolunteerInfoFormDTO implements Serializable { */ private String introduce; + /*----------------------志愿者新增所需字段---------------------------*/ + + /** + * 出生日期 + */ + private Date birthday; + /*----------------------用户认证所需字段-----------------------------*/ diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java index 25b146201..9306f8748 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java @@ -27,6 +27,7 @@ import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.constant.VolunteerInfoConsant; import com.elink.esua.epdc.dao.VolunteerInfoDao; +import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.UserTagDTO; import com.elink.esua.epdc.dto.VolunteerInfoDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcCompleteVolunteerInfoFormDTO; @@ -34,6 +35,7 @@ import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcGetVolunteerRankDTO; import com.elink.esua.epdc.entity.VolunteerInfoEntity; +import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.redis.VolunteerInfoRedis; import com.elink.esua.epdc.service.UserService; import com.elink.esua.epdc.service.VolunteerInfoService; @@ -43,6 +45,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; @@ -67,6 +70,9 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl().ok(baseDao.getVolunteerCountById(userId)); } + /** + * 新增志愿者 + * @param epdcCompleteVolunteerInfoFormDTO + * @return + */ @Override @Transactional(rollbackFor = Exception.class) public Result insertVolunteerInfo(EpdcCompleteVolunteerInfoFormDTO epdcCompleteVolunteerInfoFormDTO) { VolunteerInfoEntity volunteerEntity = ConvertUtils.sourceToTarget(epdcCompleteVolunteerInfoFormDTO, VolunteerInfoEntity.class); + // 补全其他字段 + volunteerEntity.setRegistTime(new Date());// 注册时间 + volunteerEntity.setAuditStatus("1"); // 审核状态 默认审核通过 + volunteerEntity.setAuditTime(new Date()); // 审核时间 + volunteerEntity.setKindnessTime(0); // 爱心时长(单位:分钟) + volunteerEntity.setParticipationNum(0); // 参加活动次数 + String address = volunteerEntity.getRoad() + .concat(StringUtils.isNotBlank(volunteerEntity.getVillageName()) ? volunteerEntity.getVillageName() : "") + .concat(StringUtils.isNotBlank(volunteerEntity.getDwellingPlace()) ? volunteerEntity.getDwellingPlace() : ""); + volunteerEntity.setAddress(address); // 居住地址 + + // 获取部门信息 + Result dtoResult = adminFeignClient.getParentAndAllDept(volunteerEntity.getGirdId()+""); + ParentAndAllDeptDTO parentAndAllDeptDTO = dtoResult.getData(); + + volunteerEntity.setParentDeptIds(parentAndAllDeptDTO.getParentDeptIds()); // 父所有部门ID + volunteerEntity.setParentDeptNames(parentAndAllDeptDTO.getParentDeptNames());// 父所有部门 + volunteerEntity.setAllDeptIds(parentAndAllDeptDTO.getAllDeptIds()); // 所有部门ID + volunteerEntity.setAllDeptNames(parentAndAllDeptDTO.getAllDeptNames()); // 所有部门 + + insert(volunteerEntity); return new Result().ok(1); }