zoujiajian il y a 2 ans
Parent
commit
3bc8f89059

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

@@ -10,6 +10,7 @@ import com.cyksj.model.views.CouponUserView;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /*
  *项目名: netflix
@@ -31,4 +32,6 @@ public interface CouponUserMapper extends BaseMapper<CouponUser> {
 	CouponUser getCouponByCouponUserId(Long couponUserId);
 
 	CouponUserView getCouponDetailById(@Param("userId") long userId, @Param("couponId") Long couponId);
+
+	Map<String, Integer> selectCouponUserNumData(Long couponId);
 }

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

@@ -124,6 +124,9 @@ public class CouponView {
 	@DbIgnore
 	private Integer usedNum;
 
+	@DbIgnore
+	private Integer receiptNum;
+
 	/**
 	 * 发放状态
 	 */

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

@@ -233,4 +233,10 @@
                 and coupon_id = #{couponId} limit 1) cu
                  inner join coupon c on c.id = cu.coupon_id
     </select>
+
+    <select id="selectCouponUserNumData" resultType="java.util.Map">
+        select if(status = 'used', 1, NULL) usedNum, count(*) receiptNum
+        from coupon_user
+        where coupon_id = #{couponId}
+    </select>
 </mapper>

+ 5 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/coupon/CouponController.java

@@ -39,6 +39,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.constraints.Min;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -188,9 +189,11 @@ public class CouponController {
 		search.getDataList().forEach(data -> {
 			data.setRelationNum(couponDistributePopularizeMapper.selectCount(Wrappers.lambdaQuery(CouponDistributePopularize.class).eq(CouponDistributePopularize::getCouponId, data.getId())));
 
-			Integer usedNum = couponUserMapper.selectCount(Wrappers.lambdaQuery(CouponUser.class)
-					.eq(CouponUser::getCouponId, data.getId()).eq(CouponUser::getStatus, CouponUser.Status.used));
+			Map<String,Integer> couponUserNumData = couponUserMapper.selectCouponUserNumData(data.getId());
+			Integer usedNum = couponUserNumData.get("usedNum");
 			data.setUsedNum(usedNum);
+			Integer receiptNum = couponUserNumData.get("receiptNum");
+			data.setReceiptNum(receiptNum);
 
 			List<GoodsDonSkuView> skuViewList = couponSkuMapper.selectGoodsSkuViewList(data.getId());
 			data.setSkuViewList(skuViewList);