refactor(memberCenter): 优化会员积分相关功能
- 修改积分充值逻辑,将金额乘以 100 转换为积分 - 添加会员消费记录保存功能 - 优化订单交易服务,添加充值记录 - 调整支付宝支付类型比较逻辑 - 移除未使用的 RequestConditionEntity 类feature/comment
parent
f75eae71a4
commit
872cf65750
|
@ -24,6 +24,17 @@
|
|||
<version>0.4.7</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.alipay.sdk</groupId>-->
|
||||
<!-- <artifactId>alipay-sdk-java</artifactId>-->
|
||||
<!-- <version>4.13.50.ALL</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alipay.sdk</groupId>
|
||||
<artifactId>alipay-easysdk</artifactId>
|
||||
|
|
|
@ -111,7 +111,7 @@ public class MemberController {
|
|||
return AjaxResult.warn("用户不存在");
|
||||
}
|
||||
|
||||
Member member = memberService.rechargePoints(userId, amount * 10);
|
||||
Member member = memberService.rechargePoints(userId, amount * 100);
|
||||
|
||||
// 返回充值积分
|
||||
if (!Optional.ofNullable(member).isPresent()) {
|
||||
|
|
|
@ -118,9 +118,9 @@ public class OrderTradeController extends BaseController {
|
|||
|
||||
String type = orderTradeDto.getType();
|
||||
|
||||
if ("member".equals(type)) {
|
||||
if ("member".equalsIgnoreCase(type)) {
|
||||
qrUrl = aliPayIntegration.memberPay(orderTradeDto);
|
||||
} else if ("points".equals(type)) {
|
||||
} else if ("points".equalsIgnoreCase(type)) {
|
||||
qrUrl = aliPayIntegration.pointsPay(orderTradeDto.getPaymentAmount());
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.mcwl.comment.domain;
|
||||
|
||||
|
||||
import com.mcwl.common.domain.RequestConditionEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
package com.mcwl.comment.domain;
|
||||
|
||||
import com.mcwl.common.utils.RequestPageEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 请求条件实体
|
||||
*/
|
||||
@Data
|
||||
public class RequestConditionEntity extends RequestPageEntity {
|
||||
|
||||
|
||||
/**
|
||||
* 创建日期范围
|
||||
*/
|
||||
@ApiModelProperty("创建日期范围")
|
||||
private List<String> betweenTime;
|
||||
|
||||
/**
|
||||
* 创建开始时间
|
||||
*/
|
||||
private String createBeginTime;
|
||||
|
||||
/**
|
||||
* 创建结束时间
|
||||
*/
|
||||
private String createEndTime;
|
||||
|
||||
/**
|
||||
* 自定义excel表头列表
|
||||
*/
|
||||
private List<String> customizeColumnNameList;
|
||||
|
||||
/**
|
||||
* 查询条件
|
||||
*/
|
||||
private String blurry;
|
||||
}
|
|
@ -7,20 +7,14 @@ import com.mcwl.common.core.domain.AjaxResult;
|
|||
import com.mcwl.common.core.domain.entity.SysUser;
|
||||
import com.mcwl.common.exception.ServiceException;
|
||||
import com.mcwl.common.utils.SecurityUtils;
|
||||
import com.mcwl.memberCenter.domain.MemberBenefit;
|
||||
import com.mcwl.memberCenter.domain.MemberLevel;
|
||||
import com.mcwl.memberCenter.domain.Member;
|
||||
import com.mcwl.memberCenter.domain.Promotion;
|
||||
import com.mcwl.memberCenter.domain.*;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import com.mcwl.memberCenter.enums.MemberEnum;
|
||||
import com.mcwl.memberCenter.enums.MemberPeriodicEnum;
|
||||
import com.mcwl.memberCenter.enums.PromotionEnum;
|
||||
import com.mcwl.memberCenter.mapper.MemberMapper;
|
||||
import com.mcwl.memberCenter.mapper.PromotionMapper;
|
||||
import com.mcwl.memberCenter.service.MemberBenefitService;
|
||||
import com.mcwl.memberCenter.service.MemberLevelService;
|
||||
import com.mcwl.memberCenter.service.MemberService;
|
||||
import com.mcwl.memberCenter.service.PromotionService;
|
||||
import com.mcwl.memberCenter.service.*;
|
||||
import com.mcwl.system.service.ISysUserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -41,6 +35,8 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
|
||||
private final PromotionMapper promotionMapper;
|
||||
|
||||
private final MemberConsumeService memberConsumeService;
|
||||
|
||||
@Override
|
||||
public Member createUserMember(Long userId, Long memberLevelId, String paymentMethod, Long promotionId) {
|
||||
if (userId == null) {
|
||||
|
@ -195,16 +191,19 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
throw new ServiceException("积分不足");
|
||||
}
|
||||
|
||||
// 保存消费记录
|
||||
saveMemberConsume(consumePoints, userId, points);
|
||||
|
||||
// 先扣除会员的积分
|
||||
if (member != null) {
|
||||
double mp = member.getPoints() - consumePoints;
|
||||
if (mp >= 0) {
|
||||
member.setPoints(mp);
|
||||
consumePoints = 0.0;
|
||||
} else {
|
||||
member.setPoints(0D);
|
||||
consumePoints = consumePoints - memberPoints;
|
||||
}
|
||||
member.setPoints(mp);
|
||||
baseMapper.updateById(member);
|
||||
}
|
||||
// consumePoints有剩余再扣除用户的积分
|
||||
|
@ -215,6 +214,18 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
|
||||
}
|
||||
|
||||
private void saveMemberConsume(Double consumePoints, Long userId, double points) {
|
||||
MemberConsume memberConsume = new MemberConsume();
|
||||
memberConsume.setUserId(userId);
|
||||
memberConsume.setConsumePoints(consumePoints);
|
||||
memberConsume.setRemainingPoints(points - consumePoints);
|
||||
memberConsume.setConsumeTime(new Date());
|
||||
memberConsume.setCreateBy(SecurityUtils.getUsername());
|
||||
memberConsume.setUpdateBy(SecurityUtils.getUsername());
|
||||
memberConsume.setUpdateTime(new Date());
|
||||
memberConsumeService.save(memberConsume);
|
||||
}
|
||||
|
||||
private List<Member> getUseUserMember(Long userId) {
|
||||
// startDate 小于等于当前时间、endDate 大于等于当前时间
|
||||
// subscriptionStatus 不为 "过期" 或 "待支付"
|
||||
|
|
|
@ -158,11 +158,15 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
|
|||
user.setFreePoints(user.getFreePoints() + points);
|
||||
sysUserService.updateUser(user);
|
||||
|
||||
// 添加充值记录
|
||||
RechargeRecord rechargeRecord = new RechargeRecord();
|
||||
rechargeRecord.setUserId(userId);
|
||||
rechargeRecord.setCode(orderTrade.getCode());
|
||||
rechargeRecord.setAmount(Double.parseDouble(amount));
|
||||
rechargeRecord.setPoints(points);
|
||||
rechargeRecord.setCreateBy(user.getUserName());
|
||||
rechargeRecord.setUpdateBy(user.getUserName());
|
||||
rechargeRecord.setUpdateTime(new Date());
|
||||
rechargeRecordService.save(rechargeRecord);
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue