Browse Source

feat(MemberCoupon): 添加查询可用优惠券功能

hechunping 3 tháng trước cách đây
mục cha
commit
d276126559

+ 8 - 0
src/main/java/com/xynet/marketing/controller/member/MemberCouponController.java

@@ -11,6 +11,7 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -48,4 +49,11 @@ public class MemberCouponController {
         return R.ok(MemberCouponStatusEnum.maps());
         return R.ok(MemberCouponStatusEnum.maps());
     }
     }
 
 
+    @PostMapping("enableList")
+    private R enableList(@RequestBody JHashMap<String, Object> param, @RequestHeader Map<String, String> headers) {
+        String thirdMemberId = MemberAuthUtils.getThirdMemberId(headers);
+        param.put("thirdMemberId", thirdMemberId);
+        List<Map<String, Object>> data = memberCouponService.enableList(param);
+        return R.ok(data);
+    }
 }
 }

+ 8 - 0
src/main/java/com/xynet/marketing/service/MemberCouponService.java

@@ -44,4 +44,12 @@ public interface MemberCouponService {
      * @return
      * @return
      */
      */
     List<Map<String, Object>> list(JMap<String, Object> param);
     List<Map<String, Object>> list(JMap<String, Object> param);
+
+    /**
+     * 查询当前订单可用的优惠券
+     *
+     * @param param
+     * @return
+     */
+    List<Map<String, Object>> enableList(JMap<String, Object> param);
 }
 }

+ 42 - 0
src/main/java/com/xynet/marketing/service/impl/MemberCouponServiceImpl.java

@@ -18,6 +18,8 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.time.LocalDate;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -78,6 +80,46 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
         return copy.setRecords(records);
         return copy.setRecords(records);
     }
     }
 
 
+    @Override
+    public List<Map<String, Object>> enableList(JMap<String, Object> param) {
+        List<Map<String, Object>> result = new ArrayList<>();
+        LocalDate now = LocalDate.now();
+        String thirdMemberId = param.getString("thirdMemberId");
+        Integer mercId = param.getInt("mercId");
+        String deviceId = param.getString("deviceId");
+        String orderAmount = param.getString("orderAmount");
+        //List<Object> goodsIdList = param.getList("goodsIdList");
+        LambdaQueryWrapper<MemberCoupon> lqw = new LambdaQueryWrapper<MemberCoupon>()
+                .eq(MemberCoupon::getThirdMemberId, thirdMemberId)
+                .eq(MemberCoupon::getMercId, mercId)
+                .eq(MemberCoupon::getStatus, MemberCouponStatusEnum.UNUSED.getCode())
+                .le(MemberCoupon::getUseMinPrice, orderAmount)
+                .le(MemberCoupon::getValidStartDate, now)
+                .ge(MemberCoupon::getValidEndDate, now);
+        List<MemberCoupon> list = list(lqw);
+        if (!Emptys.check(list)) {
+            return result;
+        }
+        //判断设备是否符合
+        list.forEach(item -> {
+            if (item.getIsAllDevice()) {
+                result.add(JHashMap.copy(item));
+            } else {
+                //判断设备是否符合
+                List<Map<String, Object>> deviceList = deviceService.list(
+                        new JHashMap<String, Object>()
+                                .set("deviceId", deviceId)
+                                .set("actId", item.getCouponId())
+                                .set("actType", "coupon")
+                );
+                if (Emptys.check(deviceList)) {
+                    result.add(JHashMap.copy(item));
+                }
+            }
+        });
+        return result;
+    }
+
     @Override
     @Override
     public Map<String, Object> obj(JMap<String, Object> param) {
     public Map<String, Object> obj(JMap<String, Object> param) {
         return null;
         return null;