From 709a4a10be56952ead6340e4822fce41a66e47cd Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 26 七月 2023 18:39:28 +0800
Subject: [PATCH] Merge branch '1.1' of http://120.76.84.145:10101/gitblit/r/java/SuperSaveDriving into dev

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java |  114 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 103 insertions(+), 11 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java
index f16be0a..0e38599 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java
@@ -3,10 +3,16 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.base.tips.SuccessTip;
+import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.modular.system.controller.req.CouponSendReq;
 import com.stylefeng.guns.modular.system.enums.CouponStatusEnum;
+import com.stylefeng.guns.modular.system.enums.StatusEnum;
+import com.stylefeng.guns.modular.system.model.TAgent;
+import com.stylefeng.guns.modular.system.model.TUserToCoupon;
+import com.stylefeng.guns.modular.system.service.ITUserToCouponService;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.hdf.extractor.TC;
 import org.springframework.stereotype.Controller;
 import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
@@ -21,6 +27,8 @@
 import com.stylefeng.guns.modular.system.model.TCoupon;
 import com.stylefeng.guns.modular.system.service.ITCouponService;
 
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.*;
 
 /**
@@ -37,6 +45,8 @@
 
     @Autowired
     private ITCouponService tCouponService;
+    @Autowired
+    private ITUserToCouponService tUserToCouponService;
 
     /**
      * 跳转到首页
@@ -70,7 +80,7 @@
      */
     @RequestMapping(value = "/list")
     @ResponseBody
-    public Object list(Integer couponType,Integer couponServiceType,String createtime) {
+    public Object list(Integer couponType,Integer couponServiceType,String createTime) {
         EntityWrapper<TCoupon> wrapper = new EntityWrapper<>();
         if(Objects.nonNull(couponType)){
             wrapper.eq("coupon_type",couponType);
@@ -79,15 +89,30 @@
             wrapper.eq("coupon_service_type",couponServiceType);
         }
         // 开始,结束时间
-        if(StringUtils.hasLength(createtime)){
-            String[] split = createtime.split(" - ");
-            Date startTime = DateUtil.getDate_str4(split[0]);
-            Date endTime = DateUtil.getDate_str4(split[1]);
-            wrapper.between("createtime",startTime,endTime);
+        if(StringUtils.hasLength(createTime)){
+            String[] split = createTime.split(" - ");
+            Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00");
+            Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59");
+            wrapper.between("create_time",startTime,endTime);
         }
-        wrapper.orderBy(true,"createtime",false);
-        wrapper.groupBy(true,"coupon_name");
-        wrapper.groupBy(true,"coupon_type");
+        wrapper.ne("status", StatusEnum.DELETE.getCode());
+        wrapper.orderBy(true,"create_time",false);
+        return tCouponService.selectList(wrapper);
+    }
+
+    /**
+     * 获取活动券列表
+     */
+    @RequestMapping(value = "/activityCouponList")
+    @ResponseBody
+    public Object activityCouponList(String couponName) {
+        EntityWrapper<TCoupon> wrapper = new EntityWrapper<>();
+        if(StringUtils.hasLength(couponName)){
+            wrapper.like("coupon_name",couponName);
+        }
+        wrapper.eq("coupon_type",1);
+        wrapper.eq("coupon_state",1);
+        wrapper.orderBy(true,"create_time",false);
         return tCouponService.selectList(wrapper);
     }
 
@@ -111,6 +136,16 @@
         if(isExit){
             return new SuccessTip(500,"该优惠券名称与类型已存在!");
         }
+        // 如果是新人优惠券,查询是否存在已启用的新人优惠券
+        if(tCoupon.getCouponType() == 2){
+            int count = tCouponService.selectCount(new EntityWrapper<TCoupon>()
+                    .eq("coupon_type", 2)
+                    .eq("coupon_state", 1)
+                    .eq("status", true));
+            if(count>0){
+                return new SuccessTip(500,"已存在已启用的新人优惠券!");
+            }
+        }
         tCouponService.insert(tCoupon);
         return SUCCESS_TIP;
     }
@@ -121,7 +156,37 @@
     @RequestMapping(value = "/delete")
     @ResponseBody
     public Object delete(@RequestParam Integer tCouponId) {
+        /*TCoupon tCoupon = tCouponService.selectById(tCouponId);
+        tCoupon.setCouponStatus(StatusEnum.DELETE.getCode());
+        tCouponService.updateById(tCoupon);*/
         tCouponService.deleteById(tCouponId);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 修改优惠券状态
+     */
+    @RequestMapping(value = "/update-status")
+    @ResponseBody
+    public Object updateStatus(Integer id,Integer status) {
+        TCoupon tCoupon = tCouponService.selectById(id);
+
+        // 查询已启用的新人券数量
+        int count = tCouponService.selectCount(new EntityWrapper<TCoupon>().eq("coupon_state", 1)
+                .eq("coupon_type",2));
+
+        // 判断是否为新人券,新人券只可启用一条记录
+        if(count > 0 && 2 == tCoupon.getCouponType() && 2 == status){
+            return new SuccessTip(500,"已有启动的新人券!");
+        }
+
+        if(1 == status){
+            tCoupon.setCouponState(2);
+        }
+        if(2 == status){
+            tCoupon.setCouponState(1);
+        }
+        tCouponService.updateById(tCoupon);
         return SUCCESS_TIP;
     }
 
@@ -154,8 +219,35 @@
 
         List<Integer> userIds = couponSendReq.getUserIds();
 
+        // 查询选择的优惠券
+        TCoupon tCoupon = tCouponService.selectById(couponSendReq.getCouponId());
+
+        List<TUserToCoupon> tUserToCoupons = new ArrayList<>(userIds.size());
+
+        for (Integer userId : userIds) {
+            // 创建用户优惠券关联表
+            TUserToCoupon tUserToCoupon = new TUserToCoupon();
+            tUserToCoupon.setCouponId(tCoupon.getId());
+            tUserToCoupon.setUserId(userId);
+            tUserToCoupon.setCouponTotal(1);
+            tUserToCoupon.setValidCount(1);
+            Date expireTime = Date.from(LocalDate.now().plusDays(tCoupon.getCouponValidity()).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+            tUserToCoupon.setExpireTime(expireTime);
+
+            // 添加发放人id和类型
+            if(ShiroKit.getUser().getRoleType() == 1){
+                tUserToCoupon.setObjectId(1);
+            }else {
+                tUserToCoupon.setObjectId(ShiroKit.getUser().getObjectId());
+            }
+            tUserToCoupon.setRoleType(ShiroKit.getUser().getRoleType());
+
+            tUserToCoupons.add(tUserToCoupon);
+        }
+        tUserToCouponService.insertBatch(tUserToCoupons);
+
         // 查询该优惠券的列表
-        List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("coupon_name", couponSendReq.getCouponName())
+        /*List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("coupon_name", couponSendReq.getCouponName())
                 .eq("coupon_status",CouponStatusEnum.UNISSUED.getCode()));
         Assert.isTrue(!CollectionUtils.isEmpty(tCoupons),"该优惠券不存在!");
         List<TCoupon> tCouponList = new ArrayList<>();
@@ -186,7 +278,7 @@
         }
         if(!CollectionUtils.isEmpty(tCouponList)){
             tCouponService.updateBatchById(tCouponList);
-        }
+        }*/
         return SUCCESS_TIP;
     }
 

--
Gitblit v1.7.1