Parcourir la source

feat: "esServer..."

wangzeyu@tom.com il y a 2 ans
Parent
commit
1c03b6a9a0

+ 6 - 0
src/main/java/com/szwl/controller/EsController.java

@@ -1,5 +1,11 @@
 package com.szwl.controller;
 
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/es")
 public class EsController {
 
 }

+ 21 - 0
src/main/java/com/szwl/controller/TOrderAbroadController.java

@@ -0,0 +1,21 @@
+package com.szwl.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Author
+ * @since 2023-07-28
+ */
+@RestController
+@RequestMapping("/tOrderAbroad")
+public class TOrderAbroadController {
+
+}
+

+ 16 - 0
src/main/java/com/szwl/mapper/TOrderAbroadMapper.java

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.TOrderAbroad;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Author
+ * @since 2023-07-28
+ */
+public interface TOrderAbroadMapper extends BaseMapper<TOrderAbroad> {
+
+}

Fichier diff supprimé car celui-ci est trop grand
+ 53 - 0
src/main/java/com/szwl/mapper/xml/TOrderAbroadMapper.xml


+ 27 - 0
src/main/java/com/szwl/model/bean/ChartBean.java

@@ -0,0 +1,27 @@
+package com.szwl.model.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class ChartBean {
+
+    @ApiModelProperty(value="统计类目")
+    private String categorie;
+
+    @ApiModelProperty(value="销量")
+//    private Integer saleNum;
+    private Float saleNum;
+
+    @ApiModelProperty(value="销售额")
+//    private Integer salePrice;
+    private Float salePrice;
+}

+ 58 - 0
src/main/java/com/szwl/model/bean/ChartColumn.java

@@ -0,0 +1,58 @@
+package com.szwl.model.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
+
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class ChartColumn {
+    @ApiModelProperty(value="统计类目")
+    private ArrayList<String> categories;
+    @ApiModelProperty(value="统计类目值")
+    private ArrayList<ChartSerie> series;
+
+    public ChartColumn(List<ChartBean>  list){
+        ArrayList<String> categories = new ArrayList<>();
+//        ArrayList<Integer> salePriceList = new ArrayList<>();
+        ArrayList<Float> salePriceList = new ArrayList<>();
+//        ArrayList<Integer> saleNumList = new ArrayList<>();
+        ArrayList<Float> saleNumList = new ArrayList<>();
+
+        for (ChartBean bean :list) {
+            categories.add(bean.getCategorie());
+            saleNumList.add(bean.getSaleNum());
+            salePriceList.add(Float.valueOf(format1(bean.getSalePrice())));
+        }
+
+        this.setCategories(categories);
+        ChartSerie chartSerie = new ChartSerie();
+        chartSerie.setName("销售个数");
+        chartSerie.setData(saleNumList);
+
+        ChartSerie chartSerie2 = new ChartSerie();
+        chartSerie2.setName("销售额");
+        chartSerie2.setData(salePriceList);
+
+        ArrayList<ChartSerie> series = new ArrayList<>();
+        series.add(chartSerie);
+        series.add(chartSerie2);
+        this.setSeries(series);
+    }
+    public static String format1(Float value){
+        BigDecimal bd = new BigDecimal(value);//创建一个bd对象,将要转换的值value传入构造函数
+        bd = bd.setScale(2, RoundingMode.HALF_UP);//调用setScale方法进行数据格式化,保留两位小数,采用四舍五入规则
+        return bd.toString(); //返回bd对象的值(转化为string形式)
+    }
+}

+ 25 - 0
src/main/java/com/szwl/model/bean/ChartSerie.java

@@ -0,0 +1,25 @@
+package com.szwl.model.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.ArrayList;
+
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class ChartSerie {
+
+    @ApiModelProperty(value="类别名")
+    private String name;
+
+    @ApiModelProperty(value="数量")
+//    private ArrayList<Integer> data;
+    private ArrayList<Float> data;
+}

+ 18 - 0
src/main/java/com/szwl/model/dto/TOrderAbroadParam.java

@@ -0,0 +1,18 @@
+package com.szwl.model.dto;
+
+import com.szwl.model.entity.TOrderAbroad;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@SuppressWarnings("serial")
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class TOrderAbroadParam extends TOrderAbroad {
+
+}

+ 146 - 0
src/main/java/com/szwl/model/entity/TOrderAbroad.java

