mac 2 лет назад
Родитель
Сommit
0228dbf3c2

+ 6 - 0
kxs-common/kxs-common-core/pom.xml

@@ -64,6 +64,12 @@
             <version>0.1.18</version>
             <version>0.1.18</version>
         </dependency>
         </dependency>
 
 
+        <!-- excel 导入导出 https://github.com/sky-mesh/excel-spring-boot-starter -->
+        <dependency>
+            <groupId>com.pig4cloud.excel</groupId>
+            <artifactId>excel-spring-boot-starter</artifactId>
+        </dependency>
+
         <!--spring-webmvc-->
         <!--spring-webmvc-->
         <dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <groupId>org.springframework</groupId>

+ 35 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/annotation/EnumFiledConvert.java

@@ -0,0 +1,35 @@
+package com.kxs.common.core.annotation;
+ 
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+ 
+/**
+ * 对excel导入时,处理枚举转化
+ * @Author 996
+ * @Date 2024/3/13
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EnumFiledConvert {
+ 
+ 
+    /**
+     * 枚举映射map  key-value,key-value,key-value,key-value
+     * @return
+     */
+    String enumMap() default "";
+ 
+    /**
+     * 枚举类导入、导出在excel中的分隔符号
+     * @return
+     */
+    String spiteChar() default ",";
+ 
+    /**
+     * 单选 or 多选
+     * @return
+     */
+    boolean single() default true;
+}

+ 130 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/converter/EasyExcelConvert.java

@@ -0,0 +1,130 @@
+package com.kxs.common.core.converter;
+ 
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import com.kxs.common.core.annotation.EnumFiledConvert;
+import org.springframework.util.StringUtils;
+ 
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * excel导入导出针对枚举类型的转换器
+ *
+ * @author 没秃顶的码农
+ * @date 2024-07-03
+ */
+public class EasyExcelConvert implements Converter<Object> {
+    /**
+     * 枚举列表
+     */
+    private final Map<String, String> enumMap = new HashMap<>();
+ 
+ 
+    /**
+     * excel转化后的类型
+     *
+     */
+    @Override
+    public Class<?> supportJavaTypeKey() {
+        return Object.class;
+    }
+ 
+    /**
+     * excel中的数据类型,统一设置字符串
+     *
+     */
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+ 
+    /**
+     * 导入转换
+     * @param cellData            当前单元格对象
+     * @param contentProperty     当前单元格属性
+     * @param globalConfiguration --
+     */
+    @Override
+    public Object convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+        String cellMsg = cellData.getStringValue();
+        Field field = contentProperty.getField();
+        EnumFiledConvert enumFiledConvert = field.getAnnotation(EnumFiledConvert.class);
+        if (enumFiledConvert == null) {
+            return null;
+        }
+        String enumStr = enumFiledConvert.enumMap();
+        // 解析枚举映射关系
+        getEnumMap(enumStr, true);
+        // 是否为单选
+        boolean single = enumFiledConvert.single();
+        // 如果是单选,默认Java属性为integer
+        if (single) {
+            String res = enumMap.get(cellMsg);
+            return StringUtils.hasText(res) ? Integer.valueOf(res) : null;
+        } else {
+            // 多选分隔符
+            String spiteChar = enumFiledConvert.spiteChar();
+            // 多选枚举,默认Java属性为字符串,格式为 key1,key2,key3
+            List<String> strStr = Arrays.asList(cellMsg.split(spiteChar)).stream().map(s -> String.valueOf(enumMap.get(s))).collect(Collectors.toList());
+            return String.join(spiteChar, strStr);
+        }
+    }
+ 
+    /**
+     * 导出转化
+     * @param value               当前值
+     * @param contentProperty     当前单元格属性
+     * @param globalConfiguration -
+     */
+    @Override
+    public WriteCellData<?> convertToExcelData(Object value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        Field field = contentProperty.getField();
+        EnumFiledConvert enumFiledConvert = field.getAnnotation(EnumFiledConvert.class);
+        if (enumFiledConvert == null) {
+            return new WriteCellData<>();
+        }
+        // 解析枚举字符串
+        String enumStr = enumFiledConvert.enumMap();
+        getEnumMap(enumStr, false);
+        // 是否为单选
+        boolean single = enumFiledConvert.single();
+        // 如果是单选,默认Java属性为integer
+        if (single) {
+            return new WriteCellData<>(enumMap.getOrDefault(String.valueOf(value), ""));
+        } else {
+            // 多选分隔符
+            String spiteChar = enumFiledConvert.spiteChar();
+            // 多选枚举,默认Java属性为字符串,格式为 key1,key2,key3
+            List<String> strStr = Arrays.stream(String.valueOf(value).split(spiteChar)).map(s -> String.valueOf(enumMap.get(s))).collect(Collectors.toList());
+            String str = String.join(spiteChar, strStr);
+            return new WriteCellData<>(str);
+        }
+    }
+ 
+    /**
+     * 根据注解配置的枚举映射字符串进行解析到map中
+     * @param readOrWrite 读excel 、 写excel
+     */
+    private void getEnumMap(String mapStr, boolean readOrWrite) {
+        String[] enumS = mapStr.split(",");
+        for (String anEnum : enumS) {
+            String[] data = anEnum.split("-");
+            if (readOrWrite) {
+                // 读excel excel中的数据都是value,转换成key
+                enumMap.put(data[1], data[0]);
+            } else {
+                // 写excel  Java中的数据都是key,转换成value
+                enumMap.put(data[0], data[1]);
+            }
+        }
+    }
+}

