jiangping
2024-11-26 f1864f6d2d85b49fc901b22e9f6759a5d0fb360b
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java
@@ -1,20 +1,36 @@
package com.doumee.service.business.impl;
import cn.emay.sdk.util.StringUtil;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.PhoneUtil;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.YwCustomerMapper;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.YwCustomer;
import com.doumee.service.business.YwCustomerService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * 运维客户信息表Service实现
@@ -27,14 +43,71 @@
    @Autowired
    private YwCustomerMapper ywCustomerMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(YwCustomer ywCustomer) {
        if(Objects.isNull(ywCustomer)
            || Objects.isNull(ywCustomer.getType())
            || StringUtils.isBlank(ywCustomer.getName())
            || Objects.isNull(ywCustomer.getMember())
            || StringUtils.isBlank(ywCustomer.getMember().getName())
            || StringUtils.isBlank(ywCustomer.getMember().getPhone())
            || Objects.isNull(ywCustomer.getMember().getHighCheckor())
            || Objects.isNull(ywCustomer.getMember().getIdcardType())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywCustomer.getLoginUserInfo();
        ywCustomer.setStatus(Constants.ZERO);
        ywCustomer.setIsdeleted(Constants.ZERO);
        ywCustomer.setCreator(loginUserInfo.getId());
        ywCustomer.setCreateDate(new Date());
        ywCustomerMapper.insert(ywCustomer);
        Member member = ywCustomer.getMember();
        member.setCreator(loginUserInfo.getId());
        member.setCreateDate(new Date());
        member.setIsdeleted(Constants.ZERO);
        member.setStatus(Constants.ZERO);
        member.setType(Constants.memberType.customer);
        member.setCustomerId(ywCustomer.getId());
        this.checkMember(member);
        memberMapper.insert(member);
        ywCustomer.setMemberId(member.getId());
        ywCustomerMapper.updateById(ywCustomer);
        return ywCustomer.getId();
    }
    public void checkMember(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()
                    .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())
                .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
        }
    }
    @Override
    public void deleteById(Integer id) {
    public void deleteById(Integer id, LoginUserInfo user) {
        ywCustomerMapper.deleteById(id);
    }
@@ -45,7 +118,7 @@
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
@@ -54,6 +127,17 @@
    @Override
    public void updateById(YwCustomer ywCustomer) {
        if(Objects.isNull(ywCustomer)
                || Objects.isNull(ywCustomer.getType())
                || StringUtils.isBlank(ywCustomer.getName())
                || Objects.isNull(ywCustomer.getMemberId())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywCustomer.getLoginUserInfo();
        ywCustomer.setEditor(loginUserInfo.getId());
        ywCustomer.setEditDate(new Date());
        ywCustomerMapper.updateById(ywCustomer);
    }
@@ -73,6 +157,18 @@
    }
    @Override
    public YwCustomer getDetail(Integer id) {
        YwCustomer ywCustomer = ywCustomerMapper.selectById(id);
        if(Objects.isNull(ywCustomer)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        Member member = memberMapper.selectById(ywCustomer.getMemberId());
        if(Objects.nonNull(member)){
            ywCustomer.setMember(member);
        }
        return ywCustomer;
    }
    @Override
    public YwCustomer findOne(YwCustomer ywCustomer) {
        QueryWrapper<YwCustomer> wrapper = new QueryWrapper<>(ywCustomer);
        return ywCustomerMapper.selectOne(wrapper);
@@ -87,106 +183,20 @@
    @Override
    public PageData<YwCustomer> findPage(PageWrap<YwCustomer> pageWrap) {
        IPage<YwCustomer> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwCustomer> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwCustomer> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwCustomer::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwCustomer::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwCustomer::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwCustomer::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwCustomer::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwCustomer::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwCustomer::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getIndustryId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIndustryId, pageWrap.getModel().getIndustryId());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwCustomer::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getPhone() != null) {
            queryWrapper.lambda().eq(YwCustomer::getPhone, pageWrap.getModel().getPhone());
        }
        if (pageWrap.getModel().getIdcardNo() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdcardNo, pageWrap.getModel().getIdcardNo());
        }
        if (pageWrap.getModel().getIdcardDecode() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdcardDecode, pageWrap.getModel().getIdcardDecode());
        }
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.lambda().eq(YwCustomer::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwCustomer::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getHighCheckor() != null) {
            queryWrapper.lambda().eq(YwCustomer::getHighCheckor, pageWrap.getModel().getHighCheckor());
        }
        if (pageWrap.getModel().getLastLoginDate() != null) {
            queryWrapper.lambda().ge(YwCustomer::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate()));
            queryWrapper.lambda().le(YwCustomer::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate()));
        }
        if (pageWrap.getModel().getLoginNum() != null) {
            queryWrapper.lambda().eq(YwCustomer::getLoginNum, pageWrap.getModel().getLoginNum());
        }
        if (pageWrap.getModel().getUserId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getUserId, pageWrap.getModel().getUserId());
        }
        if (pageWrap.getModel().getIdcardType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdcardType, pageWrap.getModel().getIdcardType());
        }
        if (pageWrap.getModel().getAccountBank() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountBank, pageWrap.getModel().getAccountBank());
        }
        if (pageWrap.getModel().getAccountNo() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountNo, pageWrap.getModel().getAccountNo());
        }
        if (pageWrap.getModel().getAccountPhone() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountPhone, pageWrap.getModel().getAccountPhone());
        }
        if (pageWrap.getModel().getCreditCard() != null) {
            queryWrapper.lambda().eq(YwCustomer::getCreditCard, pageWrap.getModel().getCreditCard());
        }
        if (pageWrap.getModel().getFpType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getFpType, pageWrap.getModel().getFpType());
        }
        if (pageWrap.getModel().getAccountAddr() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountAddr, pageWrap.getModel().getAccountAddr());
        }
        if (pageWrap.getModel().getIdentityType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdentityType, pageWrap.getModel().getIdentityType());
        }
        if (pageWrap.getModel().getEmail() != null) {
            queryWrapper.lambda().eq(YwCustomer::getEmail, pageWrap.getModel().getEmail());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getMemberId, pageWrap.getModel().getMemberId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywCustomerMapper.selectPage(page, queryWrapper));
        YwCustomer model = pageWrap.getModel();
        IPage iPage = ywCustomerMapper.selectJoinPage(page,YwCustomer.class,
                queryWrapper
                .selectAll(YwCustomer.class)
                .selectAs(Member::getName,YwCustomer::getMemberName)
                .selectAs(Member::getPhone,YwCustomer::getMemberPhone)
                .leftJoin(Member.class,Member::getId,YwCustomer::getMemberId)
                .eq(YwCustomer::getIsdeleted,Constants.ZERO)
                .like(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),YwCustomer::getName,model.getName())
                .orderByDesc(YwCustomer::getCreateDate)
        );
        return PageData.from(iPage);
    }
    @Override