lisy
2023-07-07 d0857993b1fec10c5408c2344eaae572ff8efde7
activity:使用福利-增加券门店中间表
3个文件已修改
7个文件已添加
196 ■■■■ 已修改文件
cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java
New file
@@ -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;
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
New file
@@ -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);
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java
New file
@@ -0,0 +1,13 @@
package com.dsh.activity.feignclient.other.model;
import lombok.Data;
@Data
public class StoreDetailOfCourse {
    String storeName;
    String storeAddr;
}
cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java
New file
@@ -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> {
}
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);
}
cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java
New file
@@ -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> {
}
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java
New file
@@ -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 {
}
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);
cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml
New file
@@ -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>
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>