@@ -0,0 +1,146 @@
+package com.szwl.model.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Author
+ * @since 2023-07-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TOrderAbroad对象", description="")
+public class TOrderAbroad implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "订单创建时间")
+    private Date createDate;
+
+    @ApiModelProperty(value = "订单修改时间")
+    private Date modifyDate;
+
+    @ApiModelProperty(value = "商户id,用户判断权限")
+    private Long adminId;
+
+    @ApiModelProperty(value = "平台分账")
+    private BigDecimal adminProportion;
+
+    @ApiModelProperty(value = "一级分销商户id")
+    private Long agencyId;
+
+    @ApiModelProperty(value = "分账比例,中介分账")
+    private BigDecimal agencyProportion;
+
+    @ApiModelProperty(value = "分销逻辑")
+    private String altInfo;
+
+    @ApiModelProperty(value = "设备编号")
+    private String clientId;
+
+    @ApiModelProperty(value = "设备id")
+    private Long equipmentId;
+
+    @ApiModelProperty(value = "支付方式")
+    private String frpCode;
+
+    @ApiModelProperty(value = "二级分销商户id")
+    private Long merchantId;
+
+    @ApiModelProperty(value = "二级分销商分账比例")
+    private BigDecimal merchantProportion;
+
+    @ApiModelProperty(value = "支付时间")
+    private Date payDate;
+
+    @ApiModelProperty(value = "三级分销商户id")
+    private Long personageId;
+
+    @ApiModelProperty(value = "三级分销商分账比例")
+    private BigDecimal personageProportion;
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "商品id")
+    private Long productId;
+
+    @ApiModelProperty(value = "商品数量,每笔订单中有几个商品")
+    private Integer productNum;
+
+    @ApiModelProperty(value = "商品名称,烈焰红唇")
+    private String productName;
+
+    @ApiModelProperty(value = "商品编号,A06")
+    private String productNo;
+
+    @ApiModelProperty(value = "退款时间")
+    private Date refundDate;
+
+    @ApiModelProperty(value = "商品描述,{xxx,1个;xxx,2个}")
+    private String productDesc;
+
+    @ApiModelProperty(value = "支付状态, 0: 未支付, 1: 已付款, 2: 退款中, 3: 已退款")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "分账方类型,0:分账方2个,1:分账方3个,3:分账方4个,3:分账方超4个;")
+    private Integer proportionType;
+
+    @ApiModelProperty(value = "支付流水号")
+    private String trxNo;
+
+    @ApiModelProperty(value = "退款编号rfd")
+    private String refundId;
+
+    @ApiModelProperty(value = "是否发送es")
+    private String es;
+
+    @ApiModelProperty(value = "退款金额")
+    private BigDecimal refundAmount;
+
+    @ApiModelProperty(value = "标记")
+    private String note;
+
+    @ApiModelProperty(value = "分账详情,当分账超过4方时,这个字段才启用")
+    private String proportionDesc;
+
+    @ApiModelProperty(value = "营销金额")
+    private BigDecimal marketingAmount;
+
+    @ApiModelProperty(value = "退款营销金额")
+    private BigDecimal refundMarketingAmount;
+
+    @ApiModelProperty(value = "订单状态;0:排队中,1:正在制作,2:已制作")
+    private String orderStatus;
+
+    @ApiModelProperty(value = "商品数量")
+    private Integer productNumber;
+
+    @ApiModelProperty(value = "货币")
+    private String currency;
+
+    @ApiModelProperty(value = "订单号,商户唯一订单id,类似于order的sn")
+    private String merchantOrderId;
+
+    @ApiModelProperty(value = "请求编号,商户唯一支付请求编号id")
+    private String requestId;
+
+    @ApiModelProperty(value = "交易编号")
+    private String paymentIntentId;
+
+
+}

+ 55 - 0
src/main/java/com/szwl/model/query/StatisticsParam.java

