增加基础模块-业务渠道和来源

This commit is contained in:
xyc 2025-09-08 13:57:14 +08:00
parent 17be414b84
commit 79c5ac04d4
6 changed files with 202 additions and 0 deletions

View File

@ -0,0 +1,93 @@
package cn.iocoder.yudao.module.business.controller.admin;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.business.entity.DlBusinessChannel;
import cn.iocoder.yudao.module.business.service.BusinessChannelService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/business")
@RequiredArgsConstructor
public class BusinessChannelController {
private final BusinessChannelService businessChannelService;
/**
* @Author
* @Description 获取客户来源和业务渠道
* @Date 13:54 2025/9/8
* @Param [channel]
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.util.List<cn.iocoder.yudao.module.business.entity.DlBusinessChannel>>
**/
@GetMapping("/list")
public CommonResult<List<DlBusinessChannel>> list(DlBusinessChannel channel) {
return CommonResult.success(businessChannelService.list(Wrappers.<DlBusinessChannel>lambdaQuery()
.eq(ObjectUtil.isNotEmpty(channel.getType()), DlBusinessChannel::getType, channel.getType())
.like(ObjectUtil.isNotEmpty(channel.getName()), DlBusinessChannel::getName, channel.getName())
.orderByAsc(DlBusinessChannel::getSort)));
}
/**
* 新增业务渠道或客户来源
*/
@PostMapping("/add")
public boolean addChannel(@RequestBody DlBusinessChannel channel) {
if (ObjectUtil.isNotEmpty(channel.getUserIdList())) {
String userIds = channel.getUserIdList().stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
channel.setUserIds(userIds);
}
return businessChannelService.save(channel);
}
/**
* 获取业务渠道或客户来源
*/
@GetMapping("/{id}")
public CommonResult<DlBusinessChannel> getChannelById(@PathVariable("id") Long id) {
DlBusinessChannel info = businessChannelService.getById(id);
//将字符串转为集合
if (ObjectUtil.isNotEmpty(info.getUserIds())) {
List<Long> userIdList = Arrays.stream(info.getUserIds().split(","))
.filter(s -> s != null && !s.isEmpty()) // 可选避免空字符串
.map(Long::valueOf)
.collect(Collectors.toList());
info.setUserIdList(userIdList);
}
return CommonResult.success(info);
}
/**
* 修改业务渠道或客户来源
*/
@PutMapping("/update")
public CommonResult<?> updateChannel(@RequestBody DlBusinessChannel channel) {
if (ObjectUtil.isNotEmpty(channel.getUserIdList())) {
String userIds = channel.getUserIdList().stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
channel.setUserIds(userIds);
}else if (ObjectUtil.isEmpty(channel.getUserIds())) {
channel.setUserIds("");
}
return CommonResult.success(businessChannelService.updateById(channel));
}
/**
* 删除业务渠道或客户来源
*/
@DeleteMapping("/delete/{id}")
public CommonResult<?> deleteChannel(@PathVariable("id") Long id) {
return CommonResult.success(businessChannelService.removeById(id));
}
}

View File

@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.business.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.List;
@Data
@TableName("inspection_business_channel")
public class DlBusinessChannel extends TenantBaseDO {
private Integer id; // 主键ID
private Integer pid; // 父ID
private String name; // 名称
private Integer type; // 0-业务渠道 1-客户来源
private String userIds; // 绑定的用户ID
private Integer sort; // 排序
private String systemCode; // 系统标识
// 子节点
@TableField(exist = false)
private List<DlBusinessChannel> children;
@TableField(exist = false)
private List<Long> userIdList;
}

View File

@ -0,0 +1,15 @@
package cn.iocoder.yudao.module.business.mapper;
import cn.iocoder.yudao.module.business.entity.DlBusinessChannel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BusinessChannelMapper extends BaseMapper<DlBusinessChannel> {
/**
* 获取业务渠道 客户来源
* @param userId
* @return
*/
DlBusinessChannel getBusinessChannelByUserId(Long userId);
}

View File

@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.business.service;
import cn.iocoder.yudao.module.business.entity.DlBusinessChannel;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
public interface BusinessChannelService extends IService<DlBusinessChannel> {
/**
* 获取业务渠道和客户来源
*
* @param userId 用户id
* @return
*/
Map<String, Object> getBusinessChannelByUserId(Long userId);
}

View File

@ -0,0 +1,41 @@
package cn.iocoder.yudao.module.business.service.impl;
import cn.iocoder.yudao.module.business.entity.DlBusinessChannel;
import cn.iocoder.yudao.module.business.mapper.BusinessChannelMapper;
import cn.iocoder.yudao.module.business.service.BusinessChannelService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class BusinessChannelServiceImpl extends ServiceImpl<BusinessChannelMapper, DlBusinessChannel> implements BusinessChannelService {
/**
* 获取业务渠道和客户来源
*
* @param userId 用户id
* @return
*/
@Override
public Map<String, Object> getBusinessChannelByUserId(Long userId) {
Map<String, Object> map = new HashMap<>();
// 客户来源
DlBusinessChannel channel = baseMapper.getBusinessChannelByUserId(userId);
if (channel == null) {
return null;
}
map.put("channel", channel);
// 根据客户来源的父id查询业务渠道
DlBusinessChannel business = getOne(Wrappers.<DlBusinessChannel>lambdaQuery()
.eq(DlBusinessChannel::getId, channel.getPid()));
if (business != null) {
map.put("business", business);
}
return map;
}
}

View File

@ -21,6 +21,8 @@ public class InspectionBusinessChannel extends TenantBaseDO {
private Integer sort; // 排序 private Integer sort; // 排序
private String systemCode; // 系统编码
// 子节点 // 子节点
@TableField(exist = false) @TableField(exist = false)
private List<InspectionBusinessChannel> children; private List<InspectionBusinessChannel> children;