فهرست منبع

fix 个人优惠卷列表

zoujiajian 3 سال پیش
والد
کامیت
92d8c3d644

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

@@ -20,4 +20,6 @@ public interface CouponUserMapper extends BaseMapper<CouponUser> {
 	Integer countAvailableCouponList(@Param("goodsId") Long goodsId, @Param("skuId") Long skuId, @Param("userId") Long userId, @Param("isRenew") Boolean isRenew);
 
 	Page<CouponActiveView> couponCenterList(@Param("userId") Long userId, IPage<CouponUserView> page);
+
+	Page<CouponUserView> couponPersonalList(@Param("userId") Long userId, @Param("page") Page<CouponUserView> page);
 }

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

@@ -106,4 +106,40 @@
         where couponStatus != 'used'
         order by `order`
     </select>
+
+    <select id="couponPersonalList" resultType="com.cyksj.model.views.CouponUserView">
+        select cu.id,
+               cu.channel,
+               cu.user_id,
+               c.id                     as couponId,
+               ca.id                    as couponActiveId,
+               c.name,
+               c.goods_type,
+               c.type,
+               c.reduce_money,
+               c.discount,
+               c.goods_sku_ids,
+               c.is_valid_time,
+               cu.valid_start_time,
+               c.valid_days,
+               cu.valid_end_time,
+               c.is_renew,
+               (case
+                    when cu.valid_end_time > now() then 'expired'
+                    when ca.status = 0 then 'invalid'
+                    else cu.status end) as couponUserStatus,
+               (case
+                    when cu.status = 'unused' then 0
+                    when cu.valid_end_time > now() then 1
+                    when ca.status = 0 then 2
+                    when cu.status = 'used' then 3
+                   end)                 as orderby
+        from `coupon_user` cu
+                 left join `coupon` c on c.id = cu.coupon_id
+                 left join `coupon_active` ca on ca.coupon_id = c.id
+        where cu.user_id = #{userId}
+          and cu.channel != 'exCode'
+          and ca.id is not null
+        order by `orderby`
+    </select>
 </mapper>

+ 3 - 2
netflix-service/src/main/java/com/cyksj/service/coupon/CouponFontService.java

@@ -5,7 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.model.entity.CouponUser;
 import com.cyksj.model.request.CouponCollectReq;
 import com.cyksj.model.views.CouponUserView;
-import com.ejlchina.searcher.SearchResult;
+
+import java.util.List;
 
 /*
  *项目名: netflix
@@ -32,7 +33,7 @@ public interface CouponFontService {
 	/**
 	 * 处理优惠券状态
 	 */
-	void handleCouponStatus(SearchResult<CouponUserView> search);
+	void handleCouponStatus(List<CouponUserView> page);
 
 	/**
 	 * 可用/不可用优惠券

+ 2 - 3
netflix-service/src/main/java/com/cyksj/service/coupon/impl/CouponFontServiceImpl.java

@@ -17,7 +17,6 @@ import com.cyksj.model.views.CouponUserView;
 import com.cyksj.model.views.GoodsDonSkuView;
 import com.cyksj.service.coupon.CouponFontService;
 import com.ejlchina.searcher.BeanSearcher;
-import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
@@ -144,9 +143,9 @@ public class CouponFontServiceImpl implements CouponFontService {
 	}
 
 	@Override
-	public void handleCouponStatus(SearchResult<CouponUserView> search) {
+	public void handleCouponStatus(List<CouponUserView> list) {
 		DateTime now = DateTime.now();
-		search.getDataList().forEach(data -> {
+		list.forEach(data -> {
 			this.setCouponUserStatus(data, now);
 			String str = couponSkuMapper.selectGoodsSkuStr(data.getCouponId());
 			data.setGoodsSkuStr(str.replaceAll(",", "/").replaceAll(";", ""));

+ 4 - 12
netflix-web/src/main/java/com/cyksj/web/controller/coupon/CouponFrontController.java

@@ -20,14 +20,11 @@ import com.cyksj.redis.RedisService;
 import com.cyksj.service.coupon.CouponFontService;
 import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
-import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
-
 /*
  *项目名: netflix
  *文件名: CouponFrontController
@@ -70,16 +67,11 @@ public class CouponFrontController {
 	 * 个人优惠券列表
 	 */
 	@GetMapping("/personal/list")
-	public Result<SearchResult<CouponUserView>> couponPersonalList(HttpServletRequest request) {
+	public Result<Page<CouponUserView>> couponPersonalList(@RequestParam(defaultValue = "1") Long start, @RequestParam(defaultValue = "5") Long limit) {
 		Long userId = StpUserUtil.getLoginIdAsLong();
-		SearchResult<CouponUserView> search = beanSearcher.search(CouponUserView.class,
-				MapUtils.flatBuilder(request.getParameterMap())
-						.field(CouponUserView::getUserId, userId)
-						.field(CouponUserView::getChannel, CouponUser.Channel.exCode).op(Operator.NotEqual)
-						.orderBy(CouponUserView::getOrderBy).asc()
-						.build());
-		couponFontService.handleCouponStatus(search);
-		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+		Page<CouponUserView> page = couponUserMapper.couponPersonalList(userId, new Page<>(start, limit));
+		couponFontService.handleCouponStatus(page.getRecords());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(page);
 	}
 
 	/**