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