Browse Source

接口修改

pengcheng 4 weeks ago
parent
commit
ae68fe0e4a

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/clock/ActivityController.java

@@ -159,6 +159,7 @@ public class ActivityController extends BaseController {
             item.loadAgentList();
             item.loadProductList();
             item.loadImage();
+            item.convert();
         });
         ExcelUtil.exportExcel(list, "活动信息", ActivityVo.class, response);
     }

+ 61 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/converter/BigDecimalConvert.java

@@ -0,0 +1,61 @@
+package com.ruoyi.common.utils.converter;
+
+import cn.hutool.core.util.StrUtil;
+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 java.math.BigDecimal;
+
+/**
+ * @Package_Name
+ * @Author Leslie Lee
+ * @TIME
+ * @Version
+ */
+public class BigDecimalConvert implements Converter<BigDecimal> {
+    @Override
+    public Class<?> supportJavaTypeKey() {
+        return Converter.super.supportJavaTypeKey();
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return Converter.super.supportExcelTypeKey();
+    }
+
+    @Override
+    public BigDecimal convertToJavaData(ReadConverterContext<?> context) throws Exception {
+        return Converter.super.convertToJavaData(context);
+    }
+
+    @Override
+    public WriteCellData<?> convertToExcelData(WriteConverterContext<BigDecimal> context) throws Exception {
+        String val = context.getValue().toString();
+        if (!StrUtil.isEmpty(val)) {
+            if (!val.contains(".")) {//没有小数点 加 . 并补零
+                val = val + ".00";
+            } else if (val.indexOf(".") == val.length() - 2) {//一位小数 补零
+                val = val + "0";
+            }
+            int decimalIndex = val.indexOf('.');// 假设val为 19569.12
+            String integerPart = val.substring(0, decimalIndex);// 19569
+            String decimalPart = val.substring(decimalIndex);// .12
+            StringBuilder formattedNum = new StringBuilder();
+            int count = 0;
+            for (int i = integerPart.length() - 1; i >= 0; i--) {// 循环前部分加入千分位
+                formattedNum.insert(0, integerPart.charAt(i));
+                count++;
+//                if (count % 3 == 0 && i != 0) {// 三个字符一加
+//                    formattedNum.insert(0, ",");
+//                }
+            }
+            formattedNum.append(decimalPart);
+            return new WriteCellData<>(formattedNum.toString());
+
+        }
+        return new WriteCellData<>(val);
+    }
+}

+ 31 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/converter/DateConverter.java

@@ -0,0 +1,31 @@
+package com.ruoyi.common.utils.converter;
+
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.WriteConverterContext;
+import com.alibaba.excel.metadata.data.WriteCellData;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class DateConverter implements Converter<Date> {
+    private static  final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd";
+
+
+    @Override
+    public Class<Date> supportJavaTypeKey() {
+        return Date.class;
+    }
+
+
+    @Override
+    public WriteCellData<String> convertToExcelData(WriteConverterContext<Date> context) throws Exception {
+        Date date = context.getValue();
+        if (date == null) {
+            return null;
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_YYYY_MM_DD);
+        return new WriteCellData<>(sdf.format(date));
+    }
+
+}

+ 31 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/converter/DateMonthConverter.java

@@ -0,0 +1,31 @@
+package com.ruoyi.common.utils.converter;
+
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.WriteConverterContext;
+import com.alibaba.excel.metadata.data.WriteCellData;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class DateMonthConverter implements Converter<Date> {
+    private static  final String PATTERN_YYYY_MM = "yyyy-MM";
+
+
+    @Override
+    public Class<Date> supportJavaTypeKey() {
+        return Date.class;
+    }
+
+
+    @Override
+    public WriteCellData<String> convertToExcelData(WriteConverterContext<Date> context) throws Exception {
+        Date date = context.getValue();
+        if (date == null) {
+            return null;
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_YYYY_MM);
+        return new WriteCellData<>(sdf.format(date));
+    }
+
+}

+ 34 - 8
ruoyi-system/src/main/java/com/ruoyi/clock/domain/vo/ActivityVo.java

@@ -9,6 +9,9 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.ruoyi.clock.domain.Employee;
 import com.ruoyi.clock.domain.bo.AgentBo;
+import com.ruoyi.clock.enums.ActivityStatusEnum;
+import com.ruoyi.clock.enums.ActivityTypeEnum;
+import com.ruoyi.clock.enums.ActivityUnitEnum;
 import com.ruoyi.clock.service.IActivityAgentService;
 import com.ruoyi.clock.service.IActivityProductService;
 import com.ruoyi.clock.service.IAgentService;
