From e23a1db0b60437f17d09d65c65f8fd0c8a5d88c7 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 26 八月 2024 18:11:07 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 128 ++++++++++++++++-------------------------- 1 files changed, 49 insertions(+), 79 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 4009bc7..693f779 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 @@ -2,6 +2,7 @@ import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.PhoneUtil; +import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,8 +10,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.DataSyncConfig; -import com.doumee.config.Jwt.JwtPayLoad; -import com.doumee.config.Jwt.JwtTokenUtil; import com.doumee.core.annotation.excel.ExcelImporter; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -64,10 +63,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import java.util.Date; import java.util.*; import java.util.stream.Collectors; @@ -97,8 +98,8 @@ @Autowired private EmpowerMapper empowerMapper; - @Autowired + private DeviceMapper deviceMapper; @Autowired @@ -128,6 +129,9 @@ @Lazy private SmsEmailService smsEmailService; + @Autowired + private SystemLoginService systemLoginService; + @Value("${debug_model}") private Boolean isDebug; @Override @@ -148,7 +152,7 @@ //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛� if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿 - systemUserMapper.insert(createSystemUser(insert)); + systemUserMapper.insert(createSystemUser(insert,systemDictDataBiz)); //澶勭悊鍩硅鏈夋晥鏈熶笟鍔� dealTrainTIme(member,0,loginUserInfo); } @@ -162,7 +166,7 @@ } return insert; } - private SystemUser createSystemUser(Member insert) { + public static SystemUser createSystemUser(Member insert,SystemDictDataBiz systemDictDataBiz) { SystemUser user = new SystemUser(); // 鐢熸垚瀵嗙爜鐩� String salt = RandomStringUtils.randomAlphabetic(6); @@ -182,6 +186,7 @@ user.setUpdateUser(insert.getEditor()); user.setUpdateTime(insert.getEditDate()); user.setMemberId(insert.getId()); + user.setSource(Constants.ZERO); user.setDeleted(Boolean.FALSE); user.setFixed(Boolean.FALSE); user.setStatus(Constants.ZERO); @@ -458,11 +463,12 @@ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() .set(SystemUser::getUpdateUser,member.getLoginUserInfo().getId()) .set(SystemUser::getUpdateTime,new Date()) - .set(StringUtils.isNotBlank(model.getFaceImg()),SystemUser::getAvatar,member.getFaceImg()) - .set(StringUtils.isNotBlank(model.getPhone()),SystemUser::getMobile,member.getPhone()) - .set(StringUtils.isNotBlank(model.getName()),SystemUser::getRealname,member.getName()) - .set(model.getCompanyId() !=null,SystemUser::getCompanyId,member.getCompanyId()) - .set(StringUtils.isNotBlank(model.getCode()),SystemUser::getEmpNo,member.getCode()) + .set(StringUtils.isNotBlank(member.getFaceImg()),SystemUser::getAvatar,member.getFaceImg()) + .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getMobile,member.getPhone()) + .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getUsername,member.getPhone()) + .set(StringUtils.isNotBlank(member.getName()),SystemUser::getRealname,member.getName()) + .set(member.getCompanyId() !=null,SystemUser::getCompanyId,member.getCompanyId()) + .set(StringUtils.isNotBlank(member.getCode()),SystemUser::getEmpNo,member.getCode()) .eq(SystemUser::getMemberId,model.getId())); } if(Constants.equalsInteger(model.getCompanyType(),Constants.ZERO) @@ -739,7 +745,7 @@ memberRole.setRoleId(deviceRole.getId()); memberRoleList.add(memberRole); } - memberRoleMapper.insertBatchSomeColumn(memberRoleList); + memberRoleMapper.insert(memberRoleList); } member.setRoleId(ids); return 1; @@ -803,8 +809,8 @@ } for (Integer id:ids) { Member member = memberMapper.selectById(id); - if(!Objects.isNull(member)&&member.getStatus()==Constants.TWO){ - member.setStatus(Constants.ZERO);//鎭㈠姝e父鐘舵�� + if(!Objects.isNull(member)&&member.getStatus()!=Constants.TWO){ + member.setStatus(Constants.TWO);//鎭㈠姝e父鐘舵�� member.setEditor(loginUserInfo.getId()); member.setEditDate(new Date()); member.setAuthStatus(Constants.ZERO);//鏈巿鏉� @@ -814,7 +820,6 @@ member.setEditor(loginUserInfo.getId()); //鍒犻櫎鍛樺伐闂ㄧ鏉冮檺 cancelAllMemberEmpower(member,memberRoleMapper,empowerMapper); - if(Constants.equalsInteger(type,Constants.ONE)){ saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.FREEZE,userActionJoinMapper,JSONObject.toJSONString(member)); } @@ -935,7 +940,7 @@ userAction.setType(type.getKey()); userAction.setContent(content); String info = type.getInfo(); - userAction.setRemark(info.replace("${param1}",user!=null?user.getRealname():"绯荤粺").replace("${param2}", com.doumee.core.utils.DateUtil.getPlusTime2(updateMember.getEditDate()))); + userAction.setRemark(info.replace("${param1}",user!=null?user.getRealname():"绯荤粺").replace("${param2}", com.doumee.core.utils.DateUtil.getPlusTime2(updateMember.getEditDate()!=null?updateMember.getEditDate():new Date()))); userAction.setMemberId(updateMember.getId()+""); userActionMapper.insert(userAction); } @@ -1104,7 +1109,9 @@ if(StringUtils.isNotBlank(member.getName())){ queryWrapper.like(Member::getName,member.getName()); } - + if(Objects.nonNull(member.getCompanyType())){ + queryWrapper.eq(Company::getType,member.getCompanyType()); + } if(null != member.getType()) { queryWrapper.eq(Member::getType,member.getType()); } @@ -1112,6 +1119,7 @@ queryWrapper.eq(Member::getCompanyId,member.getCompanyId()); } queryWrapper.eq(Member::getIsdeleted,Constants.ZERO); + queryWrapper.eq(Member::getWorkStatus,Constants.ZERO); List<Member> list = memberJoinMapper.selectJoinList(Member.class,queryWrapper); // if(list!=null){ // for(Member m : list){ @@ -1159,7 +1167,6 @@ if(pageWrap.getModel().getType() != null){ if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){ queryWrapper.select(" * , (select v.COMPANY_NAME from visits v where v.MEMBER_ID = member.id and v.STATUS = 2 order by v.CREATE_DATE desc limit 1 ) as companyName , " + - " (select v.STARTTIME from visits v where v.MEMBER_ID = member.id and v.STATUS = 2 order by v.CREATE_DATE desc limit 1 ) as lastVisitDate , " + " (select count(1) from visits v where v.MEMBER_ID = member.id and v.STATUS = 2 ) as visitTimes "); } } @@ -1470,12 +1477,11 @@ public PageData<Member> findUnusualPage(PageWrap<MemberQuery> pageWrap) { IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); + int actiontype =Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ONE)?Constants.UserActionType.BLACKLIST.getKey():Constants.UserActionType.FREEZE.getKey(); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) - .selectAs(Company::getName,Member::getCompanyName) - .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 order by ua.CREATE_DATE desc limit 1) as optTime") - .select(" (select s.REALNAME from user_action uac left join system_user s on uac.CREATOR = s.ID where uac.MEMBER_ID=t.id and uac.ISDELETED=0 order by uac.CREATE_DATE desc limit 1) as creatorName") - .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc limit 1) as visitsLastDate") + .selectAs(Company::getCompanyNamePath,Member::getCompanyName) + .select(" (select ua.remark from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 and ua.type="+actiontype+" order by ua.CREATE_DATE desc limit 1) as optRemark") .eq(Member::getIsdeleted,Constants.ZERO); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId()); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType()); @@ -1553,7 +1559,7 @@ list.add(model); } //瀵煎叆鏂板鐨勬巿鏉冧俊鎭� - empowerMapper.insertBatchSomeColumn(list); + empowerMapper.insert(list); } } } @@ -1584,7 +1590,7 @@ .eq(Member::getType,Constants.memberType.internal) .eq(Member::getStatus,Constants.ZERO) .isNotNull(Member::getHkId) - .apply("to_days(lastVisitDate)+ "+days+" < to_days(now())" )); + .apply("to_days(LAST_VISIT_DATE)+ "+days+" < to_days(now())" )); if(CollectionUtils.isEmpty(memberList)){ return; } @@ -1623,7 +1629,10 @@ * @return */ @Override - public WxAuthorizeVO wxAuthorize(String code){ + public WxAuthorizeVO wxAuthorize(String code, Integer source){ + if(StringUtils.isBlank(code)||Objects.isNull(source)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode(); String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode(); String getTokenUrl = WXConstant.GET_USER_INFO_URL.replace("CODE", code) @@ -1642,6 +1651,7 @@ .selectAs(Company::getName,Member::getCompanyName) .leftJoin(Company.class,Company::getId,Member::getCompanyId) .eq(Member::getOpenid,openId) + .eq(Member::getType,source) .eq(Member::getIsdeleted,Constants.ZERO) .orderByDesc(Member::getCreateDate) .last(" limit 1 ") @@ -1660,12 +1670,16 @@ String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); member.setPrefixUrl(prefixUrl); -// JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId())); -// String token = JwtTokenUtil.generateToken(payLoad); -// //瀛樺偍token鑷硆edis -// RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME); -// wxAuthorizeVO.setToken(token); wxAuthorizeVO.setMember(member); + //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token + if(Constants.equalsInteger(source,Constants.ZERO)||Constants.equalsInteger(source,Constants.TWO)){ + SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda().eq(SystemUser::getMemberId,member.getId()) + .eq(SystemUser::getStatus,Constants.ZERO).last(" limit 1 ")); + if(Objects.nonNull(systemUser)){ + String token = systemLoginService.loginByUserId(systemUser.getId()); + wxAuthorizeVO.setToken(token); + } + } } return wxAuthorizeVO; } @@ -1736,51 +1750,6 @@ - @Override - public WxAuthorizeVO accountLogin(AccountLoginDTO accountLoginDTO){ - System.out.println(DESUtil.decrypt(Constants.EDS_PWD,"eIaPD5AR5DBuTBE9MW14QRG07IDKXCdh")); - if(accountLoginDTO.getAccount().length()!=18 - //&&!IdcardUtil.isValidCard(accountLoginDTO.getAccount()) - ){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�"); - } - Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() - .eq(Member::getIdcardNo, DESUtil.encrypt(Constants.EDS_PWD, accountLoginDTO.getAccount())) - .ne(Member::getType,Constants.memberType.visitor) - ); - if(Objects.isNull(member)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鐢ㄦ埛,璇疯仈绯荤鐞嗗憳"); - } - if(member.getIsdeleted() == Constants.ONE){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); - } - if(member.getStatus() != Constants.ZERO){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); - } - String md5Password = DESUtil.encrypt(Constants.EDS_PWD, accountLoginDTO.getPassword()); - if(!md5Password.equals(member.getPassward())){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璐︽埛瀵嗙爜閿欒!"); - } - if(StringUtils.isNotBlank(accountLoginDTO.getOpenId())){ - //鍏堟竻绌哄師鏈夎瀹㈢殑openid缁戝畾鍏崇郴 - memberMapper.update(null, new UpdateWrapper<Member>().lambda() - .ne(Member::getType,Constants.memberType.visitor) - .eq(Member::getOpenid,accountLoginDTO.getOpenId()) - .set(Member::getOpenid,null) - ); - //鏇存柊褰撳墠鐧诲綍鐢ㄦ埛 openId - member.setOpenid(accountLoginDTO.getOpenId()); - memberMapper.updateById(member); - } - WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); - JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId())); - String token = JwtTokenUtil.generateToken(payLoad); - //瀛樺偍token鑷硆edis - RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME); - wxAuthorizeVO.setToken(token); - return wxAuthorizeVO; - } - @Override @@ -1789,7 +1758,7 @@ List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO)); if(CollectionUtils.isNotEmpty(memberList)){ stagingHeadVO.setWorkerCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.internal)).count()); - stagingHeadVO.setLwCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.lw_visitor)).count()); + stagingHeadVO.setLwCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.driver)).count()); stagingHeadVO.setVisitorCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.visitor)).count()); } //鍦ㄥ満杞﹁締 @@ -1813,7 +1782,7 @@ new MPJLambdaWrapper<Member>() .select("count(1) as memberCount, t1.name as companyName") .leftJoin(Company.class,Company::getId,Member::getCompanyId) - .eq(Member::getType,Constants.memberType.lw_visitor) + .eq(Member::getType,Constants.memberType.driver) .groupBy(Company::getId,Company::getName) ); List<Map<String,Object>> retentionMaps = retentionJoinMapper.selectMaps(new MPJLambdaWrapper<Retention>() @@ -1888,17 +1857,17 @@ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅銆�"+insert.getName()+"銆戝悓姝ュ畨闃插钩鍙板け璐ワ紝璇风◢鍚庨噸璇曪紒"); } } - memberMapper.insertBatchSomeColumn(newList); + memberMapper.insert(newList); List<SystemUser> userList = new ArrayList<>(); for(Member insert: newList){ //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛� if(Constants.equalsInteger(insert.getCompanyType(),Constants.ONE)){ //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿 - userList.add(createSystemUser(insert)); + userList.add(createSystemUser(insert,systemDictDataBiz)); } } if(userList.size()>0){ - systemUserMapper.insertBatchSomeColumn(userList); + systemUserMapper.insert(userList); } }catch (Exception e){ //濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅 @@ -2036,6 +2005,7 @@ systemUser.setSalt(salt); systemUser.setPassword(member.getPassward()); systemUser.setStatus(Constants.ZERO); + systemUser.setSource(Constants.TWO); systemUserMapper.insert(systemUser); } -- Gitblit v1.9.3