Browse Source

优惠券使用

skyline 2 years ago
parent
commit
60291b1dee

+ 1 - 1
admin/src/main/java/com/kym/admin/controller/CouponController.java

@@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/coupon")
 public class CouponController {
 
-    private CouponService couponService;
+    private final CouponService couponService;
 
     public CouponController(CouponService couponService) {
         this.couponService = couponService;

+ 6 - 0
entity/pom.xml

@@ -80,6 +80,12 @@
             <artifactId>gson</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.fasterxml.jackson.datatype</groupId>
+            <artifactId>jackson-datatype-jsr310</artifactId>
+            <version>2.13.4</version>
+        </dependency>
+
     </dependencies>
     <!-- 空间处理这几个依赖单独仓库下载 -->
     <repositories>

+ 1 - 1
entity/src/main/java/com/kym/entity/admin/Coupon.java

@@ -40,7 +40,7 @@ public class Coupon extends BaseEntity {
     /**
      * 优惠券名称
      */
-    private String couponName;
+    private String name;
 
     /**
      * 优惠券描述

+ 1 - 1
entity/src/main/java/com/kym/entity/admin/queryParams/CouponQueryParam.java

@@ -27,7 +27,7 @@ public class CouponQueryParam extends PageParams {
     /**
      * 优惠券名称
      */
-    private String couponName;
+    private String name;
 
     /**
      * 优惠券描述

+ 1 - 1
entity/src/main/java/com/kym/entity/admin/vo/CouponVo.java

@@ -26,7 +26,7 @@ public class CouponVo extends BaseEntity {
     /**
      * 优惠券名称
      */
-    private String couponName;
+    private String name;
 
     /**
      * 优惠券描述

+ 11 - 0
entity/src/main/java/com/kym/entity/miniapp/UserCoupon.java

@@ -1,6 +1,11 @@
 package com.kym.entity.miniapp;
 
 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 com.kym.entity.BaseEntity;
 import lombok.Getter;
 import lombok.Setter;
@@ -47,11 +52,17 @@ public class UserCoupon extends BaseEntity {
     /**
      * 开始时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
     private LocalDateTime startTime;
 
     /**
      * 结束时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
     private LocalDateTime endTime;
 
     /**

+ 2 - 0
mapper/src/main/java/com/kym/mapper/miniapp/UserMapper.java

@@ -1,5 +1,6 @@
 package com.kym.mapper.miniapp;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.kym.entity.admin.vo.CustomUserVo;
 import com.kym.entity.miniapp.User;
@@ -17,6 +18,7 @@ import java.util.List;
  * @author skyline
  * @since 2023-07-26
  */
+@DS("db-miniapp")
 public interface UserMapper extends MPJBaseMapper<User> {
 
     @Select("SELECT \n" +

+ 2 - 2
mapper/src/main/resources/mappers/admin/CouponMapper.xml

@@ -6,7 +6,7 @@
     <resultMap id="BaseResultMap" type="com.kym.entity.admin.Coupon">
         <result column="id" property="id" />
         <result column="activity_id" property="activityId" />
-        <result column="coupon_name" property="couponName" />
+        <result column="name" property="name" />
         <result column="coupon_desc" property="couponDesc" />
         <result column="start_time" property="startTime" />
         <result column="end_time" property="endTime" />
@@ -23,7 +23,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id,activity_id,coupon_name, coupon_desc, start_time, end_time, coupon_type, min_service_money, discount, allow_stacke, quantity, status, remark,create_time,update_time
+        id,activity_id,name, coupon_desc, start_time, end_time, coupon_type, min_service_money, discount, allow_stacke, quantity, status, remark,create_time,update_time
     </sql>
 
 </mapper>

+ 8 - 5
service/src/main/java/com/kym/service/admin/impl/ActivityServiceImpl.java

@@ -1,6 +1,7 @@
 package com.kym.service.admin.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.pagehelper.PageHelper;
@@ -89,7 +90,7 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
      * @return
      */
     @Override
-    @Transactional(rollbackFor = Exception.class)
+    @DSTransactional(rollbackFor = Exception.class)
     public void createActivity(ActivityVo activityVo) {
         // 新增activity
         var activity = new Activity();
@@ -135,7 +136,9 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
      * @param activity
      * @param activityVo
      */
-    private void handleUserCoupons(Activity activity, ActivityVo activityVo) {
+    @DS("db-miniapp")
+    @DSTransactional(rollbackFor = Exception.class)
+    void handleUserCoupons(Activity activity, ActivityVo activityVo) {
         List<UserCoupon> userCouponList = new ArrayList<>();
         var couponList = activityVo.getCouponList();
 
@@ -149,9 +152,9 @@ public class ActivityServiceImpl extends MPJBaseServiceImpl<ActivityMapper, Acti
                 activityVo.getTargetUserIds().forEach(useId -> couponList.forEach(coupon -> addUserCoupon(userCouponList, coupon, activity.getId(), useId)));
                 break;
         }
-        userCouponService.saveBatch(userCouponList);
-        // 发送消息至队列
-        userCouponList.forEach(userCouponSender::sendMessage);
+//        userCouponService.saveBatch(userCouponList);
+        // userCoupon存储量大 发送消息至队列 todo 发券改为手动,以领券为主
+        // userCouponList.forEach(userCouponSender::sendMessage);
     }
 
     /**

+ 1 - 1
service/src/main/java/com/kym/service/admin/impl/CouponServiceImpl.java

@@ -41,7 +41,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
     public PageBean<Coupon> listCoupon(CouponQueryParam params) {
         PageHelper.startPage(params.getPageNum(), params.getPageSize());
         var res = lambdaQuery()
-                .like(CommUtil.isNotEmptyAndNull(params.getCouponName()), Coupon::getCouponName, params.getCouponName())
+                .like(CommUtil.isNotEmptyAndNull(params.getName()), Coupon::getName, params.getName())
                 .orderByAsc(Coupon::getEndTime)
                 .list();
         return new PageBean<>(res);

+ 2 - 0
service/src/main/java/com/kym/service/miniapp/impl/UserCouponServiceImpl.java

@@ -1,5 +1,6 @@
 package com.kym.service.miniapp.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.kym.entity.miniapp.UserCoupon;
 import com.kym.mapper.miniapp.UserCouponMapper;
 import com.kym.service.miniapp.UserCouponService;
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
  * @since 2024-04-29
  */
 @Service
+@DS("db-miniapp")
 public class UserCouponServiceImpl extends ServiceImpl<UserCouponMapper, UserCoupon> implements UserCouponService {
 
 }