@@ -24,6 +27,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
+import com.ruoyi.common.utils.converter.DateConverter;
+
 
 import java.util.Date;
 import java.util.List;
@@ -59,20 +64,24 @@ public class ActivityVo extends BaseEntity {
     /**
      * 活动类型 0晒单打卡 1销售pk
      */
-    @ExcelProperty(value = "活动类型 0晒单打卡 1销售pk")
     @ApiModelProperty("活动类型 0晒单打卡 1销售pk")
     private Integer type;
 
+    @ExcelProperty(value = "活动类型")
+    @ApiModelProperty("活动类型 0晒单打卡 1销售pk")
+    @ExcelDictFormat(readConverterExp = "0=晒单打卡,1=销售pk")
+    private String typeStr;
+
     @ApiModelProperty(value = "代理商信息", required = true)
     private List<AgentVo> agentList;
 
-    @ExcelProperty(value = "代理商名称")
+    @ExcelProperty(value = "代理商")
     private String agentName;
 
     /**
      * 开始日期
      */
-    @ExcelProperty(value = "开始日期")
+    @ExcelProperty(value = "开始日期",converter = DateConverter.class)
     @ApiModelProperty("开始日期")
     @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -81,7 +90,7 @@ public class ActivityVo extends BaseEntity {
     /**
      * 结束日期
      */
-    @ExcelProperty(value = "结束日期")
+    @ExcelProperty(value = "结束日期",converter = DateConverter.class)
     @ApiModelProperty("结束日期")
     @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -90,7 +99,7 @@ public class ActivityVo extends BaseEntity {
     @ApiModelProperty(value = "代理商信息", required = true)
     private List<ProductVo> productList;
 
-    @ExcelProperty(value = "产品信息")
+    @ExcelProperty(value = "产品名称")
     private String productName;
 
     /**
@@ -101,16 +110,17 @@ public class ActivityVo extends BaseEntity {
     @FilePathValue
     private List<String> image;
 
-    @ExcelProperty(value = "图片信息")
     private String imageUrl;
 
     /**
      * 单位 0 盒 1 支
      */
-    @ExcelProperty(value = "单位 0 盒 1 支")
     @ApiModelProperty("单位 0 盒 1 支")
     private Integer unit;
 
+    @ExcelProperty(value = "单位")
+    private String unitStr;
+
     /**
      * 活动规则
      */
@@ -128,10 +138,12 @@ public class ActivityVo extends BaseEntity {
     /**
      * 活动状态 0正常 1停用
      */
-    @ExcelProperty(value = "活动状态 0正常 1停用")
     @ApiModelProperty("活动状态 0正常 1停用")
     private Integer status;
 
+    @ExcelProperty(value = "活动状态")
+    private String statusStr;
+
     @ApiModelProperty("打卡次数")
     private Long clockCount = 0l;
 
@@ -183,4 +195,18 @@ public class ActivityVo extends BaseEntity {
         return this.clockCount;
     }
 
+    public void convert(){
+        if (ObjectUtil.isNotNull(this.type)){
+            ActivityTypeEnum activityTypeEnum =  ActivityTypeEnum.getByCode(this.type,ActivityTypeEnum.values());
+            this.typeStr = activityTypeEnum.getMsg();
+        }
+        if (ObjectUtil.isNotNull(this.unit)){
+            ActivityUnitEnum activityUnitEnum =  ActivityUnitEnum.getByCode(this.type,ActivityUnitEnum.values());
+            this.unitStr = activityUnitEnum.getMsg();
+        }
+        if (ObjectUtil.isNotNull(this.status)){
+            ActivityStatusEnum activityStatusEnum =  ActivityStatusEnum.getByCode(this.type,ActivityStatusEnum.values());
+            this.statusStr = activityStatusEnum.getMsg();
+        }
+    }
 }

+ 52 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/enums/ActivityUnitEnum.java

@@ -0,0 +1,52 @@
+package com.ruoyi.clock.enums;
+
+import com.ruoyi.common.enums.IIntegerEnum;
+
+import java.util.Objects;
+
+/**
+ * @author 单位
+ */
+public enum ActivityUnitEnum implements IIntegerEnum<Integer> {
+
+    BOX(0, "盒"),
+    BRANCH(1, "支"),
+
+    ;
+
+    private Integer code;
+    private String msg;
+
+    ActivityUnitEnum(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    @Override
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    @Override
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public static ActivityUnitEnum getByCode(int code, ActivityUnitEnum[] values) {
+        for (ActivityUnitEnum value : values) {
+            if (Objects.equals(code, value.getCode())) {
+                return value;
+            }
+        }
+        return null;
+    }
+
+}