云殇忆 il y a 1 an
Parent
commit
6644312d7a

+ 3 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/OrderController.java

@@ -1,11 +1,13 @@
 package com.ruoyi.demo.controller;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.demo.entity.Order;
 import com.ruoyi.demo.entity.bo.OrderAddBo;
 import com.ruoyi.demo.entity.bo.PlanBo;
 import com.ruoyi.demo.service.OrderService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 @RestController
@@ -25,7 +27,7 @@ public class OrderController {
 
     // 添加订单
     @PostMapping()
-    public R addOrder(@RequestBody OrderAddBo bo){
+    public R addOrder(@RequestBody @Validated(value = {AddGroup.class}) OrderAddBo bo){
         int i = orderService.addOrder(bo);
         if (i == 1)
             return R.ok("添加成功");

+ 3 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/PlanController.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import com.github.pagehelper.PageInfo;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.demo.entity.AddrCategory;
 import com.ruoyi.demo.entity.bo.CallBackBean;
 import com.ruoyi.demo.entity.bo.PlanAddBo;
@@ -13,6 +14,7 @@ import com.ruoyi.demo.service.PlanService;
 import com.ruoyi.demo.utils.StateUtil;
 import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
@@ -104,7 +106,7 @@ public class PlanController {
     }
     // 添加广告推送计划
     @PostMapping()
-    public R addPlan(@RequestBody PlanAddBo bo){
+    public R addPlan(@RequestBody @Validated(value = {AddGroup.class}) PlanAddBo bo){
         int i = planService.addPlan(bo);
         if (i == 1)
             return R.ok("广告添加成功");

+ 3 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/StatisticsController.java

@@ -1,11 +1,13 @@
 package com.ruoyi.demo.controller;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.demo.entity.Statistics;
 import com.ruoyi.demo.entity.bo.PlanBo;
 import com.ruoyi.demo.entity.bo.StatisticsAddBo;
 import com.ruoyi.demo.service.StatisticsService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 @RestController
@@ -37,7 +39,7 @@ public class StatisticsController {
 
     // 添加行为记录
     @PostMapping()
-    public R add(@RequestBody StatisticsAddBo bo){
+    public R add(@RequestBody @Validated(value = {AddGroup.class}) StatisticsAddBo bo){
         int i = statisticsService.add(bo);
         if (i == 1)
             return R.ok("添加成功");

+ 2 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/DlUser.java

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.ruoyi.demo.entity.bo.StatisticsAddBo;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -51,7 +52,7 @@ public class DlUser {
     private int deleted;
 
     public DlUser(){}
-    public DlUser(Statistics s){
+    public DlUser(StatisticsAddBo s){
         this.userId = s.getUserId();
         this.userName = s.getUserName();
         this.userTelephone = s.getUserTelephone();

+ 21 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/Order.java

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.ruoyi.demo.entity.bo.OrderAddBo;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -56,4 +57,24 @@ public class Order {
 
     @TableField("deleted")
     private int deleted;
+
+    public Order (OrderAddBo bo){
+        this.orderId = bo.getOrderId();
+        this.vendorId = bo.getVendorId();
+        this.vendorName = bo.getVendorName();
+        this.goodsId = bo.getGoodsId();
+        this.goodsName = bo.getGoodsName();
+        this.goodsPrice = bo.getGoodsPrice();
+        this.specs = bo.getSpecs();
+        this.totalPrice = bo.getTotalPrice();
+        this.state = bo.getState();
+        this.userId = bo.getUserId();
+        this.userName = bo.getUserName();
+        this.userTelephone = bo.getUserTelephone();
+        this.commercialId = bo.getCommercialId();
+        this.commercialName = bo.getCommercialName();
+        this.appkey = bo.getAppkey();
+        this.appName = bo.getAppName();
+        this.createTime = bo.getCreateTime();
+    }
 }

+ 2 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/Plan.java

@@ -15,6 +15,7 @@ import com.ruoyi.demo.utils.StateUtil;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.time.ZoneId;
 
 @Data
 @TableName("dl_plan")
@@ -100,7 +101,7 @@ public class Plan {
         this.setGoodsPrice(bo.getGoodsPrice());
         this.setGoodsIntroduce(bo.getGoodsIntroduce());
         this.setGoodsClassify(bo.getGoodsClassify());
-        this.setPlanCreateTime(LocalDateTime.now());
+        this.setPlanCreateTime(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
         this.setPlanStartTime(bo.getPlanStartTime());
         this.setPlanEndTime(bo.getPlanEndTime());
         this.setState(StateUtil.NOT_AUDITED);

+ 20 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/Statistics.java

@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.ruoyi.demo.entity.bo.StatisticsAddBo;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -60,4 +61,23 @@ public class Statistics {
 
     @TableField("deleted")
     private int deleted;
+
+    public Statistics (StatisticsAddBo bo){
+        this.planId = bo.getPlanId();
+        this.planName = bo.getPlanName();
+        this.appkey = bo.getAppkey();
+        this.equipmentId = bo.getEquipmentId();
+        this.equipmentCode = bo.getEquipmentCode();
+        this.equipmentName = bo.getEquipmentName();
+        this.addrInfo = bo.getAddrInfo();
+        this.goodsId = bo.getGoodsId();
+        this.goodsName = bo.getGoodsName();
+        this.dealToolCount = bo.getDealToolCount();
+        this.dealToolPrice = bo.getDealToolPrice();
+        this.userId = bo.getUserId();
+        this.userName = bo.getUserName();
+        this.userTelephone = bo.getUserTelephone();
+        this.behavior = bo.getBehavior();
+        this.time = bo.getTime();
+    }
 }

+ 42 - 2
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/bo/OrderAddBo.java

@@ -1,9 +1,49 @@
 package com.ruoyi.demo.entity.bo;
 
-import com.ruoyi.demo.entity.Order;
+import com.ruoyi.common.core.validate.AddGroup;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+import java.time.LocalDateTime;
+
 @Data
-public class OrderAddBo extends Order {
+public class OrderAddBo {
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String orderId;
+
+    @NotBlank(groups = {AddGroup.class},message = "供应商Id不能为空")
+    private String vendorId;
+    @NotBlank(groups = {AddGroup.class},message = "供应商名称不能为空")
+    private String vendorName;
+
+    @NotBlank(groups = {AddGroup.class},message = "商品Id不能为空")
+    private String goodsId;
+    @NotBlank(groups = {AddGroup.class},message = "商品名称不能为空")
+    private String goodsName;
+    @NotBlank(groups = {AddGroup.class},message = "规格不能为空")
+    private String specs;
+    @NotBlank(groups = {AddGroup.class},message = "商品价格不能为空")
+    private Float goodsPrice;
+    @NotBlank(groups = {AddGroup.class},message = "订单总金额不能为空")
+    private Float totalPrice;
+    @NotBlank(groups = {AddGroup.class},message = "交易状态不能为空")
+    private String state;
+    @NotBlank(groups = {AddGroup.class},message = "客户Id不能为空")
+    private String userId;
+    @NotBlank(groups = {AddGroup.class},message = "客户名称不能为空")
+    private String userName;
+    @NotBlank(groups = {AddGroup.class},message = "客户联系方式不能为空")
+    private String userTelephone;
+    @NotBlank(groups = {AddGroup.class},message = "商户Id不能为空")
+    private String commercialId;
+    @NotBlank(groups = {AddGroup.class},message = "商户名称不能为空")
+    private String commercialName;
+    @NotBlank(groups = {AddGroup.class},message = "appkey不能为空")
+    private String appkey;
+    @NotBlank(groups = {AddGroup.class},message = "小程序名称不能为空")
+    private String appName;
+    @NotBlank(groups = {AddGroup.class},message = "订单成交时间不能为空")
+    private LocalDateTime createTime;
+    @NotBlank(groups = {AddGroup.class},message = "签名不能为空")
     private String sign;
 }

+ 18 - 11
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/bo/PlanAddBo.java

@@ -1,43 +1,50 @@
 package com.ruoyi.demo.entity.bo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.ruoyi.common.core.validate.AddGroup;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
 import java.time.LocalDateTime;
 import java.util.List;
 
 @Data
 public class PlanAddBo {
+    @NotBlank(groups = {AddGroup.class},message = "计划名称不能为空")
     private String planName;
 
+    @NotBlank(groups = {AddGroup.class},message = "appkey不能为空")
     private String appkey;
 
+    @NotBlank(groups = {AddGroup.class},message = "供应商Id不能为空")
     private String vendorId;
+    @NotBlank(groups = {AddGroup.class},message = "供应商名称不能为空")
     private String vendorName;
 
+    @NotBlank(groups = {AddGroup.class},message = "商品Id不能为空")
     private String goodsId;
+    @NotBlank(groups = {AddGroup.class},message = "商品图片不能为空")
     private String goodsImg;
+    @NotBlank(groups = {AddGroup.class},message = "商品名称不能为空")
     private String goodsName;
+    @NotBlank(groups = {AddGroup.class},message = "海报不能为空")
     private String goodsLogo;
+    @NotBlank(groups = {AddGroup.class},message = "商品介绍不能为空")
     private String goodsIntroduce;
+    @NotBlank(groups = {AddGroup.class},message = "商品价格不能为空")
     private Float goodsPrice;
     private String goodsClassify;
 
+    @NotBlank(groups = {AddGroup.class},message = "广告负责人名称不能为空")
     private String principalName;
+    @NotBlank(groups = {AddGroup.class},message = "负责人联系方式不能为空")
     private String principalTelephone;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonSerialize(using = LocalDateTimeSerializer.class)
-    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    @NotBlank(groups = {AddGroup.class},message = "计划开始时间不能为空")
     private LocalDateTime planStartTime;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonSerialize(using = LocalDateTimeSerializer.class)
-    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    @NotBlank(groups = {AddGroup.class},message = "计划结束时间不能为空")
     private LocalDateTime planEndTime;
+    @NotBlank(groups = {AddGroup.class},message = "设备不能为空")
     private List<PlanItemAddBo> items;
+    @NotBlank(groups = {AddGroup.class},message = "签名不能为空")
     private String sign;
 }

+ 41 - 2
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/bo/StatisticsAddBo.java

@@ -1,9 +1,48 @@
 package com.ruoyi.demo.entity.bo;
 
-import com.ruoyi.demo.entity.Statistics;
+import com.ruoyi.common.core.validate.AddGroup;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+import java.time.LocalDateTime;
+
 @Data
-public class StatisticsAddBo extends Statistics {
+public class StatisticsAddBo {
+    @NotBlank(groups = {AddGroup.class},message = "计划Id不能为空")
+    private String planId;
+    @NotBlank(groups = {AddGroup.class},message = "计划名称不能为空")
+    private String planName;
+
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String appkey;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String equipmentId;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String equipmentName;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String equipmentCode;
+
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String addrInfo;
+
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String goodsId;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String goodsName;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private Integer dealToolCount;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private Float dealToolPrice;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String userId;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String userName;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private String userTelephone;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private Integer behavior;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
+    private LocalDateTime time;
+    @NotBlank(groups = {AddGroup.class},message = "订单编号不能为空")
     private String sign;
 }

+ 1 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/OrderServiceImpl.java

@@ -84,7 +84,7 @@ public class OrderServiceImpl implements OrderService {
             .set("state",bo.getState());
         if (!SignUtil.verify(params,app.getAppSecret()))
             return -3;
-        return orderMapper.insert(bo);
+        return orderMapper.insert(new Order(bo));
     }
 
     @Override

+ 1 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/PlanServiceImpl.java

@@ -182,6 +182,7 @@ public class PlanServiceImpl implements PlanService {
                 .or()
                 .like("goods_name",bo.getText());
         }
+        planQueryWrapper.eq("state",1);
         planQueryWrapper.eq("deleted","0");
         List<Plan> plans = planMapper.selectList(planQueryWrapper);
         List<PlanListVo> vos = new ArrayList<>();

+ 1 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/StatisticsServiceImpl.java

@@ -129,6 +129,6 @@ public class StatisticsServiceImpl implements StatisticsService {
             user.setTotalPrice(user.getTotalPrice() + bo.getDealToolPrice());
             dlUserMapper.update(user,userQueryWrapper);
         }
-        return statisticsMapper.insert(bo);
+        return statisticsMapper.insert(new Statistics(bo));
     }
 }

+ 44 - 0
ruoyi-job/src/main/java/com/ruoyi/job/entity/PlanPushStatistics.java

@@ -0,0 +1,44 @@
+package com.ruoyi.job.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@TableName("dl_plan_push_statistics")
+public class PlanPushStatistics {
+    @TableId(value = "statistics_id",type = IdType.ASSIGN_ID)
+    private String statisticsId;
+    @TableField("equipment_id")
+    private String equipmentId;
+    @TableField("equipment_name")
+    private String equipmentName;
+    @TableField("equipment_code")
+    private String equipmentCode;
+    @TableField("carousel_count")
+    private Integer carouselCount;
+    @TableField("scan_code_count")
+    private Integer scanCodeCount;
+
+    @TableField("trade_count")
+    private Integer tradeCount;
+
+    @TableField("total_user_count")
+    private Integer totalUserCount;
+    @TableField("total_price")
+    private Float totalPrice;
+    @TableField("laster_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    private LocalDateTime lasterTime;
+}

+ 16 - 0
ruoyi-job/src/main/java/com/ruoyi/job/service/PlanPushStatisticsService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.job.service;
+
+import com.xxl.job.core.context.XxlJobHelper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class PlanPushStatisticsService {
+
+    public void updatePushStatistics() throws Exception {
+        XxlJobHelper.log("广告投放统计开始");
+        
+
+    }
+}