From 8ba1fa2ca00e5cd340194bf8aabc8f8516615eb7 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期六, 11 五月 2024 18:55:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 167 insertions(+), 10 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 72e455e..65ac052 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -14,7 +14,9 @@
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.UserAddRequest;
import com.doumee.core.haikang.model.param.request.UserDelRequest;
+import com.doumee.core.haikang.model.param.respose.UserAddResponse;
import com.doumee.core.haikang.model.param.respose.UserDelResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.LoginUserInfo;
@@ -32,11 +34,16 @@
import com.doumee.dao.admin.response.MemberInfoDTO;
import com.doumee.dao.admin.response.StagingDataVO;
import com.doumee.dao.business.*;
+import com.doumee.dao.business.dao.CompanyMapper;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.join.RetentionJoinMapper;
import com.doumee.dao.business.join.UserActionJoinMapper;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemDepartment;
+import com.doumee.dao.system.model.SystemDepartmentUser;
import com.doumee.dao.system.model.SystemDictData;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.AccountLoginDTO;
import com.doumee.dao.web.reqeust.CheckVisitedDTO;
import com.doumee.dao.web.reqeust.VisitMemberDTO;
@@ -51,6 +58,7 @@
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
@@ -111,20 +119,166 @@
@Autowired
private VisitsMapper visitsMapper;
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Override
- public Integer create(Member member) {
- memberMapper.insert(member);
- return member.getId();
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ public Member create(Member member) {
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if(loginUserInfo == null){
+ loginUserInfo = member.getLoginUserInfo();
+ }
+ isMemberParamValid(member);
+ //鑾峰彇鍑虹敓鏃ユ湡
+ //鑴辨晱鎿嶄綔
+ Member insert = initAddMemberModel(member,loginUserInfo);
+ //娴峰悍浜哄憳鏂板涓氬姟
+ if(dealHkUserBiz(insert)){
+ try {
+ memberMapper.insert(insert);
+ //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
+ createSystemUser(insert);
+ }catch (Exception e){
+ //濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅
+ deleteHkUserBiz(insert.getHkId());
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鏂板缓澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ }else{
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ return insert;
+ }
+ private void createSystemUser(Member insert) {
+ SystemUser user = new SystemUser();
+ // 鐢熸垚瀵嗙爜鐩�
+ String salt = RandomStringUtils.randomAlphabetic(6);
+ // 鐢熸垚瀵嗙爜
+ user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
+ user.setSalt(salt);
+
+ // 鍒涘缓鐢ㄦ埛璁板綍
+ user.setType(insert.getType());
+ user.setUsername(insert.getPhone());
+ user.setEmpNo(insert.getCode());
+ user.setRealname(insert.getName());
+ user.setCompanyId(insert.getCompanyId());
+ user.setMobile(insert.getPhone());
+ user.setCreateTime(insert.getCreateDate());
+ user.setCreateUser(insert.getCreator());
+ user.setUpdateUser(insert.getEditor());
+ user.setUpdateTime(insert.getEditDate());
+ user.setMemberId(insert.getId());
+ user.setDeleted(Boolean.FALSE);
+ user.setFixed(Boolean.FALSE);
+ user.setStatus(Constants.ZERO);
+ systemUserMapper.insert(user);
+ }
+
+ private Member initAddMemberModel(Member member, LoginUserInfo loginUserInfo) {
+ Member insert= new Member();
+ insert.setCreator(loginUserInfo.getId());
+ insert.setCreateDate(new Date());
+ insert.setEditor(loginUserInfo.getId());
+ insert.setEditDate(new Date());
+ insert.setIsdeleted(Constants.ZERO);
+ insert.setCompanyId(member.getCompanyId());
+ insert.setFaceImg(member.getFaceImg());
+ insert.setImgurl(member.getImgurl());
+ insert.setCode(member.getCode());
+ insert.setType(Constants.TWO);
+ insert.setHkDate(new Date());
+ insert.setName(member.getName());
+ insert.setHkStatus(Constants.ONE);
+ insert.setSex(IdcardUtil.getGenderByIdCard(member.getIdcardNo()) ==1?Constants.TWO:Constants.ONE);//鏍规嵁韬唤璇佸彿鑾峰彇鎬у埆
+ insert.setBirthday( DateUtil.parse(IdcardUtil.getBirthByIdCard(member.getIdcardNo()), "yyyyMMdd"));
+ insert.setPhone(member.getPhone());
+ insert.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()));//韬唤璇佸彿鍔犲瘑
+ insert.setIdcardDecode( Constants.getTuominStr(member.getIdcardNo()));
+ insert.setStatus(Constants.ZERO);
+ return insert;
+ }
+
+ /**
+ * 鍒犻櫎娴峰悍浜哄憳淇℃伅
+ * @param hkId
+ */
+ private void deleteHkUserBiz(String hkId) {
+ UserDelRequest request = new UserDelRequest();
+ request.setPersonIds(new String[]{hkId});
+ BaseResponse<List<UserDelResponse>> result = HKService.delBatchUser(request);
+ }
+
+ /**
+ * 娴峰悍浜哄憳鏂板涓氬姟
+ * @param insert
+ * @return
+ */
+ private boolean dealHkUserBiz(Member insert) {
+ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+ +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+ Company company = companyMapper.selectById(insert.getCompanyId());
+ if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭凡琚垹闄わ紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+ }
+ if(StringUtils.isBlank(company.getHkId())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭湭鍚屾瀹夐槻骞冲彴锛岃鍏堝墠寰�銆愮粍缁囩鐞嗐�戣彍鍗曡繘琛岀淮鎶わ紒");
+ }
+ insert.setHkOrgId(company.getHkId());
+ UserAddRequest hkAddRequest = HkSyncOrgUserToHKServiceImpl.getUserAddModel(insert,path,Constants.ZERO);
+ if(hkAddRequest == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝浜鸿劯鐓х墖鏈夎锛岃灏濊瘯閲嶆柊涓婁紶锛�");
+ }
+ //澶勭悊鏂板鏁版嵁
+ BaseResponse<UserAddResponse> result = HKService.addUser(hkAddRequest);
+ if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+ insert.setHkId(hkAddRequest.getPersonId());
+ insert.setFaceId(result.getData().getFaceId());
+ if(StringUtils.isNotBlank(insert.getFaceId())){
+ insert.setFaceStatus(Constants.ONE);
+ }else{
+ insert.setFaceStatus(Constants.ZERO);
+ }
+ return true;
+ }else if(result!=null ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鍚屾瀹夐槻骞冲彴澶辫触銆�"+result.getMsg()+"銆戯紝璇疯仈绯荤鐞嗗憳锛�");
+ }
+ return false;
+ }
+
+ private void isMemberParamValid(Member member) {
+ if (!PhoneUtil.isPhone(member.getPhone())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢佃瘽鍙风爜鏍煎紡鏈夎");
+ }
+ if (!IdcardUtil.isValidCard(member.getIdcardNo())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"韬唤璇佸彿鏍煎紡鏈夎");
+ }
+
+ SystemUser systemUser = new SystemUser();
+ SystemUser queryUserDto = new SystemUser();
+ queryUserDto.setUsername(member.getPhone());
+ queryUserDto.setDeleted(Boolean.FALSE);
+ SystemUser user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1"));
+ if (user != null) {
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+systemUser.getUsername()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
+ }
+ // 楠岃瘉宸ュ彿
+ if (StringUtils.isNotBlank(member.getCode())) {
+ queryUserDto = new SystemUser();
+ queryUserDto.setDeleted(Boolean.FALSE);
+ queryUserDto.setEmpNo(member.getCode());
+ user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1"));
+ if (user != null) {
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿銆�"+member.getCode()+"銆戝凡瀛樺湪");
+ }
+ }
}
@Transactional
@Override
public Integer laborMemberCreate(LaborMemberDTO member) {
-
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-
if (PhoneUtil.isPhone(member.getPhone())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢佃瘽鍙风爜鏍煎紡鏈夎");
}
@@ -296,7 +450,7 @@
memberMapper.updateById(member);
}
@Override
- public void updateFace(Member member) {
+ public boolean updateFace(Member member) {
QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
wrapper.lambda().ne(Member::getRemark,"浜鸿劯宸插悓姝ユ渶鏂�");
List<Member> list =memberMapper.selectList(wrapper);
@@ -312,9 +466,11 @@
update.setRemark("浜鸿劯宸插悓姝ユ渶鏂�");
update.setFaceStatus(Constants.ONE);
memberMapper.updateById(update);
+ return true;
}
}
}
+ return false;
}
@Override
public void delHkForce(Member member) {
@@ -460,7 +616,6 @@
queryWrapper.eq(Member::getCompanyId,member.getCompanyId());
}
queryWrapper.eq(Member::getIsdeleted,Constants.ZERO);
-
List<Member> list = memberJoinMapper.selectJoinList(Member.class,queryWrapper);
if(list!=null){
for(Member m : list){
@@ -654,7 +809,7 @@
.having(pageWrap.getModel().getTrainTimeEndTime()!=null,"trainTimeEndTime < "+ DateUtil.format(end,"yyyy-MM-dd HH:mm:ss"));
IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
if (!CollectionUtils.isEmpty(memberIPage.getRecords())){
- memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode())));
+ memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode()) ==1?Constants.TWO:Constants.ONE));
}
return PageData.from(memberIPage);
}
@@ -690,6 +845,8 @@
queryWrapper.selectAll(Member.class);
queryWrapper.selectAs(Company::getName,Member::getCompanyName);
+ queryWrapper.selectAs(Company::getCompanyNamePath,Member::getCompanyNamePath);
+ queryWrapper.selectAs(Company::getCompanyPath,Member::getCompanyPath);
queryWrapper.select(" ( select count(1) from member_card mc where mc.isdeleted = 0 and mc.member_id = t.id ) as memberCardCount ");
queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,
@@ -731,10 +888,10 @@
memberInfoDTO.setRoleNames(this.dealRoleDatas(memberInfoDTO.getRoleId(),deviceRoleList));
//鎷兼帴鍓嶇紑
if(StringUtils.isNotBlank(memberInfoDTO.getFaceImg())){
- memberInfoDTO.setFaceImg(prefixUrl + memberInfoDTO.getFaceImg());
+ memberInfoDTO.setFaceImgFull(prefixUrl + memberInfoDTO.getFaceImg());
}
if(StringUtils.isNotBlank(memberInfoDTO.getImgurl())){
- memberInfoDTO.setImgurl(prefixUrl + memberInfoDTO.getImgurl());
+ memberInfoDTO.setImgurlFull(prefixUrl + memberInfoDTO.getImgurl());
}
}
}
--
Gitblit v1.9.3