MrShi
2025-01-02 77d8f6ccb72cb64c29e77c39fcc8298781d008bb
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -49,6 +49,7 @@
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import com.doumee.service.system.SystemLoginService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
@@ -73,6 +74,7 @@
 * @date 2023/11/30 15:33
 */
@Service
@Slf4j
public class MemberServiceImpl implements MemberService {
    @Autowired
@@ -128,6 +130,9 @@
    
    @Value("${debug_model}")
    private Boolean isDebug;
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Member create(Member member) {
@@ -1011,6 +1016,8 @@
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,人员信息不存在!");
        }
       if(model.getCompanyId()!=null) {
           member.setEditor(member.getLoginUserInfo().getId());
           member.setEditDate(new Date());
           if(Constants.equalsInteger(member.getHeadStatus(),Constants.ONE)){
               //如果是取消主管
               companyMapper.update(null,new UpdateWrapper<Company>().lambda()
@@ -1040,6 +1047,7 @@
            loginUserInfo = member.getLoginUserInfo();
        }
        Member update = new Member();
        update.setId(model.getId());
        update.setEditDate(new Date());
        update.setEditor(loginUserInfo.getId());
        update.setStatus(member.getStatus());
@@ -1758,6 +1766,49 @@
    /**
     * 微信授权接口
     * @param code
     * @return
     */
    @Override
    public WxAuthorizeVO ywWxAuthorize(String code){
        if(StringUtils.isBlank(code)){
            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)
                .replace("APPID", appId).replace("SECRET", appSecret);
        log.error("=========================getTokenUrl=====================" + getTokenUrl);
        JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true));
        log.error("=========================tokenJson=====================" + tokenJson);
        String openId = "";
        WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO();
        if(Objects.nonNull(tokenJson)&&!Objects.isNull(tokenJson.get("access_token"))){
            openId = tokenJson.getString("openid");
        }else{
            if(StringUtils.isBlank(openId)){
                return wxAuthorizeVO;
            }
        }
        wxAuthorizeVO.setOpenid(openId);
        //根据openId 查询用户信息
        SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getOpenid,openId)
                .eq(SystemUser::getDeleted,Boolean.FALSE)
                .last(" limit 1 "));
        if(!Objects.isNull(user)){
            String token = systemLoginService.loginByUserId(user.getId());
            wxAuthorizeVO.setToken(token);
        }
        return wxAuthorizeVO;
    }
    @Override
    public List<MemberVO> getVisitedMember(CheckVisitedDTO checkVisitedDTO){
        List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
@@ -2100,6 +2151,114 @@
    }
    /********************************************************阜宁运维*********************************************************************************************/
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Member ywCreate(Member member) {
        if(Objects.isNull(member)
        || Objects.isNull(member.getCustomerId())
        || StringUtils.isBlank(member.getName())
        || StringUtils.isBlank(member.getPhone())
        || Objects.isNull(member.getHighCheckor())
        || Objects.isNull(member.getIdcardType())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = member.getLoginUserInfo();
        member.setCreator(loginUserInfo.getId());
        member.setCreateDate(new Date());
        member.setType(Constants.memberType.customer);
        member.setStatus(Constants.ZERO);
        member.setIsdeleted(Constants.ZERO);
        member.setStatus(Constants.ZERO);
        this.checkYwMember(member);
        memberMapper.insert(member);
        return member;
    }
    @Override
    public Member ywUpdate(Member member) {
        if(Objects.isNull(member)
                || Objects.isNull(member.getCustomerId())
                || Objects.isNull(member.getId())
                || StringUtils.isBlank(member.getName())
                || StringUtils.isBlank(member.getPhone())
                || Objects.isNull(member.getHighCheckor())
                || Objects.isNull(member.getIdcardType())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = member.getLoginUserInfo();
        member.setEditor(loginUserInfo.getId());
        member.setCustomerId(null);
        member.setEditDate(new Date());
        member.setType(Constants.memberType.customer);
        member.setStatus(Constants.ZERO);
        member.setIsdeleted(Constants.ZERO);
        member.setStatus(Constants.ZERO);
        this.checkYwMember(member);
        memberMapper.updateById(member);
        return member;
    }
    @Override
    public List<Member> ywList(Member member) {
        List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>()
                .lambda()
                .eq(Member::getIsdeleted,Constants.ZERO)
                        .eq(Member::getStatus,Constants.ZERO)
                .eq(Objects.nonNull(member.getCustomerId()),Member::getCustomerId,member.getCustomerId())
                .eq(Member::getType,Constants.memberType.customer)
        );
        return memberList;
    }
    public void checkYwMember(Member member){
        if (StringUtils.isBlank(member.getPhone())||!PhoneUtil.isPhone(member.getPhone())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"电话号码格式有误");
        }
        if (StringUtils.isNotBlank(member.getIdcardNo()) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO)  && !IdcardUtil.isValidCard(member.getIdcardNo())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"身份证号格式有误");
        }
        if(StringUtils.isNotBlank(member.getIdcardNo() ) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO) ){
            if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                            .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
                    .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()
                .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
                .eq(Member::getPhone,  member.getPhone())
                .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
        }
    }
    @Override
    public PageData<Member> ywFindPage(PageWrap<Member> pageWrap) {
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<Member>();
        Utils.MP.blankToNull(pageWrap.getModel());
        Member model = pageWrap.getModel();
        IPage iPage = memberMapper.selectJoinPage(page,Member.class,new MPJLambdaWrapper<Member>()
                        .selectAll(Member.class)
                .selectAs(YwCustomer::getName,Member::getCustomerName)
                .leftJoin(YwCustomer.class,YwCustomer::getId,Member::getCustomerId)
                .eq(Member::getIsdeleted,Constants.ZERO)
                .eq(Member::getType,Constants.memberType.customer)
                .eq(Objects.nonNull(model)&&Objects.nonNull(model.getCustomerId()),Member::getCustomerId,model.getCustomerId())
                .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),i->i.like(Member::getName,model.getName()).or().like(
                        Member::getPhone,model.getName()
                ))
                .orderByDesc(Member::getCreateDate)
        );
        return PageData.from(iPage);
    }
}