From 441eb455e1e8a9283cd569c132b14ba8da4c54a6 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 11 十月 2025 17:49:47 +0800
Subject: [PATCH] 导出,短信,模板消息
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java | 219 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 219 insertions(+), 0 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
index 37d6abd..88c8b78 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
@@ -1,10 +1,34 @@
package com.ruoyi.system.service.impl;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.dto.TCrmBranchDTO;
+import com.ruoyi.system.export.TCrmBranchExport;
+import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.TCrmBranchMapper;
import com.ruoyi.system.model.TCrmBranch;
+import com.ruoyi.system.model.TCrmBranchArea;
+import com.ruoyi.system.model.TCrmBranchSalary;
+import com.ruoyi.system.query.TCrmBranchQuery;
+import com.ruoyi.system.query.TSysAppUserQuery;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.TCrmBranchAreaService;
+import com.ruoyi.system.service.TCrmBranchSalaryService;
import com.ruoyi.system.service.TCrmBranchService;
+import com.ruoyi.system.vo.TCrmBranchVO;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -17,4 +41,199 @@
@Service
public class TCrmBranchServiceImpl extends ServiceImpl<TCrmBranchMapper, TCrmBranch> implements TCrmBranchService {
+ @Autowired
+ private TCrmBranchAreaService crmBranchAreaService;
+ @Autowired
+ private TCrmBranchSalaryService crmBranchSalaryService;
+ @Autowired
+ private ISysUserService sysUserService;
+
+ @Override
+ public PageInfo<TCrmBranchVO> pageList(TCrmBranchQuery query) {
+ PageInfo<TCrmBranchVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ List<TCrmBranchArea> crmBranchAreas = new ArrayList<>();
+ if(StringUtils.isNotEmpty(query.getCityCode())){
+ crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .eq(TCrmBranchArea::getCityCode, query.getCityCode()));
+ }
+
+ if(StringUtils.isNotEmpty(query.getProvinceCode())){
+ crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .eq(TCrmBranchArea::getProvinceCode, query.getProvinceCode()));
+ }
+ if(!CollectionUtils.isEmpty(crmBranchAreas)){
+ List<String> branchIds = crmBranchAreas.stream().map(TCrmBranchArea::getBranchId).collect(Collectors.toList());
+ query.setBranchIds(branchIds);
+ }else {
+ return pageInfo;
+ }
+ List<TCrmBranchVO> list = this.baseMapper.pageList(query,pageInfo);
+ if(CollectionUtils.isEmpty(list)){
+ return pageInfo;
+ }
+ List<String> branchIds = list.stream().map(TCrmBranchVO::getId).collect(Collectors.toList());
+ List<TCrmBranchArea> crmBranchAreaList = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .in(TCrmBranchArea::getBranchId, branchIds));
+ for (TCrmBranchVO tCrmBranchVO : list) {
+ List<TCrmBranchArea> tCrmBranchAreas = crmBranchAreaList.stream().filter(t -> t.getBranchId().equals(tCrmBranchVO.getId())).collect(Collectors.toList());
+ if(!CollectionUtils.isEmpty(tCrmBranchAreas)){
+ tCrmBranchVO.setProvinceName(tCrmBranchAreas.get(0).getProvinceName());
+ }
+ }
+ pageInfo.setRecords(list);
+ return pageInfo;
+ }
+
+ @Override
+ public R<Boolean> addBranch(TCrmBranchDTO dto) {
+ if (isExit(dto)) {
+ return R.fail("crm分公司管理名称已存在");
+ }
+ // 判断账号是否已存在
+ SysUser sysUser = sysUserService.selectUserByUserName(dto.getPhone());
+ if(Objects.nonNull(sysUser)){
+ return R.fail(dto.getPhone()+"-账号已存在");
+ }
+ List<TCrmBranchArea> branchAreas = dto.getBranchAreas();
+ // 判断是否已存在这些区域
+ if(!CollectionUtils.isEmpty(branchAreas)){
+ List<String> branchAreaCityCodes = branchAreas.stream().map(TCrmBranchArea::getCityCode).collect(Collectors.toList());
+
+ if(!CollectionUtils.isEmpty(branchAreaCityCodes)){
+ long count = crmBranchAreaService.count(Wrappers.lambdaQuery(TCrmBranchArea.class).in(TCrmBranchArea::getCityCode, branchAreaCityCodes));
+ if(count > 0){
+ return R.fail("区域已存在");
+ }
+ }
+ }
+
+ this.save(dto);
+ // 添加区域
+ branchAreas.forEach(t -> t.setBranchId(dto.getId()));
+ crmBranchAreaService.saveBatch(branchAreas);
+ // 添加职位薪资
+ List<TCrmBranchSalary> branchSalaries = dto.getBranchSalaries();
+ branchSalaries.forEach(t -> t.setBranchId(dto.getId()));
+ crmBranchSalaryService.saveBatch(branchSalaries);
+ // 添加账号
+ SysUser user = new SysUser();
+ user.setUserName(dto.getPhone());
+ user.setPhonenumber(dto.getPhone());
+ user.setNickName(dto.getUserName());
+ user.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
+ user.setStatus("0");
+ user.setDelFlag("0");
+ user.setRoleType(2);
+ user.setRoleId(2L);
+ sysUserService.insertUser(user);
+ dto.setUserId(user.getUserId());
+ this.updateById(dto);
+ return R.ok();
+ }
+
+ @Override
+ public boolean isExit(TCrmBranchDTO dto) {
+ if(StringUtils.isNotEmpty(dto.getId())){
+ // 修改
+ return this.count(Wrappers.lambdaQuery(TCrmBranch.class).ne(TCrmBranch::getId, dto.getId()).eq(TCrmBranch::getBranchName, dto.getBranchName())) > 0;
+ }else {
+ // 新增
+ return this.count(Wrappers.lambdaQuery(TCrmBranch.class).eq(TCrmBranch::getBranchName, dto.getBranchName())) > 0;
+ }
+ }
+
+ @Override
+ public R<Boolean> updateBranch(TCrmBranchDTO dto) {
+ if (isExit(dto)) {
+ return R.fail("crm分公司管理名称已存在");
+ }
+ // 判断账号是否已存在
+ SysUser sysUser1 = sysUserService.selectUserByUserName(dto.getPhone());
+ if(Objects.nonNull(sysUser1) && !sysUser1.getUserId().equals(dto.getUserId())){
+ return R.fail(dto.getPhone()+"-账号已存在");
+ }
+ SysUser user = sysUserService.selectUserById(dto.getUserId());
+ List<TCrmBranchArea> branchAreas = dto.getBranchAreas();
+ // 判断是否已存在这些区域
+ if(!CollectionUtils.isEmpty(branchAreas)){
+ List<String> branchAreaCityCodes = branchAreas.stream().map(TCrmBranchArea::getCityCode).collect(Collectors.toList());
+ long count = crmBranchAreaService.count(Wrappers.lambdaQuery(TCrmBranchArea.class).in(TCrmBranchArea::getCityCode, branchAreaCityCodes)
+ .ne(TCrmBranchArea::getBranchId, dto.getId()));
+ if(count > 0){
+ return R.fail("区域存在重复");
+ }
+ }
+ this.updateById(dto);
+ // 删除区域
+ crmBranchAreaService.remove(Wrappers.lambdaQuery(TCrmBranchArea.class).eq(TCrmBranchArea::getBranchId, dto.getId()));
+ // 添加区域
+ branchAreas.forEach(t -> t.setBranchId(dto.getId()));
+ crmBranchAreaService.saveBatch(branchAreas);
+ // 删除职位薪资
+ crmBranchSalaryService.remove(Wrappers.lambdaQuery(TCrmBranchSalary.class).eq(TCrmBranchSalary::getBranchId, dto.getId()));
+ // 添加职位薪资
+ List<TCrmBranchSalary> branchSalaries = dto.getBranchSalaries();
+ branchSalaries.forEach(t -> t.setBranchId(dto.getId()));
+ crmBranchSalaryService.saveBatch(branchSalaries);
+ if(Objects.nonNull(user)){
+ // 修改账号
+ user.setPhonenumber(dto.getPhone());
+ user.setUserName(dto.getPhone());
+ user.setNickName(dto.getUserName());
+ if(StringUtils.isNotEmpty(dto.getPassword())){
+ user.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
+ }
+ sysUserService.updateUser(user);
+ }
+// if(Objects.nonNull(user) && user.getUserName().equals(dto.getPhone()) && StringUtils.isNotEmpty(dto.getPassword())) {
+// // 修改密码
+// user.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
+// sysUserService.updateUser(user);
+// }
+ return R.ok();
+ }
+
+ @Override
+ public List<TCrmBranchExport> exportList(TCrmBranchQuery query) {
+ List<TCrmBranchArea> crmBranchAreas = new ArrayList<>();
+ if(StringUtils.isNotEmpty(query.getCityCode())){
+ crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .eq(TCrmBranchArea::getCityCode, query.getCityCode()));
+ }
+
+ if(StringUtils.isNotEmpty(query.getProvinceCode())){
+ crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .eq(TCrmBranchArea::getProvinceCode, query.getProvinceCode()));
+ }
+ if(!CollectionUtils.isEmpty(crmBranchAreas)){
+ List<String> branchIds = crmBranchAreas.stream().map(TCrmBranchArea::getBranchId).collect(Collectors.toList());
+ query.setBranchIds(branchIds);
+ }else {
+ return new ArrayList<>();
+ }
+ List<TCrmBranchExport> list = this.baseMapper.exportList(query);
+ if(CollectionUtils.isEmpty(list)){
+ return list;
+ }
+ List<String> branchIds = list.stream().map(TCrmBranchExport::getId).collect(Collectors.toList());
+ List<TCrmBranchArea> crmBranchAreaList = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .in(TCrmBranchArea::getBranchId, branchIds));
+ // 查询职位薪资
+ List<TCrmBranchSalary> crmBranchSalaries = crmBranchSalaryService.list(Wrappers.lambdaQuery(TCrmBranchSalary.class)
+ .in(TCrmBranchSalary::getBranchId, branchIds));
+ for (TCrmBranchExport crmBranchExport : list) {
+ List<TCrmBranchArea> tCrmBranchAreas = crmBranchAreaList.stream().filter(t -> t.getBranchId().equals(crmBranchExport.getId())).collect(Collectors.toList());
+ StringBuilder stringBuilder = new StringBuilder();
+ for (TCrmBranchArea tCrmBranchArea : tCrmBranchAreas) {
+ stringBuilder.append(tCrmBranchArea.getProvinceName()).append("-").append(tCrmBranchArea.getCityName()).append(",");
+ }
+ // 去除','
+ stringBuilder.deleteCharAt(stringBuilder.length()-1);
+ crmBranchExport.setAreaNames(stringBuilder.toString());
+ // 职位薪资
+ List<TCrmBranchSalary> crmBranchSalariesList = crmBranchSalaries.stream().filter(t -> t.getBranchId().equals(crmBranchExport.getId())).collect(Collectors.toList());
+ crmBranchExport.setCrmBranchSalaries(crmBranchSalariesList);
+ }
+ return list;
+ }
}
--
Gitblit v1.7.1