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