@@ -0,0 +1,55 @@
+package com.szwl.model.query;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class StatisticsParam {
+    @ApiModelProperty(value="商家id")
+    private String adminId;
+
+    @ApiModelProperty(value="设备id")
+    private String equipmentId;
+    @ApiModelProperty(value="开关炉头,开机为1,关机为0")
+    private String eqeStatus;
+    @ApiModelProperty(value="代理商id")
+    private Long agencyId;
+
+    @ApiModelProperty(value="经销商id")
+    private Long merchantId;
+
+    @ApiModelProperty(value="地址id")
+    private List<Long> areaIds;
+
+    @ApiModelProperty(value="开始日期")
+    private String startDate;
+
+    @ApiModelProperty(value="结束日期")
+    private String endDate;
+
+    @ApiModelProperty(value="统计类型")
+    private String chartType;
+
+    @ApiModelProperty(value="支付类型")
+    private String payType;
+
+    @ApiModelProperty(value="统计类型")
+    private String changeType;
+
+    @ApiModelProperty(value="是否外国")
+    private String ifForeign = "0";
+
+    @ApiModelProperty(value="第几次查询")
+    private String test = "1";
+}

+ 0 - 4
src/main/java/com/szwl/service/EsService.java

@@ -1,4 +0,0 @@
-package com.szwl.service;
-
-public interface EsService {
-}

+ 34 - 0
src/main/java/com/szwl/service/IEsService.java

@@ -0,0 +1,34 @@
+package com.szwl.service;
+
+import cn.com.crbank.ommo.esclient.EsBaseService;
+import com.szwl.model.bean.ChartColumn;
+import com.szwl.model.dto.TOrderAbroadParam;
+import com.szwl.model.entity.TOrderAbroad;
+import com.szwl.model.query.StatisticsParam;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.ParseException;
+
+@Service
+public interface IEsService {
+
+    void updateEsByDate(String startTime, String endTime);
+
+    BoolQueryBuilder getStatisticsParam2QueryBuilder(StatisticsParam param);
+
+    ChartColumn getStatistics(StatisticsParam param);
+
+    ChartColumn getStatistics(StatisticsParam param, String format, DateHistogramInterval interval);
+
+    static String format1(Float value) {
+        BigDecimal bd = new BigDecimal(value);//创建一个bd对象,将要转换的值value传入构造函数
+        bd = bd.setScale(2, RoundingMode.HALF_UP);//调用setScale方法进行数据格式化,保留两位小数,采用四舍五入规则
+        return bd.toString(); //返回bd对象的值(转化为string形式)
+    }
+
+    void tongbuByHour() throws ParseException;
+}

+ 16 - 0
src/main/java/com/szwl/service/TOrderAbroadService.java

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.TOrderAbroad;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Author
+ * @since 2023-07-28
+ */
+public interface TOrderAbroadService extends IService<TOrderAbroad> {
+
+}

+ 0 - 6
src/main/java/com/szwl/service/impl/EsServiceImpl.java

@@ -1,6 +0,0 @@
-package com.szwl.service.impl;
-
-import com.szwl.service.EsService;
-
-public class EsServiceImpl implements EsService {
-}

+ 95 - 0
src/main/java/com/szwl/service/impl/EsTOrderAbroadServiceImpl.java

@@ -0,0 +1,95 @@
+package com.szwl.service.impl;
+
+import cn.com.crbank.ommo.esclient.EsBaseService;
+import com.szwl.model.bean.ChartColumn;
+import com.szwl.model.dto.TOrderAbroadParam;
+import com.szwl.model.entity.TOrderAbroad;
+import com.szwl.model.query.StatisticsParam;
+import com.szwl.service.IEsService;
+import com.szwl.service.TOrderAbroadService;
+import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+
+@Slf4j
+@Service
+public class EsTOrderAbroadServiceImpl extends EsBaseService<TOrderAbroad, TOrderAbroadParam> implements IEsService {
+
+    private static boolean InitEsTableStatus = false; // 是否正常完成 es 初始化
+    public static final int MAX_ROW = 1000;
+
+    TOrderAbroadService tOrderAbroadService;
+
+    public EsTOrderAbroadServiceImpl(TOrderAbroadService tOrderAbroadService) {
+        this.tOrderAbroadService = tOrderAbroadService;
+    }
+
+    @Override
+    public String getTableName() {
+        return null;
+    }
+
+    @Override
+    public TOrderAbroad getInstanceOfEntity() {
+        return null;
+    }
+
+    @Override
+    public void setInitTableStatus(boolean flag) {
+
+    }
+
+    @Override
+    public boolean getInitTableStatus() {
+        return false;
+    }
+
+    @Override
+    public void initTableFun() {
+
+    }
+
+    @Override
+    public String getEntityPrimaryKey(TOrderAbroad tOrderAbroad) {
+        return null;
+    }
+
+    @Override
+    public TOrderAbroad setEntityPrimaryKey(TOrderAbroad tOrderAbroad, String value) {
+        return null;
+    }
+
+
+    /**
+     * 根据时间 重新同步es
+     * @param
+     * @return
+     */
+    @Override
+    public void updateEsByDate(String startTime, String endTime) {
+
+    }
+
+    @Override
+    public BoolQueryBuilder getStatisticsParam2QueryBuilder(StatisticsParam param) {
+        return null;
+    }
+
+    @Override
+    public ChartColumn getStatistics(StatisticsParam param) {
+        return null;
+    }
+
+    @Override
+    public ChartColumn getStatistics(StatisticsParam param, String format, DateHistogramInterval interval) {
+        return null;
+    }
+
+    @Override
+    public void tongbuByHour() throws ParseException {
+
+    }
+}

