From 2cfceadff437135a255990ab9698788a48adb636 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 16 十二月 2025 09:54:00 +0800
Subject: [PATCH] 小程序 用户端接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java |   45 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
index 7b10f17..83df9aa 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -14,6 +14,7 @@
 import com.doumee.dao.web.dto.CouponDTO;
 import com.doumee.dao.web.dto.MemberCouponDTO;
 import com.doumee.dao.web.request.PayDetailRequest;
+import com.doumee.dao.web.response.MemberCouponResponse;
 import com.doumee.dao.web.response.goods.OrderGoodsCalculateResponse;
 import com.doumee.service.business.MemberCouponService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -24,6 +25,7 @@
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -52,6 +54,10 @@
 
     @Autowired
     private MemberCouponJoinMapper memberCouponJoinMapper;
+
+    @Autowired
+    private LabelsMapper labelsMapper;
+
 
     @Autowired
     private CouponMapper couponMapper;
@@ -202,11 +208,13 @@
      * @return
      */
     @Override
-    public IPage<CouponDTO> memberCouponPage(IPage pages, BigDecimal price, Integer memberId,Integer couponType) {
-        IPage<CouponDTO> page = memberCouponMapper.memberCouponPage(pages,new QueryWrapper<CouponDTO>()
+    public IPage<MemberCouponResponse> memberCouponPage(IPage pages, BigDecimal price, Integer memberId,Integer couponType,Integer status) {
+        IPage<MemberCouponResponse> page = memberCouponMapper.memberCouponPage(pages,new QueryWrapper<MemberCouponResponse>()
                 .eq("m.MEMBER_ID",memberId)
                 .eq("m.TYPE",Constants.ONE)
-                .eq("m.STATUS",Constants.ZERO)
+                .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.ZERO),"m.STATUS = 0 and m.END_DATE >= now()" )
+                .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.ONE),"m.STATUS = 1" )
+                .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.TWO),"m.STATUS = 0 and  m.END_DATE < now() " )
                 .eq("TYPE",couponType)
                 .apply(!Objects.isNull(price)," m.LIMIT_PRICE >= "+price+" ")
                 .apply("   now() between m.START_DATE and m.END_DATE ")
@@ -216,6 +224,37 @@
     }
 
 
+    @Override
+    public MemberCouponResponse getMemberCouponDetail(Integer id){
+        MemberCoupon memberCoupon = memberCouponJoinMapper.selectById(id);
+        if(Objects.isNull(memberCoupon)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        MemberCouponResponse memberCouponResponse = new MemberCouponResponse();
+        BeanUtils.copyProperties(memberCoupon,memberCouponResponse);
+        if(StringUtils.isNotBlank(memberCouponResponse.getApplyIds())){
+            if(Constants.equalsInteger(memberCouponResponse.getApplyType(),Constants.ONE)){
+                List<Labels> labelsList = labelsMapper.selectList(new QueryWrapper<Labels>().lambda()
+                        .eq(Labels::getIsdeleted,Constants.ZERO)
+                        .eq(Labels::getType,Constants.LabelsType.GOODSTYPE.getKey())
+                        .apply(" find_in_set( id , '"+memberCouponResponse.getApplyIds()+"'  ) ")
+                );
+                if(CollectionUtils.isNotEmpty(labelsList)){
+                    memberCouponResponse.setRelationInfoList(labelsList.stream().map(i->i.getName()).collect(Collectors.toList()));
+                }
+            }else if(Constants.equalsInteger(memberCouponResponse.getApplyType(),Constants.TWO)){
+                List<Goods> labelsList = goodsMapper.selectList(new QueryWrapper<Goods>().lambda()
+                        .eq(Goods::getIsdeleted,Constants.ZERO)
+                        .apply(" find_in_set( id , '"+memberCouponResponse.getApplyIds()+"'  ) ")
+                );
+                if(CollectionUtils.isNotEmpty(labelsList)){
+                    memberCouponResponse.setRelationInfoList(labelsList.stream().map(i->i.getName()).collect(Collectors.toList()));
+                }
+            }
+        }
+
+        return memberCouponResponse;
+    }
 
 
 

--
Gitblit v1.9.3