From c74a6f59490cfb9a0ee37f70427739b74e7fbd58 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 20 五月 2026 08:50:29 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java | 80 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 80 insertions(+), 0 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
index a32d68b..7e792fa 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -11,7 +11,9 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CouponMapper;
import com.doumee.dao.business.MemberCouponMapper;
+import com.doumee.dao.business.model.Coupon;
import com.doumee.dao.business.model.MemberCoupon;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.MemberCouponService;
@@ -22,6 +24,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -31,6 +34,8 @@
@Autowired
private MemberCouponMapper memberCouponMapper;
+ @Autowired
+ private CouponMapper couponMapper;
@Override
@Transactional(rollbackFor = {Exception.class, BusinessException.class})
@@ -146,4 +151,79 @@
QueryWrapper<MemberCoupon> wrapper = new QueryWrapper<>(memberCoupon);
return memberCouponMapper.selectCount(wrapper);
}
+
+ @Override
+ public PageData<MemberCoupon> findMemberPage(Integer memberId, Integer status, PageWrap<MemberCoupon> pageWrap) {
+ IPage<MemberCoupon> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ MPJLambdaWrapper<MemberCoupon> qw = new MPJLambdaWrapper<>();
+ qw.selectAll(MemberCoupon.class)
+ .eq(MemberCoupon::getMemberId, memberId)
+ .eq(MemberCoupon::getIsdeleted, Constants.ZERO);
+
+ if (status != null) {
+ if (status == Constants.CouponStatus.expired.getKey()) {
+ // 宸插け鏁堝寘鍚袱绉嶏細98=鏈鍙栧凡杩囨湡, 99=宸茶繃鏈�
+ qw.in(MemberCoupon::getStatus,
+ Constants.CouponStatus.expiredUnclaimed.getKey(),
+ Constants.CouponStatus.expired.getKey());
+ } else {
+ qw.eq(MemberCoupon::getStatus, status);
+ }
+ }
+
+ // 鎸夌姸鎬佹帓搴�
+ if (status != null) {
+ switch (status) {
+ case 0: // 寰呴鍙� 鈫� 鍒涘缓鏃堕棿鍊掑簭
+ case 98: // 宸插け鏁�(鏌ヨ鏃跺寘鍚簡98鍜�99)
+ case 99:
+ qw.orderByDesc(MemberCoupon::getCreateDate);
+ break;
+ case 1: // 寰呬娇鐢� 鈫� 棰嗗彇鏃堕棿鍊掑簭
+ qw.orderByDesc(MemberCoupon::getValidDate);
+ break;
+ case 2: // 宸蹭娇鐢� 鈫� 浣跨敤鏃堕棿鍊掑簭
+ qw.orderByDesc(MemberCoupon::getUseDate);
+ break;
+ default:
+ qw.orderByDesc(MemberCoupon::getId);
+ break;
+ }
+ } else {
+ qw.orderByDesc(MemberCoupon::getId);
+ }
+
+ return PageData.from(memberCouponMapper.selectJoinPage(page, MemberCoupon.class, qw));
+ }
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class, BusinessException.class})
+ public void claimCoupon(Integer memberId, Integer couponId) {
+ // 鏌ヨ璇ヤ細鍛樼殑寰呴鍙栦紭鎯犲埜璁板綍
+ MemberCoupon mc = memberCouponMapper.selectOne(new QueryWrapper<MemberCoupon>().lambda()
+ .eq(MemberCoupon::getId, couponId)
+ .eq(MemberCoupon::getMemberId, memberId)
+ .eq(MemberCoupon::getStatus, Constants.CouponStatus.waitClaim.getKey())
+ .eq(MemberCoupon::getIsdeleted, Constants.ZERO));
+ if (mc == null) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ // 鏍¢獙浼樻儬鍒告槸鍚︽湁鏁�
+ Coupon coupon = couponMapper.selectById(couponId);
+ if (coupon == null || coupon.getStatus() != Constants.ZERO) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼樻儬鍒告棤鏁�");
+ }
+ // 鏍囪宸查鍙栵紝璁$畻鏈夋晥鏈�
+ Date now = new Date();
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(now);
+ cal.add(Calendar.DAY_OF_MONTH, mc.getValidDays() != null ? mc.getValidDays() : 0);
+ memberCouponMapper.update(new UpdateWrapper<MemberCoupon>().lambda()
+ .set(MemberCoupon::getStatus, Constants.CouponStatus.claimed.getKey())
+ .set(MemberCoupon::getValidDate, now)
+ .set(MemberCoupon::getStartDate, now)
+ .set(MemberCoupon::getEndDate, cal.getTime())
+ .set(MemberCoupon::getEditDate, now)
+ .eq(MemberCoupon::getId, mc.getId()));
+ }
}
--
Gitblit v1.9.3