+ 20 - 0
src/main/java/com/szwl/service/impl/TOrderAbroadServiceImpl.java

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TOrderAbroad;
+import com.szwl.mapper.TOrderAbroadMapper;
+import com.szwl.service.TOrderAbroadService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Author
+ * @since 2023-07-28
+ */
+@Service
+public class TOrderAbroadServiceImpl extends ServiceImpl<TOrderAbroadMapper, TOrderAbroad> implements TOrderAbroadService {
+
+}

+ 75 - 0
src/test/java/com/szwl/AutoGeneratorTests.java

@@ -0,0 +1,75 @@
+package com.szwl;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@Slf4j
+@SpringBootTest
+class AutoGeneratorTests {
+    @Test
+    void contextLoads() {
+        AutoGenerator autoGenerator = new AutoGenerator();
+
+        //获取工程的根目录
+        String projectPath = System.getProperty("user.dir");//得到当前项目的路径
+        //全局配置
+        GlobalConfig globalConfig = new GlobalConfig();
+        globalConfig.setAuthor("Author")
+                .setOutputDir(projectPath + "/src/main/java")//设置输出路径,项目所在路径
+                .setFileOverride(true)//设置文件覆盖
+                .setOpen(false)//是否生成代码后打开本地目录
+                .setSwagger2(true) //实体属性 Swagger2 注解
+                .setIdType(IdType.ASSIGN_ID)//设置主键生成策略
+                .setServiceName("%sService")//service接口的名称
+                .setDateType(DateType.ONLY_DATE)
+                .setBaseResultMap(true)//基本结果集合
+                .setBaseColumnList(true)//设置基本的列
+                .setControllerName("%sController");
+
+        //配置数据源
+        //TODO:配置数据源
+        DataSourceConfig dataSourceConfig = new DataSourceConfig();
+        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver")
+                .setUrl("jdbc:mysql://rm-wz995mu26a1479kz0so.mysql.rds.aliyuncs.com:3306/orderdb-test")
+                .setUsername("root").setPassword("sunzee@020");
+
+        //策略配置
+        //TODO:配置表名
+        StrategyConfig strategyConfig = new StrategyConfig();
+        strategyConfig
+//				.setCapitalMode(true)//设置全局大写命名
+                .setInclude(new String[]{
+                        "t_order_abroad"
+                })//只会生成该表
+                .setEntityLombokModel(true)//实体类生成之后自动添加lombok注解
+                .setNaming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略
+                .setColumnNaming(NamingStrategy.underline_to_camel)//将数据库中带下划线的转成驼峰规则
+                //.setTablePrefix("tbl_")//设置表名前缀
+                .setRestControllerStyle(true)//controller是否使用restful风格
+        ;
+
+        //包名配置
+        PackageConfig packageConfig = new PackageConfig();
+        packageConfig.setParent("com.szwl")
+                .setMapper("mapper")//包路径
+                .setService("service")
+                .setController("controller")
+                .setEntity("model.entity")
+//		.setXml()
+        ;
+
+        autoGenerator.setGlobalConfig(globalConfig).setDataSource(dataSourceConfig)
+                .setStrategy(strategyConfig).setPackageInfo(packageConfig);
+
+        autoGenerator.execute();
+    }
+}

+ 1 - 1
src/test/java/com/szwl/esserver/EsServerApplicationTests.java

@@ -1,4 +1,4 @@
-package com.szwl.esserver;
+package com.szwl;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;