jiangping
2024-10-08 cf77e6b94c5a2e2d4d992b9222c857bafde0111e
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2,7 +2,6 @@
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;
@@ -24,7 +23,6 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.*;
import com.doumee.core.utils.redis.RedisUtil;
import com.doumee.core.wx.WXConstant;
import com.doumee.dao.admin.request.LaborEmpowerDTO;
import com.doumee.dao.admin.request.LaborMemberDTO;
@@ -34,7 +32,6 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.dao.CompanyMapper;
import com.doumee.dao.business.dto.RegisterDriverDTO;
import com.doumee.dao.business.dto.ResetPasswordDTO;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.join.RetentionJoinMapper;
import com.doumee.dao.business.join.UserActionJoinMapper;
@@ -42,7 +39,6 @@
import com.doumee.dao.system.SystemUserMapper;
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;
import com.doumee.dao.web.response.MemberVO;
@@ -52,7 +48,6 @@
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import com.doumee.service.system.SystemLoginService;
import com.doumee.service.system.SystemUserService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.RandomStringUtils;
@@ -63,12 +58,10 @@
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;
@@ -98,8 +91,8 @@
    @Autowired
    private EmpowerMapper empowerMapper;
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
@@ -152,7 +145,7 @@
                //创建系统登陆账号(默认无任何角色)
                if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
                    //如果是内部组织人员,新增系统登陆账号
                    systemUserMapper.insert(createSystemUser(insert));
                    systemUserMapper.insert(createSystemUser(insert,systemDictDataBiz));
                    //处理培训有效期业务
                    dealTrainTIme(member,0,loginUserInfo);
                }
@@ -166,7 +159,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);
@@ -186,6 +179,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);
@@ -249,7 +243,7 @@
        }
        //处理新增数据
        BaseResponse<UserAddResponse> result =  HKService.addUser(hkAddRequest);
        if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
        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())){
@@ -336,12 +330,14 @@
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"身份证号格式有误");
        }
        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()))
                .eq(Member::getIsdeleted,Constants.ZERO)) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份证号【"+member.getIdcardNo()+"】已被使用,不能重复");
        }
        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                .eq(Member::getPhone,  member.getPhone())
                .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
        }
@@ -391,6 +387,7 @@
            }
            if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                    .eq(Member::getPhone,member.getPhone())
                    .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                    .eq(Member::getIsdeleted,Constants.ZERO)
                    .ne(Member::getId,member.getId())) >0){
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
@@ -405,6 +402,7 @@
            if( !StringUtils.equals(model.getIdcardNo(),encrptNo) ){
                if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                        .eq(Member::getIdcardNo,encrptNo)
                        .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                        .eq(Member::getIsdeleted,Constants.ZERO)
                        .ne(Member::getId,member.getId())) >0){
                    throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份证号【"+member.getIdcardNoNew()+"】已被使用,不能重复");
@@ -553,7 +551,7 @@
    public void deleteById(Integer id,LoginUserInfo loginUserInfo) {
        Member member=new Member();
        member.setId(id);
        member.setIsdeleted(Constants.ZERO);
        member.setIsdeleted(Constants.ONE);
        member.setEditor(loginUserInfo.getId());
        member.setEditDate(new Date());
        member.setHkStatus(Constants.ZERO);
@@ -780,7 +778,10 @@
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        Member member=new Member();
        for(Integer id : ids){
            deleteById(id,loginUserInfo);
        }
       /* Member member=new Member();
        ids.stream().forEach(s ->{
            member.setId(s);
            member.setIsdeleted(Constants.ONE);
@@ -790,7 +791,7 @@
            member.setEditDate(new Date());
            memberMapper.updateById(member);
            saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.DELETE,userActionJoinMapper,JSONObject.toJSONString(member));
        });
        });*/
    }
@@ -931,6 +932,7 @@
    }
    public static void saveUserActionBiz(Member updateMember,LoginUserInfo user, Constants.UserActionType type,UserActionJoinMapper userActionMapper,String content) {
        updateMember.setEditDate(updateMember.getEditDate()==null?new Date():updateMember.getEditDate());
        UserAction userAction=new UserAction();
        userAction.setIsdeleted(Constants.ZERO);
        userAction.setCreateDate(updateMember.getEditDate());
@@ -1074,6 +1076,7 @@
        update.setEditor(loginUserInfo.getId());
        update.setCanVisit(member.getCanVisit());
        memberMapper.updateById(update);
        member.setEditDate(update.getEditDate());
        //记录操作日志
        saveUserActionBiz(member,loginUserInfo,Constants.equalsInteger(member.getCanVisit(),Constants.ONE)?Constants.UserActionType.CANVISIT:Constants.UserActionType.CANCEL_VISIT,userActionJoinMapper,null);
    }
@@ -1108,7 +1111,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());
        }
@@ -1336,7 +1341,7 @@
    public PageData<Member> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) {
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
        pageWrap.getModel().setIsdeleted(Constants.formatIntegerNum(pageWrap.getModel().getIsdeleted()));
        queryWrapper.selectAll(Member.class);
        queryWrapper.selectAs(Company::getName,Member::getCompanyName);
        queryWrapper.selectAs(SystemUser::getRealname,Member::getEditorName);
@@ -1446,7 +1451,7 @@
        queryWrapper.selectAll(Member.class)
                .selectAs(Company::getName,Member::getCompanyName)
                .selectAs(Member::getLastVisitDate,Member::getLastVisitDate)
                .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status  in (7,8) ) as visitsCount");
                .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status  in (7,8) ) as visitTimes");
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName())
                .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone())
                .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), ms->ms.like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName())
@@ -1587,7 +1592,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;
        }
@@ -1860,7 +1865,7 @@
                //创建系统登陆账号(默认无任何角色)
                if(Constants.equalsInteger(insert.getCompanyType(),Constants.ONE)){
                    //如果是内部组织人员,新增系统登陆账号
                    userList.add(createSystemUser(insert));
                    userList.add(createSystemUser(insert,systemDictDataBiz));
                }
            }
            if(userList.size()>0){
@@ -1999,9 +2004,11 @@
        systemUser.setUsername(registerDriverDTO.getPhone());
        systemUser.setRealname(registerDriverDTO.getName());
        systemUser.setMemberId(member.getId());
        systemUser.setMobile(registerDriverDTO.getPhone());
        systemUser.setSalt(salt);
        systemUser.setPassword(member.getPassward());
        systemUser.setStatus(Constants.ZERO);
        systemUser.setSource(Constants.TWO);
        systemUserMapper.insert(systemUser);
    }