Ver Fonte

商家端代金券代码提交

wuchen há 2 meses atrás
pai
commit
a68fa03fdb

+ 27 - 8
alien-store/src/main/java/shop/alien/store/controller/LifeCouponController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationContext;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import shop.alien.entity.result.R;
@@ -57,7 +58,7 @@ public class LifeCouponController {
     @ApiOperation("代金劵列表")
     @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "页数", dataType = "Integer", paramType = "query", required = true), @ApiImplicitParam(name = "size", value = "页容", dataType = "Integer", paramType = "query", required = true), @ApiImplicitParam(name = "storeId", value = "门店id", dataType = "Integer", paramType = "query", required = true), @ApiImplicitParam(name = "status", value = "状态", dataType = "Integer", paramType = "query", required = false), @ApiImplicitParam(name = "name", value = "名称", dataType = "Integer", paramType = "query"), @ApiImplicitParam(name = "dataType", value = "数据类型: 0:正式数据, 1:草稿数据", dataType = "Integer", paramType = "query", defaultValue = "0")})
     @GetMapping("/getCouponList")
-    private R<IPage<LifeCoupon>> getCouponList(@RequestParam(value = "page", defaultValue = "1") int page, @RequestParam(value = "size", defaultValue = "10") int size, @RequestParam("storeId") String storeId, @RequestParam("status") String status, @RequestParam(value = "name", required = false) String name, @RequestParam(value = "dataType", defaultValue = "0") Integer dataType) {
+    public R<IPage<LifeCoupon>> getCouponList(@RequestParam(value = "page", defaultValue = "1") int page, @RequestParam(value = "size", defaultValue = "10") int size, @RequestParam("storeId") String storeId, @RequestParam("status") String status, @RequestParam(value = "name", required = false) String name, @RequestParam(value = "dataType", defaultValue = "0") Integer dataType) {
         log.info("LifeCouponController.getCouponList?page={},size={},storeId={},status={},name={},dataType={}", page, size, storeId, status, name, dataType);
         return R.data(lifeCouponService.getCouponList(page, size, storeId, status, name, dataType));
     }
@@ -83,7 +84,7 @@ public class LifeCouponController {
 
     @ApiOperation("代金劵详情")
     @GetMapping("/getNewCouponDetail")
-    private R<LifeCouponVo> getNewCouponDetail(@RequestParam("id") String id) {
+    public R<LifeCouponVo> getNewCouponDetail(@RequestParam("id") String id) {
         log.info("LifeCouponController.getNewCouponDetail?id={}", id);
         try {
             LifeCouponVo lifeCouponVo = lifeCouponService.getNewCouponDetail(id);
@@ -97,12 +98,12 @@ public class LifeCouponController {
         }
     }
 
-    @TrackEvent(
-            eventType = "COUPON_USE",
-            eventCategory = "COUPON",
-            storeId = "#{#storeId}",
-            targetType = "COUPON"
-    )
+//    @TrackEvent(
+//            eventType = "COUPON_USE",
+//            eventCategory = "COUPON",
+//            storeId = "#{#storeId}",
+//            targetType = "COUPON"
+//    )
     @ApiOperation("旧 核销订单")
     @ApiImplicitParams({@ApiImplicitParam(name = "storeId", value = "门店id", dataType = "Integer", paramType = "query", required = true), @ApiImplicitParam(name = "quanCode", value = "券码", dataType = "Integer", paramType = "query", required = true)})
     @GetMapping("/verify")
@@ -197,4 +198,22 @@ public class LifeCouponController {
         log.info("LifeCouponController.importHoliday fileName={}", file.getOriginalFilename());
         return lifeCouponService.importHolidayFromExcel(file);
     }
+    /**
+     * 删除代金券
+     * 根据优惠券ID删除代金券信息
+     *
+     * @param id 优惠券ID
+     * @return R<Boolean> 操作结果
+     * @author alien-cloud
+     * @date 2025-11-18
+     */
+    @ApiOperation("删除代金券")
+    @GetMapping("/deleteCoupon")
+    public R<Boolean> deleteCoupon(@RequestParam("id") Integer id) {
+        log.info("LifeCouponController.updateCouponSingleQty?id={}", id);
+        if (lifeCouponService.deleteCoupon(id)) {
+            return R.success("成功");
+        }
+        return R.fail("失败");
+    }
 }

+ 7 - 0
alien-store/src/main/java/shop/alien/store/service/LifeCouponService.java

@@ -71,4 +71,11 @@ public interface LifeCouponService extends IService<LifeCoupon> {
      * @return 导入结果
      */
     R<String> importHolidayFromExcel(MultipartFile file);
+
+    /**
+     *  删除代金券
+     * @param id
+     * @return
+     */
+    boolean deleteCoupon(Integer id);
 }

+ 27 - 15
alien-store/src/main/java/shop/alien/store/service/impl/LifeCouponServiceImpl.java

@@ -73,8 +73,7 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
     private final LifeDiscountCouponMapper lifeDiscountCouponMapper;
 
     @Override
-    public LifeCoupon addOrUpdateCoupon(LifeCoupon lifeCoupon) {
-
+    public LifeCoupon addOrUpdateCoupon(LifeCoupon lifeCoupon) {//状态:0草稿/1待审核/2未开始/3审核拒绝/4已售罄/5进行中/6已下架/7已结束/8=2+手动下架
         // 添加优惠tag
         //获取经营板块id
 //        Integer businessSection = lifeCoupon.getBusinessSection();
@@ -96,19 +95,23 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
             lifeCoupon.setDiscountTag(String.join(",", discountTypes));
             lifeCoupon.setDiscountTagName(String.join(",", businessTypeNames));
         }
-
-//        int status = 0;
-//        Date now = new Date();
-//        Date startDate = lifeCoupon.getStartDate();
-//        Date endDate = lifeCoupon.getEndDate();
-//        if (now.compareTo(startDate) >= 0 && now.compareTo(endDate) <= 0) {
-//            status = 1;
-//        } else if (now.compareTo(startDate) < 0) {
-//            status = 0;
-//        } else if (now.compareTo(endDate) >= 0) {
-//            status = 3;
-//        }
-        lifeCoupon.setStatus(1);
+        // 根据开始/结束日期自动设置:当前早于开始日→2未开始,在有效期内→5进行中,晚于结束日→7已结束
+        Date now = new Date();
+        Date startDate = lifeCoupon.getStartDate();
+        Date endDate = lifeCoupon.getEndDate();
+       if (lifeCoupon.getSingleQty()!=null && lifeCoupon.getSingleQty() ==0){
+           lifeCoupon.setStatus(4);
+       }else {
+           if (startDate != null) {
+               if (now.before(startDate)) {
+                   lifeCoupon.setStatus(2);   // 未开始:当前日期早于开始日
+               } else if (endDate != null && now.after(endDate)) {
+                   lifeCoupon.setStatus(7);   // 已结束:当前日期晚于结束日
+               } else {
+                   lifeCoupon.setStatus(5);   // 进行中:在有效期内(开始日当天~结束日当天)
+               }
+           }
+       }
         if (StringUtils.isEmpty(lifeCoupon.getId())) {
             lifeCoupon.setType(1);
             lifeCoupon.setCouponCode(UniqueRandomNumGenerator.generateUniqueCode(12));
@@ -886,6 +889,15 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
         return R.success(message.toString());
     }
 
+    @Override
+    public boolean deleteCoupon(Integer id) {
+        LambdaUpdateWrapper<LifeCoupon> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+        lambdaUpdateWrapper.eq(LifeCoupon :: getId, id);
+        lambdaUpdateWrapper.set(LifeCoupon :: getDeleteFlag, 1);
+        lifeCouponMapper.update(null, lambdaUpdateWrapper);
+        return true;
+    }
+
     /**
      * 解析日期字符串
      */