修改逻辑代码

master
bynt 10 months ago
parent 590033e4f2
commit 4167aa9a01

@ -15,6 +15,7 @@
*/
package com.baiye.enums;
import com.baiye.constant.DefaultNumberConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;
@ -42,6 +43,16 @@ public enum SalesManEnum {
*/
FIRST_INSTANCE(20L, 2),
/**
*
*/
SALESMAN(23L, 4),
/**
*
*/
EXECUTIVE(14L, 0),
/**
*
*/
@ -59,6 +70,7 @@ public enum SalesManEnum {
return salesManEnum.getType();
}
}
return 0;
return DefaultNumberConstants.MINUS_ONE_NUMBER;
}
}

@ -54,6 +54,16 @@
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>common-util</artifactId>
</dependency>
<!-- 测试使用 -->
<dependency>
<groupId>org.springframework.boot</groupId>

@ -0,0 +1,50 @@
package com.baiye.common.excel.converters;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.baiye.util.AESUtils;
import java.util.Objects;
/**
* @author Enzo
* @date : 2023/12/8
*/
public class BooleanStringConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
/**
*
*
* @param context
* @return
*/
@Override
public String convertToJavaData(ReadConverterContext<?> context) {
return context.getReadCellData().getStringValue().equals(Boolean.TRUE.toString()) ? "是" : "否";
}
/**
*
*
* @return
*/
@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<String> context) {
return new WriteCellData<>(Boolean.parseBoolean(context.getValue()) ? "是" : "否");
}
}

@ -0,0 +1,45 @@
package com.baiye.common.excel.converters;
import cn.hutool.json.JSONUtil;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
/**
* @author Enzo
* @date : 2023/12/8
*/
public class CustomStringStringConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
/**
*
*
* @param context
* @return
*/
@Override
public String convertToJavaData(ReadConverterContext<?> context) {
return "自定义:" + context.getReadCellData().getStringValue();
}
/**
*
*
* @return
*/
@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<String> context) {
return new WriteCellData<>(JSONUtil.toJsonStr(context.getValue()));
}
}

@ -0,0 +1,51 @@
package com.baiye.common.excel.converters;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.baiye.util.AESUtils;
import java.util.Objects;
/**
* @author Enzo
* @date : 2023/12/8
*/
public class NidStringConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
/**
*
*
* @param context
* @return
*/
@Override
public String convertToJavaData(ReadConverterContext<?> context) {
return Objects.requireNonNull(AESUtils.encrypt(context.getReadCellData().getStringValue(), "==ad-distribute="));
}
/**
*
*
* @return
*/
@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<String> context) {
return ObjectUtil.isNotNull(context.getValue()) ? new WriteCellData<>
(AESUtils.decrypt(context.getValue(), "==ad-distribute=")) : new WriteCellData<>(CharSequenceUtil.EMPTY);
}
}

