Explorar el Código

fix 新用户福利 优惠券详情展示

zoujiajian hace 3 años
padre
commit
bea7e7ee1c

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/coupon/CouponUserMapper.java

@@ -1,5 +1,6 @@
 package com.cyksj.mapper.manage.coupon;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,4 +25,6 @@ public interface CouponUserMapper extends BaseMapper<CouponUser> {
 	Page<CouponActiveView> couponCenterList(@Param("userId") Long userId, IPage<CouponUserView> page);
 
 	Page<CouponUserView> couponPersonalList(@Param("userId") Long userId, @Param("page") Page<CouponUserView> page);
+
+	CouponUserView getNewUserWelfareCouponsByUserId(@Param("userId") long userId, @Param("channel") CouponUser.Channel channel, @Param("now") DateTime now);
 }

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/CouponUserView.java

@@ -137,6 +137,9 @@ public class CouponUserView {
 	@DbField("cu.valid_end_time")
 	private Date validEndTime;
 
+	@DbIgnore
+	private Long validEndTimestamp;
+
 	@DbField("c.use_scope")
 	private Coupon.UseScope useScope;
 

+ 22 - 0
netflix-dao/src/main/resources/mapper/CouponUserMapper.xml

@@ -176,4 +176,26 @@
           and cu.channel != 'exCode'
         order by `orderby`)s where s.couponUserStatus != 'expired' and s.couponUserStatus != 'invalid'
     </select>
+
+    <select id="getNewUserWelfareCouponsByUserId" resultType="com.cyksj.model.views.CouponUserView">
+        select cu.*,
+               c.name,
+               c.goods_type,
+               c.type,
+               c.reduce_condition,
+               c.reduce_money,
+               c.discount,
+               c.use_scope,
+               c.goods_sku_ids,
+               unix_timestamp(cu.valid_end_time) * 1000 as validEndTimestamp
+        from (select coupon_id,
+                     valid_start_time,
+                     valid_end_time,
+                     status
+              from `coupon_user`
+              where channel = #{channel}
+                and user_id = #{userId}
+                and valid_end_time > #{now} limit 1) cu
+                 inner join coupon cp on cp.id = cu.coupon_id
+    </select>
 </mapper>

+ 5 - 0
netflix-service/src/main/java/com/cyksj/service/coupon/CouponFontService.java

@@ -50,4 +50,9 @@ public interface CouponFontService {
 	 * 归还优惠券
 	 */
 	void updateOrderDonCouponStatus(OrderDon orderDon);
+
+	/**
+	 * 新用户福利优惠券
+	 */
+	CouponUserView getNewUserWelfareCoupons(long userId, DateTime now);
 }

+ 5 - 0
netflix-service/src/main/java/com/cyksj/service/coupon/impl/CouponFontServiceImpl.java

@@ -294,4 +294,9 @@ public class CouponFontServiceImpl implements CouponFontService {
 		}
 		log.info("订单:{}退款,优惠券返还end...", orderDon.getId());
 	}
+
+	@Override
+	public CouponUserView getNewUserWelfareCoupons(long userId, DateTime now) {
+		return couponUserMapper.getNewUserWelfareCouponsByUserId(userId, CouponUser.Channel.new_welfare, now);
+	}
 }

+ 11 - 0
netflix-web/src/main/java/com/cyksj/web/controller/coupon/CouponFrontController.java

@@ -326,4 +326,15 @@ public class CouponFrontController {
 		List<CouponView> couponViews = beanSearcher.searchAll(CouponView.class, MapUtils.builder().field(CouponView::getId, couponIds).op(Operator.InList).build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(couponViews);
 	}
+
+	/**
+	 * 新用户福利 优惠券详情展示
+	 */
+	@GetMapping("/get/newUser/welfare")
+	public Result<CouponUserView> getNewUserWelfare() {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		DateTime now = DateTime.now();
+		CouponUserView couponUserView = couponFontService.getNewUserWelfareCoupons(userId, now);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(couponUserView);
+	}
 }