From 20b11236b4364034f52df294b9240776f539ede1 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期二, 16 七月 2024 14:49:01 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia --- server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java | 271 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 271 insertions(+), 0 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java new file mode 100644 index 0000000..bd783e7 --- /dev/null +++ b/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java @@ -0,0 +1,271 @@ +package com.doumee.service.business.impl; + +import com.doumee.biz.zbom.ZbomCRMService; +import com.doumee.biz.zbom.model.crm.CRMConstants; +import com.doumee.biz.zbom.model.crm.CrmDaogouBindListRequest; +import com.doumee.biz.zbom.model.crm.response.CRMBaseResponse; +import com.doumee.biz.zbom.model.crm.response.CRMDaogouBindListResponse; +import com.doumee.core.model.PageData; +import com.doumee.core.model.PageWrap; +import com.doumee.core.utils.Constants; +import com.doumee.core.utils.Utils; +import com.doumee.dao.business.CustomerUserMapper; +import com.doumee.dao.business.MemberMapper; +import com.doumee.dao.business.UsersMapper; +import com.doumee.dao.business.model.CustomerUser; +import com.doumee.dao.business.model.Member; +import com.doumee.dao.business.model.Users; +import com.doumee.service.business.CustomerUserService; +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 org.apache.commons.lang3.StringUtils; +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.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 瀹㈡埛瀵艰喘鍏宠仈琛⊿ervice瀹炵幇 + * @author 姹熻箘韫� + * @date 2024/07/15 10:21 + */ +@Service +public class CustomerUserServiceImpl implements CustomerUserService { + + @Autowired + private CustomerUserMapper customerUserMapper; + @Autowired + private MemberMapper memberMapper; + @Autowired + private UsersMapper usersMapper; + @Autowired + private ZbomCRMService zbomCRMService; + + @Override + public Long create(CustomerUser customerUser) { + customerUserMapper.insert(customerUser); + return customerUser.getId(); + } + + @Override + public void deleteById(Long id) { + customerUserMapper.deleteById(id); + } + + @Override + public void delete(CustomerUser customerUser) { + UpdateWrapper<CustomerUser> deleteWrapper = new UpdateWrapper<>(customerUser); + customerUserMapper.delete(deleteWrapper); + } + + @Override + public void deleteByIdInBatch(List<Long> ids) { + if (CollectionUtils.isEmpty(ids)) { + return; + } + customerUserMapper.deleteBatchIds(ids); + } + + @Override + public void updateById(CustomerUser customerUser) { + customerUserMapper.updateById(customerUser); + } + + @Override + public void updateByIdInBatch(List<CustomerUser> customerUsers) { + if (CollectionUtils.isEmpty(customerUsers)) { + return; + } + for (CustomerUser customerUser: customerUsers) { + this.updateById(customerUser); + } + } + + @Override + public CustomerUser findById(Long id) { + return customerUserMapper.selectById(id); + } + + @Override + public CustomerUser findOne(CustomerUser customerUser) { + QueryWrapper<CustomerUser> wrapper = new QueryWrapper<>(customerUser); + return customerUserMapper.selectOne(wrapper); + } + + @Override + public List<CustomerUser> findList(CustomerUser customerUser) { + QueryWrapper<CustomerUser> wrapper = new QueryWrapper<>(customerUser); + return customerUserMapper.selectList(wrapper); + } + + @Override + public PageData<CustomerUser> findPage(PageWrap<CustomerUser> pageWrap) { + IPage<CustomerUser> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + QueryWrapper<CustomerUser> queryWrapper = new QueryWrapper<>(); + Utils.MP.blankToNull(pageWrap.getModel()); + if (pageWrap.getModel().getId() != null) { + queryWrapper.lambda().eq(CustomerUser::getId, pageWrap.getModel().getId()); + } + if (pageWrap.getModel().getIsdeleted() != null) { + queryWrapper.lambda().eq(CustomerUser::getIsdeleted, pageWrap.getModel().getIsdeleted()); + } + if (pageWrap.getModel().getCreateDate() != null) { + queryWrapper.lambda().ge(CustomerUser::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); + queryWrapper.lambda().le(CustomerUser::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); + } + if (pageWrap.getModel().getCreator() != null) { + queryWrapper.lambda().eq(CustomerUser::getCreator, pageWrap.getModel().getCreator()); + } + if (pageWrap.getModel().getEditDate() != null) { + queryWrapper.lambda().ge(CustomerUser::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); + queryWrapper.lambda().le(CustomerUser::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); + } + if (pageWrap.getModel().getEditor() != null) { + queryWrapper.lambda().eq(CustomerUser::getEditor, pageWrap.getModel().getEditor()); + } + if (pageWrap.getModel().getPhone() != null) { + queryWrapper.lambda().eq(CustomerUser::getPhone, pageWrap.getModel().getPhone()); + } + if (pageWrap.getModel().getInfo() != null) { + queryWrapper.lambda().eq(CustomerUser::getInfo, pageWrap.getModel().getInfo()); + } + if (pageWrap.getModel().getUserId() != null) { + queryWrapper.lambda().eq(CustomerUser::getUserId, pageWrap.getModel().getUserId()); + } + if (pageWrap.getModel().getIamUserId() != null) { + queryWrapper.lambda().eq(CustomerUser::getIamUserId, pageWrap.getModel().getIamUserId()); + } + if (pageWrap.getModel().getMemberId() != null) { + queryWrapper.lambda().eq(CustomerUser::getMemberId, pageWrap.getModel().getMemberId()); + } + if (pageWrap.getModel().getName() != null) { + queryWrapper.lambda().eq(CustomerUser::getName, pageWrap.getModel().getName()); + } + if (pageWrap.getModel().getOrgName() != null) { + queryWrapper.lambda().eq(CustomerUser::getOrgName, pageWrap.getModel().getOrgName()); + } + if (pageWrap.getModel().getUsername() != null) { + queryWrapper.lambda().eq(CustomerUser::getUsername, pageWrap.getModel().getUsername()); + } + if (pageWrap.getModel().getProductCodeName() != null) { + queryWrapper.lambda().eq(CustomerUser::getProductCodeName, pageWrap.getModel().getProductCodeName()); + } + if (pageWrap.getModel().getAddr() != null) { + queryWrapper.lambda().eq(CustomerUser::getAddr, pageWrap.getModel().getAddr()); + } + for(PageWrap.SortData sortData: pageWrap.getSorts()) { + if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { + queryWrapper.orderByDesc(sortData.getProperty()); + } else { + queryWrapper.orderByAsc(sortData.getProperty()); + } + } + return PageData.from(customerUserMapper.selectPage(page, queryWrapper)); + } + + @Override + public long count(CustomerUser customerUser) { + QueryWrapper<CustomerUser> wrapper = new QueryWrapper<>(customerUser); + return customerUserMapper.selectCount(wrapper); + } + @Override + @Transactional + public void syncYesterday(String date) { + CrmDaogouBindListRequest request = new CrmDaogouBindListRequest(); + request.setPage(0); + request.setPageSize(100); + request.setTiming(Constants.ONE+""); + request.setCreationDate(date); + boolean hasMore = true; + int currentNum = 0; + Date cdate = new Date(); + while (hasMore){ + try { + request.setPage(request.getPage()+1); + currentNum += currentNum; + CRMBaseResponse<List<CRMDaogouBindListResponse>> response = zbomCRMService.getDaogouBindList(request); + if(response==null + || !StringUtils.equals(response.getCode(), CRMConstants.CODE_SUCCESS) + || response.getData() ==null + || response.getData().size() ==0){ + hasMore = false; + } + if(currentNum >= response.getTotal()){ + hasMore = false; + } + dealSyncDataBiz(cdate,response.getData()); + }catch (Exception e){ + hasMore = false; + } + } + } + + private void dealSyncDataBiz(Date date,List<CRMDaogouBindListResponse> list) { + List<CustomerUser> addList = new ArrayList<>(); + List<String> phoneList = new ArrayList<>(); + for(CRMDaogouBindListResponse data : list){ + if(StringUtils.isBlank(data.getCustomerPhone())){ + continue; + } + Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getPhone,data.getCustomerPhone() ) + .eq(Member::getIsdeleted,Constants.ZERO) + .last("limit 1" )); + Users user = usersMapper.selectOne(new QueryWrapper<Users>().lambda() + .eq(Users::getIamId,data.getUserId() ) + .last("limit 1" )); + if(member == null){ + continue; + } + phoneList.add(data.getCustomerPhone()); + + CustomerUser model = new CustomerUser(); + model.setCreateDate(date); + model.setIsdeleted(Constants.ZERO); + model.setEditDate(date); + model.setName(data.getDgName()); + model.setPhone(data.getDgPhone()); + model.setOrgName(data.getOrgName()); + model.setCustomerName(data.getCustomerName()); + model.setCustomerPhone(data.getCustomerPhone()); + model.setUsername(data.getUserName()); + model.setSource(Constants.ONE); + model.setZtStatus(Constants.ONE); + model.setZtInfo("crm鍚屾"); + model.setIamUserId(data.getUserId()); + model.setUserId(user== null?null:user.getId()); + model.setCreationDate(data.getCreationDate()); + addList.add(model); + } + if(phoneList.size()>0){ + /** + * 鍒犻櫎鑰佸緱鏁版嵁 + */ + customerUserMapper.update(null,new UpdateWrapper<CustomerUser>().lambda() + .in(CustomerUser::getPhone,phoneList) + .eq(CustomerUser::getZtStatus,Constants.ONE) + .eq(CustomerUser::getIsdeleted,Constants.ZERO) + .set(CustomerUser::getIsdeleted,Constants.ONE) + ); + } + if(addList .size() >0){ + int temp = 0; + while(temp < addList.size()){ + int index; + if(temp + 500 <= addList.size()){ + index = temp+500; + }else{ + index = addList.size(); + } + customerUserMapper.insert(addList.subList(temp,index)); + temp = index; + } + } + } +} -- Gitblit v1.9.3