@ -3,11 +3,14 @@ package hccake.ballcat.excel.application;
import com.baiye.common.excel.annotation.ResponseExcel;
import com.baiye.common.excel.annotation.Sheet;
import com.baiye.common.excel.head.EmptyHeadGenerator;
import org.apache.commons.compress.utils.Lists;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
@ -27,7 +30,7 @@ public class ExcelExportTestController {
data.setPassword("password" + i);
dataList.add(data);
}
return dataList;
return new ArrayList<>(Collections.singletonList(new DemoData()));
}
@ResponseExcel(name = "test-export", template = "template.xlsx", headGenerator = EmptyHeadGenerator.class)

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.domain.PageParam;
@ -140,7 +141,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
public UserInfoDTO findUserInfo(SysUser sysUser) {
UserInfoDTO userInfoDTO = new UserInfoDTO();
userInfoDTO.setSysUser(sysUser);
userInfoDTO.setSalesmanType(0);
userInfoDTO.setSalesmanType(DefaultNumberConstants.MINUS_ONE_NUMBER);
Boolean isAdmin = Boolean.FALSE;
// 超级管理员拥有所有角色
List<SysRole> roleList;
@ -150,11 +151,12 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
roleList = sysUserRoleService.listRoles(sysUser.getUserId());
// 判断用户角色
Set<Long> roleIdSet = roleList.stream().map(SysRole::getId).collect(Collectors.toSet());
if (Boolean.FALSE.equals(isAdmin)
&& adminUserChecker.isSalesman(roleIdSet)) {
if (Boolean.FALSE.equals(isAdmin)) {
for (Long id : roleIdSet) {
if (SalesManEnum.find(id) > 0) {
userInfoDTO.setSalesmanType(SalesManEnum.find(id));
Integer type = SalesManEnum.find(id);
if (ObjectUtil.isNotNull(type)
&& type > DefaultNumberConstants.MINUS_ONE_NUMBER) {
userInfoDTO.setSalesmanType(type);
break;
}
}
@ -548,9 +550,9 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
if (sysUser.getChargingStatus() == 1) {
Integer residueClueNum = balanceVO.getResidueClueNum();
if (residueClueNum < 1) {
if (StringUtils.isNotBlank(storeName)){
if (StringUtils.isNotBlank(storeName)) {
throw new BadRequestException("用户" + balanceVO.getUsername() + "\n店铺:" + storeName + "\n可用数量不足!");
} else{
} else {
throw new BadRequestException("用户" + balanceVO.getUsername() + "\n可用数量不足!");
}
}

@ -1,19 +1,16 @@
package com.baiye.modules.distribute.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.common.excel.annotation.ResponseExcel;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.converter.ClueConverter;
import com.baiye.modules.distribute.converter.CustomConverter;
import com.baiye.modules.distribute.dto.ClueDTO;
import com.baiye.modules.distribute.entity.ClueEntity;
import com.baiye.modules.distribute.entity.CustomEntity;
import com.baiye.modules.distribute.qo.ClueQo;
import com.baiye.modules.distribute.qo.CustomQo;
import com.baiye.modules.distribute.service.ClueService;
import com.baiye.modules.distribute.vo.ClueVO;
import com.baiye.modules.distribute.vo.CustomVO;
import com.baiye.notify.event.UserAnnouncementReadEvent;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
@ -27,9 +24,7 @@ import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@RequiredArgsConstructor
@RestController
@ -42,9 +37,18 @@ public class ClueController {
private final ApplicationContext publisher;
@GetMapping("/page")
@Operation(summary = "分页查询资源")
public R<PageResult<ClueVO>> getClueRecordPage(@Validated PageParam pageParam, ClueQo qo) {
if (ObjectUtil.isNotNull(qo.getSalesmanType())) {
if (qo.getSalesmanType() == DefaultNumberConstants.FOUR_NUMBER) {
qo.setAssignedBy(SecurityUtils.getCurrentUserId());
}
if (qo.getSalesmanType() == DefaultNumberConstants.ZERO_NUMBER) {
qo.setCompanyId(SecurityUtils.getCurrentUserId());
}
}
return R.ok(clueService.queryPage(pageParam, qo));
}
@ -69,11 +73,19 @@ public class ClueController {
return R.ok(clueService.details(clueId, qo));
}
@Operation(summary = "修改是否有效")
@GetMapping("/changeIsEffective")
public R<Object> update(Long id, Integer effective) {
clueService.changeEffective(id, effective);
return R.ok();
}
@ResponseExcel(name = "线索表单")
@GetMapping("/export")
public List<ClueVO> exportClueData(ClueQo qo) {
List<ClueVO> list = clueService.queryList(qo);
return CollUtil.isEmpty(list) ? Lists.newArrayList() : list;
return CollUtil.isEmpty(list) ? Lists.newArrayList(new ClueVO()) : list;
}
}

@ -65,9 +65,12 @@ public class ClueEntity extends LogicDeletedBaseEntity {
@Schema(title = "资源所打的阶段名称")
private String clueStageName;
@Schema(title = "资源线索ID")
@Schema(title = "是否新线索")
private Boolean isNewClue;
@Schema(title = "是否有效")
private Boolean isEffective;
@Schema(title = "太空猫传递的线索ID")
private Long variable;

@ -14,7 +14,7 @@ import java.util.List;
@Getter
@Setter
@TableName(value = "tb_push_link",autoResultMap = true)
@TableName(value = "tb_push_link", autoResultMap = true)
@Schema(title = "推送链接")
@TableAlias("pl")
public class PushLinkEntity extends BaseEntity {

@ -2,28 +2,22 @@ package com.baiye.modules.distribute.mapper;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.extend.mybatis.plus.conditions.query.LambdaAliasQueryWrapperX;
import com.baiye.extend.mybatis.plus.conditions.query.LambdaQueryWrapperX;
import com.baiye.extend.mybatis.plus.mapper.ExtendMapper;
import com.baiye.extend.mybatis.plus.toolkit.WrappersX;
import com.baiye.modules.distribute.converter.ClueConverter;
import com.baiye.modules.distribute.converter.PushLinkConverter;
import com.baiye.modules.distribute.dto.HomePageDTO;
import com.baiye.modules.distribute.entity.ClueEntity;
import com.baiye.modules.distribute.entity.PushLinkEntity;
import com.baiye.modules.distribute.qo.ClueQo;
import com.baiye.modules.distribute.qo.HomePageQo;
import com.baiye.modules.distribute.vo.ClueVO;
import com.baiye.modules.distribute.vo.PushLinkVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface ClueMapper extends ExtendMapper<ClueEntity> {
@ -52,7 +46,7 @@ public interface ClueMapper extends ExtendMapper<ClueEntity> {
* @param wrapperX
* @return
*/
List<ClueVO> selectListByQo(Wrapper<ClueEntity> wrapperX);
List<ClueVO> selectListByQo(@Param(Constants.WRAPPER) Wrapper<ClueEntity> wrapperX);
/**

@ -31,4 +31,7 @@ public class ClueQo {
@Schema(title = "资源标签")
private String clueLabelName;
@Schema(title = "业务类型")
private Integer salesmanType;
}

@ -50,4 +50,12 @@ public interface ClueService extends ExtendService<ClueEntity> {
* @return
*/
List<ClueVO> queryList(ClueQo qo);
/**
*
* @param id
* @param effective
* @return
*/
Boolean changeEffective(Long id, Integer effective);
}

@ -9,6 +9,7 @@ import com.baiye.constant.DefaultNumberConstants;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.baiye.extend.mybatis.plus.toolkit.WrappersX;
import com.baiye.modules.distribute.converter.ClueConverter;
import com.baiye.modules.distribute.dto.ClueDTO;
import com.baiye.modules.distribute.entity.*;
@ -22,9 +23,11 @@ import com.baiye.modules.distribute.vo.ClueVO;
import com.baiye.notify.event.StationNotifyPushEvent;
import com.baiye.notify.model.domain.AnnouncementNotifyInfo;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.model.entity.SysMenu;
import com.baiye.util.AESUtils;
import com.baiye.util.MobileUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -106,7 +109,7 @@ public class ClueServiceImpl extends ExtendServiceImpl<ClueMapper, ClueEntity> i
@Override
public PageResult<ClueVO> queryPage(PageParam pageParam, ClueQo qo) {
qo.setAssignedBy(SecurityUtils.getCurrentUserId());
// 扩展数据
if (qo.getNid() != null) {
qo.setNid(AESUtils.encrypt(qo.getNid(), securityProperties.getPasswordSecretKey()));
@ -226,4 +229,11 @@ public class ClueServiceImpl extends ExtendServiceImpl<ClueMapper, ClueEntity> i
return clueVOList;
}
@Override
public Boolean changeEffective(Long id, Integer effective) {
LambdaUpdateWrapper<ClueEntity> wrapper = Wrappers.lambdaUpdate(ClueEntity.class)
.set(ClueEntity::getIsEffective, effective).eq(ClueEntity::getClueId, id);
return SqlHelper.retBool(this.baseMapper.update(null,wrapper));
}
}

@ -1,6 +1,10 @@
package com.baiye.modules.distribute.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baiye.common.excel.converters.BooleanStringConverter;
import com.baiye.common.excel.converters.CustomStringStringConverter;
import com.baiye.common.excel.converters.NidStringConverter;
import com.baiye.extend.mybatis.plus.converter.JsonStringArrayTypeHandler;
import com.baiye.modules.distribute.entity.ClueStageEntity;
import com.baiye.modules.distribute.entity.LabelOrganizeEntity;
@ -19,16 +23,21 @@ public class ClueVO {
@Schema(title = "线索ID")
private String clueId;
@Schema(title = "线索来源")
private String originName;
@ExcelProperty(value = "是否有效", converter = BooleanStringConverter.class, index = 4)
@Schema(title = "是否有效")
private Boolean isEffective;
@Schema(title = "手机号")
@ExcelProperty(value = "手机号",converter = NidStringConverter.class, index = 0)
private String nid;
@Schema(title = "线索时间")
private String clueTime;
@Schema(title = "线索来源")
@ExcelProperty(value = "线索来源", index = 1)
private String originName;
@Schema(title = "线索备注")
@ExcelProperty(value = "线索备注", index = 2)
private String remark;
@ExcelIgnore
@ -36,18 +45,29 @@ public class ClueVO {
private Long clueRecordId;
@Schema(title = "其它资源字段")
@ExcelIgnore
// @ExcelProperty(value = "其它资源字段", index = 4)
private String otherClue;
@ExcelIgnore
@Schema(title = "分配人用户ID")
private Long assignedBy;
@ExcelIgnore
@Schema(title = "线索时间")
private String clueTime;
@Schema(title = "资源标签")
@ExcelProperty(value = "资源标签", index = 5)
private String clueLabel;
@ExcelIgnore
@Schema(title = "资源标签名称")
private String clueLabelName;
@Schema(title = "创建时间")
@ExcelProperty(value = "线索时间", index = 3)
private LocalDateTime createTime;
@ExcelIgnore
@ -58,9 +78,11 @@ public class ClueVO {
@Schema(title = "资源线索ID")
private Long clueStageId;
@ExcelIgnore
@Schema(title = "资源线索名称")
private String clueStageName;
@ExcelProperty(value = "资源标签集合", converter = CustomStringStringConverter.class, index = 6)
@Schema(title = "资源标签集合")
private List<String> clueLabelList;

@ -2,10 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.baiye.modules.distribute.mapper.ClueMapper">
<sql id="Base_Alias_Column_List">
ce
.
clue_id
,
ce.clue_id,
ce.is_new_clue,
ce.origin_name,
ce.nid,

Loading…
Cancel
Save