+ 1 - 5
kxs-system/kxs-system-api/pom.xml

@@ -24,11 +24,7 @@
             <groupId>com.kxs</groupId>
             <groupId>com.kxs</groupId>
             <artifactId>kxs-common-core</artifactId>
             <artifactId>kxs-common-core</artifactId>
         </dependency>
         </dependency>
-        <!-- excel 导入导出 https://github.com/sky-mesh/excel-spring-boot-starter -->
-        <dependency>
-            <groupId>com.pig4cloud.excel</groupId>
-            <artifactId>excel-spring-boot-starter</artifactId>
-        </dependency>
+
         <!--mybatis 依赖-->
         <!--mybatis 依赖-->
         <dependency>
         <dependency>
             <groupId>com.kxs</groupId>
             <groupId>com.kxs</groupId>

+ 8 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/model/KxsCampUser.java

@@ -5,6 +5,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -39,6 +40,7 @@ public class KxsCampUser extends Model<KxsCampUser> implements Serializable {
      */
      */
     @TableField(fill = FieldFill.INSERT)
     @TableField(fill = FieldFill.INSERT)
     @Schema(description = "新增时间")
     @Schema(description = "新增时间")
+    @ExcelProperty(value = "加入时间")
     private LocalDateTime createTime;
     private LocalDateTime createTime;
 
 
 
 
@@ -82,6 +84,7 @@ public class KxsCampUser extends Model<KxsCampUser> implements Serializable {
      * 用户姓名
      * 用户姓名
      */
      */
     @Schema(description = "用户姓名")
     @Schema(description = "用户姓名")
+    @ExcelProperty(value = "创客姓名")
     private String username;
     private String username;
 
 
 
 
@@ -89,6 +92,7 @@ public class KxsCampUser extends Model<KxsCampUser> implements Serializable {
      * 创客编号
      * 创客编号
      */
      */
     @Schema(description = "创客编号")
     @Schema(description = "创客编号")
+    @ExcelProperty(value = "创客编号")
     private String userCode;
     private String userCode;
 
 
 
 
@@ -96,6 +100,7 @@ public class KxsCampUser extends Model<KxsCampUser> implements Serializable {
      * 团队开机总数
      * 团队开机总数
      */
      */
     @Schema(description = "团队开机总数")
     @Schema(description = "团队开机总数")
+    @ExcelProperty(value = "开机总数")
     private Integer teamOpenNum;
     private Integer teamOpenNum;
 
 
 
 
@@ -103,12 +108,14 @@ public class KxsCampUser extends Model<KxsCampUser> implements Serializable {
      * 团队兑换券下单数量
      * 团队兑换券下单数量
      */
      */
     @Schema(description = "团队兑换券下单数量")
     @Schema(description = "团队兑换券下单数量")
+    @ExcelProperty(value = "兑换券下单数")
     private Integer teamOrderNum;
     private Integer teamOrderNum;
 
 
     /**
     /**
      * 团队大小盟主下单数量
      * 团队大小盟主下单数量
      */
      */
     @Schema(description = "团队大小盟主下单数量")
     @Schema(description = "团队大小盟主下单数量")
+    @ExcelProperty(value = "大小盟主下单数量")
     private Integer teamLeaderNum;
     private Integer teamLeaderNum;
     
     
 
 
@@ -148,6 +155,7 @@ public class KxsCampUser extends Model<KxsCampUser> implements Serializable {
      * 分组ID
      * 分组ID
      */
      */
     @Schema(description = "分组ID")
     @Schema(description = "分组ID")
+    @ExcelProperty(value = "分组ID")
     private String groupId;
     private String groupId;
 
 
 
 

+ 15 - 3
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/admin/camp/CampBonusLogVO.java

@@ -1,13 +1,14 @@
 package com.kxs.system.api.vo.admin.camp;
 package com.kxs.system.api.vo.admin.camp;
 
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.kxs.common.core.annotation.EnumFiledConvert;
+import com.kxs.common.core.converter.EasyExcelConvert;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 
 import java.io.Serial;
 import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
@@ -37,12 +38,14 @@ public class CampBonusLogVO implements Serializable {
      */
      */
     @TableField(fill = FieldFill.INSERT)
     @TableField(fill = FieldFill.INSERT)
     @Schema(description = "新增时间")
     @Schema(description = "新增时间")
+    @ExcelProperty("新增时间")
     private LocalDateTime createTime;
     private LocalDateTime createTime;
 
 
     /**
     /**
      * 统计的数量
      * 统计的数量
      */
      */
     @Schema(description = "统计的数量")
     @Schema(description = "统计的数量")
+    @ExcelProperty(value = "数量", index = 7)
     private Integer sourceNum;
     private Integer sourceNum;
 
 
 
 
@@ -57,6 +60,7 @@ public class CampBonusLogVO implements Serializable {
      * 备注
      * 备注
      */
      */
     @Schema(description = "备注")
     @Schema(description = "备注")
+    @ExcelProperty("来源")
     private String remark;
     private String remark;
 
 
 
 
@@ -71,43 +75,51 @@ public class CampBonusLogVO implements Serializable {
      * 来源创客姓名
      * 来源创客姓名
      */
      */
     @Schema(description = "来源创客姓名")
     @Schema(description = "来源创客姓名")
+    @ExcelProperty(value = "来源创客姓名", index = 5)
     private String sourceName;
     private String sourceName;
 
 
     /**
     /**
      * 来源创客编号
      * 来源创客编号
      */
      */
     @Schema(description = "来源创客编号")
     @Schema(description = "来源创客编号")
+    @ExcelProperty(value = "来源创客编号", index = 6)
     private String sourceCode;
     private String sourceCode;
 
 
     /**
     /**
      * 组 ID
      * 组 ID
      */
      */
     @Schema(description = "组 ID")
     @Schema(description = "组 ID")
+    @ExcelProperty(value = "分组编号", index = 4)
     private String groupId;
     private String groupId;
 
 
 
 
     /**
     /**
-     * 来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6
+     * 来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8
      */
      */
     @Schema(description = "来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8")
     @Schema(description = "来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8")
+    @ExcelProperty(value = "来源类型", index = 3,converter = EasyExcelConvert.class)
+    @EnumFiledConvert(enumMap = "0-电签券,1-大机券,2-组合包,3-小盟主,4-大盟主,5-pos开机,6-广电卡激活,7-来客吧激活,8-大小盟主兑换券",single = false)
     private Integer sourceType;
     private Integer sourceType;
 
 
     /**
     /**
      * 训练营用户姓名
      * 训练营用户姓名
      */
      */
     @Schema(description = "训练营用户姓名")
     @Schema(description = "训练营用户姓名")
+    @ExcelProperty(value = "参与创客姓名", index = 1)
     private String username;
     private String username;
 
 
     /**
     /**
      * 训练营用户编号
      * 训练营用户编号
      */
      */
     @Schema(description = "训练营用户编号")
     @Schema(description = "训练营用户编号")
+    @ExcelProperty(value = "参与创客编号", index = 2)
     private String userCode;
     private String userCode;
 
 
     /**
     /**
      * 训练营标题
      * 训练营标题
      */
      */
     @Schema(description = "训练营标题")
     @Schema(description = "训练营标题")
+    @ExcelProperty(value = "营训活动", index = 0)
     private String title;
     private String title;
 
 
 
 

+ 2 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/admin/camp/SysCampUserPageVO.java

@@ -1,5 +1,6 @@
 package com.kxs.system.api.vo.admin.camp;
 package com.kxs.system.api.vo.admin.camp;
 
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.kxs.system.api.model.KxsCampUser;
 import com.kxs.system.api.model.KxsCampUser;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
@@ -19,6 +20,7 @@ public class SysCampUserPageVO extends KxsCampUser {
 	/**
 	/**
 	 * 组名称
 	 * 组名称
 	 */
 	 */
+	@ExcelProperty("分组名称")
 	private String groupName;
 	private String groupName;
 
 
 
 

+ 38 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/constant/enums/CampSourceTypeEnum.java

@@ -0,0 +1,38 @@
+package com.kxs.system.biz.constant.enums;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+
+/**
+ * 训练营统计类别枚举
+ *
+ * @author 没秃顶的码农
+ * @date 2024-01-02
+ */
+@Getter
+@RequiredArgsConstructor
+public enum CampSourceTypeEnum {
+
+
+    S_DQ(0, "电签券"),
+    S_DJ(1, "大机券"),
+    S_ZH(2, "组合包"),
+    S_XMZ(3, "小盟主"),
+    S_DMZ(4, "大盟主"),
+    S_POS(5, "pos开机"),
+    S_GD(6, "广电卡激活"),
+    S_LKB(7, "来客吧激活"),
+    S_MZQ(8, "大小盟主兑换券");
+
+
+    /**
+     * 类型
+     */
+    private final Integer type;
+
+    /**
+     * 描述
+     */
+    private final String description;
+}

+ 2 - 2
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysCampController.java

@@ -80,7 +80,7 @@ public class SysCampController {
      * @param param 查询实体
      * @param param 查询实体
      * @return 训练营-列表
      * @return 训练营-列表
      */
      */
-    @ResponseExcel
+    @ResponseExcel(name = "分组参与创客列表", include = { "groupName","groupId", "username","userCode","createTime","teamOpenNum","teamOrderNum","teamLeaderNum"})
     @GetMapping("/exportGroupUser")
     @GetMapping("/exportGroupUser")
 //    @PreAuthorize("@pms.hasPermission('sys_camp_user_export')")
 //    @PreAuthorize("@pms.hasPermission('sys_camp_user_export')")
     public List<SysCampUserPageVO> exportGroupUser(@ParameterObject KxsCampUser param) {
     public List<SysCampUserPageVO> exportGroupUser(@ParameterObject KxsCampUser param) {
@@ -269,7 +269,7 @@ public class SysCampController {
      * @param param 查询实体
      * @param param 查询实体
      * @return 训练营-扣除记录
      * @return 训练营-扣除记录
      */
      */
-    @ResponseExcel
+    @ResponseExcel(name = "训练营统计明细", exclude = {"id", "kind", "sourceId"})
     @GetMapping("/exportLog")
     @GetMapping("/exportLog")
 //    @PreAuthorize("@pms.hasPermission('sys_camp_change_list')")
 //    @PreAuthorize("@pms.hasPermission('sys_camp_change_list')")
     public List<CampBonusLogVO> exportLog(@Valid @ParameterObject CampPageLogDTO param) {
     public List<CampBonusLogVO> exportLog(@Valid @ParameterObject CampPageLogDTO param) {

+ 5 - 1
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampGroupServiceImpl.java

@@ -37,7 +37,11 @@ public class KxsCampGroupServiceImpl extends ServiceImpl<KxsCampGroupMapper, Kxs
         KxsCamp camp = kxsCampMapper.selectById(param.getCampId());
         KxsCamp camp = kxsCampMapper.selectById(param.getCampId());
         Optional.ofNullable(camp).orElseThrow(()-> new RuntimeException("训练营不存在"));
         Optional.ofNullable(camp).orElseThrow(()-> new RuntimeException("训练营不存在"));
         if(Objects.equals(camp.getStatus(), CampStatusEnum.STATUS_END.getType())){
         if(Objects.equals(camp.getStatus(), CampStatusEnum.STATUS_END.getType())){
-            throw new RuntimeException("训练营已结束");
+            throw new GlobalCustomerException("训练营已结束");
+        }
+        KxsCampGroup group = getOne(Wrappers.<KxsCampGroup>lambdaQuery().eq(KxsCampGroup::getGroupId, param.getGroupId()));
+        if(group != null){
+            throw new GlobalCustomerException("分组已存在");
         }
         }
 
 
         return save(param);
         return save(param);

+ 10 - 9
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampServiceImpl.java

@@ -26,6 +26,7 @@ import com.kxs.system.api.model.KxsCampUser;
 import com.kxs.system.api.vo.admin.camp.CampUserExcelVO;
 import com.kxs.system.api.vo.admin.camp.CampUserExcelVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampGetByIdVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampGetByIdVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
+import com.kxs.system.biz.constant.enums.CampSourceTypeEnum;
 import com.kxs.system.biz.constant.enums.CampStatusEnum;
 import com.kxs.system.biz.constant.enums.CampStatusEnum;
 import com.kxs.system.biz.constant.enums.SysErrorTypeEnum;
 import com.kxs.system.biz.constant.enums.SysErrorTypeEnum;
 import com.kxs.system.biz.mapper.KxsCampMapper;
 import com.kxs.system.biz.mapper.KxsCampMapper;
@@ -222,7 +223,7 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
             kxsCampBonusLog.setSourceNum(1);
             kxsCampBonusLog.setSourceNum(1);
             kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
             kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
             //27|39 大盟主下单和续费
             //27|39 大盟主下单和续费
-            kxsCampBonusLog.setSourceType(param.getProductId() == 27 || param.getProductId() == 39 ? 4 : 3);
+            kxsCampBonusLog.setSourceType(param.getProductId() == 27 || param.getProductId() == 39 ? CampSourceTypeEnum.S_DMZ.getType() : CampSourceTypeEnum.S_XMZ.getType());
 
 
 
 
             campBonusLogService.save(kxsCampBonusLog);
             campBonusLogService.save(kxsCampBonusLog);
@@ -256,11 +257,11 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
             kxsCampBonusLog.setSourceNum(1);
             kxsCampBonusLog.setSourceNum(1);
             kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
             kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
             if (param.getProductId() == 10) {
             if (param.getProductId() == 10) {
-                kxsCampBonusLog.setSourceType(0); //电签券
+                kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_DQ.getType()); //电签券
             } else if (param.getProductId() == 11) {
             } else if (param.getProductId() == 11) {
-                kxsCampBonusLog.setSourceType(1); //大机券
+                kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_DJ.getType()); //大机券
             } else if(param.getProductId() != 10000){
             } else if(param.getProductId() != 10000){
-                kxsCampBonusLog.setSourceType(2); //组合包
+                kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_ZH.getType()); //组合包
             }
             }
             //盟主兑换券特殊处理,总共不能超过5组进入训练营的统计
             //盟主兑换券特殊处理,总共不能超过5组进入训练营的统计
             if(param.getProductId() == 10000){
             if(param.getProductId() == 10000){
@@ -268,13 +269,13 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
                         .select("SUM(source_num)")
                         .select("SUM(source_num)")
                         .eq("camp_id", kxsCamp.getId())
                         .eq("camp_id", kxsCamp.getId())
                         .eq("source_id", user.getId())
                         .eq("source_id", user.getId())
-                        .eq("source_type", 8));
+                        .eq("source_type", CampSourceTypeEnum.S_MZQ.getType()));
                 if(count >= 5){
                 if(count >= 5){
                     throw new GlobalCustomerException("用户"+user.getId()+"盟主兑换券已经兑换过5组,无法继续加入统计");
                     throw new GlobalCustomerException("用户"+user.getId()+"盟主兑换券已经兑换过5组,无法继续加入统计");
                 }
                 }
                 long subCount = 5 - count;
                 long subCount = 5 - count;
                 kxsCampBonusLog.setSourceNum(param.getBuyCount() > subCount ? (int) subCount : param.getBuyCount());
                 kxsCampBonusLog.setSourceNum(param.getBuyCount() > subCount ? (int) subCount : param.getBuyCount());
-                kxsCampBonusLog.setSourceType(8);
+                kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_MZQ.getType());
                 kxsCampBonusLog.setRemark("盟主兑换");
                 kxsCampBonusLog.setRemark("盟主兑换");
             }
             }
             campBonusLogService.save(kxsCampBonusLog);
             campBonusLogService.save(kxsCampBonusLog);
@@ -335,9 +336,9 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
         kxsCampBonusLog.setSourceNum(1);
         kxsCampBonusLog.setSourceNum(1);
         kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
         kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
         switch (param.getActType()) {
         switch (param.getActType()) {
-            case 1 -> kxsCampBonusLog.setSourceType(5);
-            case 2 -> kxsCampBonusLog.setSourceType(6);
-            case 3, 4 -> kxsCampBonusLog.setSourceType(7);
+            case 1 -> kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_POS.getType());
+            case 2 -> kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_GD.getType());
+            case 3, 4 -> kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_LKB.getType());
         }
         }
         campBonusLogService.save(kxsCampBonusLog);
         campBonusLogService.save(kxsCampBonusLog);
         log.info("用户{}参加训练营{},开机数+1", param.getUserId(), kxsCamp.getId());
         log.info("用户{}参加训练营{},开机数+1", param.getUserId(), kxsCamp.getId());