From d0857993b1fec10c5408c2344eaae572ff8efde7 Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期五, 07 七月 2023 12:04:22 +0800
Subject: [PATCH] activity:使用福利-增加券门店中间表

---
 cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java                          |   49 ++++++++++++
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java               |   14 +++
 cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml                                  |   30 -------
 cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java                  |   16 ++++
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java |   13 +++
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java         |   20 +++++
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java                    |   16 ++++
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java                     |    1 
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java          |   31 ++++---
 cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml                                 |    6 +
 10 files changed, 153 insertions(+), 43 deletions(-)

diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java
new file mode 100644
index 0000000..29b4192
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java
@@ -0,0 +1,49 @@
+package com.dsh.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_coupon_store")
+public class CouponStore extends Model<CouponStore> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 优惠券id
+     */
+    private Integer couponId;
+    /**
+     * 门店id
+     */
+    private Integer storeId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
new file mode 100644
index 0000000..b23ad64
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
@@ -0,0 +1,14 @@
+package com.dsh.activity.feignclient.other;
+
+import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(value = "mb-cloud-other")
+public interface StoreClient {
+
+
+    @PostMapping("/base/protocol/storeDetail/courseOfSto")
+    StoreDetailOfCourse getCourseOfStore(@RequestParam("storeId") Integer storeId);
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java
new file mode 100644
index 0000000..40cf0a7
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java
@@ -0,0 +1,13 @@
+package com.dsh.activity.feignclient.other.model;
+
+import lombok.Data;
+
+@Data
+public class StoreDetailOfCourse {
+
+    String storeName;
+
+    String storeAddr;
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java
new file mode 100644
index 0000000..366e2f2
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.CouponStore;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+public interface CouponStoreMapper extends BaseMapper<CouponStore> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
index 68ed533..7b40f7e 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
@@ -29,6 +29,5 @@
     List<Map<String, Object>> queryAvailableCouponList(@Param("uid") Integer uid, @Param("storeId") Integer storeId,
                                        @Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode);
 
-    List<UserCoupon> queryCanuseConponIds(@Param("userId")Integer userId,@Param("couponIds")List<Integer> couponIds);
 
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java
new file mode 100644
index 0000000..230e568
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.CouponStore;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+public interface CouponStoreService extends IService<CouponStore> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java
new file mode 100644
index 0000000..defdba9
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.CouponStore;
+import com.dsh.activity.mapper.CouponStoreMapper;
+import com.dsh.activity.service.CouponStoreService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+@Service
+public class CouponStoreServiceImpl extends ServiceImpl<CouponStoreMapper, CouponStore> implements CouponStoreService {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
index b417c46..0a9b304 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
@@ -2,16 +2,20 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.activity.entity.Coupon;
+import com.dsh.activity.entity.CouponStore;
 import com.dsh.activity.entity.UserCoupon;
 import com.dsh.activity.feignclient.account.AppUserClient;
 import com.dsh.activity.feignclient.account.StudentClient;
 import com.dsh.activity.feignclient.account.model.AppUser;
-import com.dsh.activity.feignclient.account.model.Student;
 import com.dsh.activity.feignclient.course.CoursePackageClient;
 import com.dsh.activity.feignclient.course.model.CoursePackage;
+import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
 import com.dsh.activity.mapper.CouponMapper;
+import com.dsh.activity.mapper.CouponStoreMapper;
 import com.dsh.activity.mapper.UserCouponMapper;
 import com.dsh.activity.model.ConponJsonRuleModel;
 import com.dsh.activity.model.CouponListVo;
@@ -56,6 +60,11 @@
     @Autowired
     private CouponMapper couponMapper;
 
+    @Autowired
+    private StoreClient storeClient;
+
+    @Autowired
+    private CouponStoreMapper csMapper;
 
     /**
      * 获取购买课程可用优惠券列表
@@ -113,16 +122,9 @@
         List<CouponPackageResp> respList = new ArrayList<>();
         AppUser appUser = appClient.queryAppUser(uid);
         if (null != appUser) {
-            List<Integer> userPopulation = new ArrayList<>();
-            userPopulation.add(1);//全部用户
-            if (1 == appUser.getIsVip()) {
-                userPopulation.add(2);//年度会员
-            }
-            List<Student> students = studentClient.queryStudentList(uid);
-            if (students.size() > 0) {
-                userPopulation.add(3);//已有学员用户
-            }
-            List<UserCoupon> userCoupons = this.baseMapper.queryCanuseConponIds(appUser.getId(),null);
+            List<UserCoupon> userCoupons = this.baseMapper.selectList(new QueryWrapper<UserCoupon>()
+                    .eq("userId",appUser.getId() )
+                    .orderByDesc("insertTime"));
             if (userCoupons.size() > 0){
                 for (UserCoupon userCoupon : userCoupons) {
                     Coupon coupon = couponMapper.selectById(userCoupon.getCouponId());
@@ -141,7 +143,10 @@
                             break;
                         case 3:
                             packageResp.setAvailable("指定门店可用");
-                            packageResp.setCityOrStore("");
+                            CouponStore couponStore = csMapper.selectOne(new QueryWrapper<CouponStore>()
+                                    .eq("couponId",coupon.getId()));
+                            StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStore.getStoreId());
+                            packageResp.setCityOrStore(courseOfStore.getStoreName()+","+courseOfStore.getStoreAddr());
                             break;
                         default:
                             break;
@@ -175,8 +180,10 @@
                             break;
                     }
                     packageResp.setRuleModel(ruleModel);
+
                     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                     packageResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime()));
+
                     if (userCoupon.getStatus() == 1){
                         if (DateUtil.getDate().before(coupon.getEndTime())){
                             packageResp.setUseStatus(1);
diff --git a/cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml b/cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml
new file mode 100644
index 0000000..b92cbce
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.activity.mapper.CouponStoreMapper">
+
+
+</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml b/cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml
index 9b98c7c..4cd1ab4 100644
--- a/cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml
@@ -17,34 +17,4 @@
         b.useScope = 1 or (b.useScope = 2 and provinceCode = #{provinceCode} and cityCode = #{cityCode})
         or (b.useScope = 3 and b.id in (select couponId from t_coupon_store where storeId = #{storeId})))
     </select>
-    <select id="queryCanuseConponIds" resultType="com.dsh.activity.entity.UserCoupon">
-        SELECT *
-        FROM t_user_coupon
-        UNION ALL
-        SELECT *
-        FROM t_user_coupon1
-        UNION ALL
-        SELECT *
-        FROM t_user_coupon2
-        UNION ALL
-        SELECT *
-        FROM t_user_coupon3
-        UNION ALL
-        SELECT *
-        FROM t_user_coupon4
-        UNION ALL
-        SELECT *
-        FROM t_user_coupon5
-        WHERE 1=1
-        <if test="userId != null ">
-            and userId = #{userId}
-        </if>
-        <if test="couponIds.size > 0">
-            and couponId in
-        <foreach collection="couponIds" close=")" index="index" open="(" separator="," item="item">
-            #{item}
-        </foreach>
-        </if>
-        order by insertTime desc
-    </select>
 </mapper>

--
Gitblit v1.7.1