From 973bc6167190ad45bb44feb7520ff7635fe90685 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 22 十一月 2024 13:55:42 +0800
Subject: [PATCH] 客户资料 巡检任务业务

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java |  205 ++++++++++++++++++++++++++------------------------
 1 files changed, 106 insertions(+), 99 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java
index 840edc8..8d5464e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java
@@ -1,21 +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;
 
 /**
  * 杩愮淮瀹㈡埛淇℃伅琛⊿ervice瀹炵幇
@@ -28,11 +43,68 @@
     @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.nonNull(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.setCompanyType(ywCustomer.getId());
+        member.setType(Constants.memberType.customer);
+        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, LoginUserInfo user) {
@@ -55,6 +127,17 @@
 
     @Override
     public void updateById(YwCustomer ywCustomer) {
+        if(Objects.isNull(ywCustomer)
+                || Objects.nonNull(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 +156,17 @@
         return ywCustomerMapper.selectById(id);
     }
 
+    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);
@@ -88,106 +182,19 @@
     @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)
+                .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

--
Gitblit v1.9.3