增加会员总收入和今日收入展示字段,及邀请码字段

This commit is contained in:
2024-11-08 17:53:15 +08:00
parent 52c45d913a
commit 3d2ab0d77c
10 changed files with 673 additions and 27 deletions

View File

@@ -29,8 +29,10 @@ public class UmsMemberController {
@ResponseBody
public CommonResult register(@RequestParam String telephone,
@RequestParam String password,
@RequestParam String authCode) {
return memberService.register(telephone, password, authCode);
@RequestParam String authCode,
@RequestParam String invitationCode
) {
return memberService.register(telephone, password, authCode,invitationCode);
}

View File

@@ -55,6 +55,14 @@ public class MemberInfoResult {
@ApiModelProperty(value = "联系地址")
private String detailAddress;
@ApiModelProperty(value = "总收入")
private String totalIncome;
@ApiModelProperty(value = "今日收入")
private String todayIncome;
public Long getMemberId() {
return memberId;
@@ -183,5 +191,20 @@ public class MemberInfoResult {
public void setDetailAddress(String detailAddress) {
this.detailAddress = detailAddress;
}
public String getTotalIncome() {
return totalIncome;
}
public void setTotalIncome(String totalIncome) {
this.totalIncome = totalIncome;
}
public String getTodayIncome() {
return todayIncome;
}
public void setTodayIncome(String todayIncome) {
this.todayIncome = todayIncome;
}
}

View File

@@ -36,7 +36,7 @@ public interface UmsMemberService {
* 用户注册
*/
@Transactional
CommonResult register(String telephone, String password, String authCode);
CommonResult register(String telephone, String password, String authCode,String invitationCode);
/**
* 登录功能

View File

@@ -1,6 +1,7 @@
package com.buy507.mall.portal.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
@@ -117,6 +118,11 @@ public class UmsMemberServiceImpl implements UmsMemberService {
*/
@Resource
private UmsMemberAccountTransactionMapper umsMemberAccountTransactionMapper;
/**
* 会员上下关系
*/
@Resource
private UmsMemberRelationTreeMapper umsMemberRelationTreeMapper;
@Autowired
private RedisLock redisLock;
@@ -154,7 +160,8 @@ public class UmsMemberServiceImpl implements UmsMemberService {
@Autowired
private RestTemplate restTemplate;
@Override
public UmsMember getByUsername(String username) {
UmsMemberExample example = new UmsMemberExample();
@@ -172,7 +179,7 @@ public class UmsMemberServiceImpl implements UmsMemberService {
}
@Override
public CommonResult register(String telephone, String password, String authCode) {
public CommonResult register(String telephone, String password, String authCode,String invitationCode) {
//验证验证码
if(!verifyAuthCode(authCode, telephone)){
return CommonResult.failed("验证码错误");
@@ -198,21 +205,50 @@ public class UmsMemberServiceImpl implements UmsMemberService {
umsMember.setBalance(new BigDecimal(0));
umsMember.setMemberLevel(MemberLevel.Member);
umsMember.setStoreStatus(StoreStatus.No);
umsMember.setInvitationCode(generateRandomString());
//获取默认会员等级并设置
UmsMemberLevelExample levelExample = new UmsMemberLevelExample();
levelExample.createCriteria().andDefaultStatusEqualTo(1);
levelExample.createCriteria().andDefaultStatusEqualTo(0);
List<UmsMemberLevel> memberLevelList = memberLevelMapper.selectByExample(levelExample);
if (!CollectionUtils.isEmpty(memberLevelList)) {
umsMember.setMemberLevelId(memberLevelList.get(0).getId());
}
memberMapper.insert(umsMember);
//邀请码不为空
if(!StringUtils.isEmpty(invitationCode)){
UmsMemberExample queryMember = new UmsMemberExample();
queryMember.createCriteria().andInvitationCodeEqualTo(invitationCode);
//查询邀请人
List<UmsMember> invitationMember = memberMapper.selectByExample(queryMember);
if(!invitationMember.isEmpty()){
//关联上级关系
UmsMemberRelationTree newRelation = new UmsMemberRelationTree();
newRelation.setMemberId(umsMember.getId());
newRelation.setHigherLevelId(invitationMember.get(0).getId());
umsMemberRelationTreeMapper.insert(newRelation);
}
}
//初始化会员分销相关表
initDistributionService.initDistributionTable(umsMember.getId());
return CommonResult.success(null, "注册成功");
}
private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
private static final int STRING_LENGTH = 12;
public static String generateRandomString() {
StringBuilder sb = new StringBuilder(STRING_LENGTH);
Random random = new Random();
for (int i = 0; i < STRING_LENGTH; i++) {
int index = random.nextInt(CHARACTERS.length());
sb.append(CHARACTERS.charAt(index));
}
return sb.toString();
}
@Override
public Map<String, String> login(String telephone, String password) {
@@ -452,7 +488,8 @@ public class UmsMemberServiceImpl implements UmsMemberService {
@Override
public MemberInfoResult getMemberInfo() {
UmsMember loginMember = getCurrentMember();
UmsMember loginMember = new UmsMember();//getCurrentMember();
loginMember.setId(1L);
UmsMember member = memberMapper.selectByPrimaryKey(loginMember.getId());
DmsTeamTotalConsume teamTotalConsume = teamTotalConsumeMapper.selectOneByMemberId(loginMember.getId());
@@ -488,10 +525,46 @@ public class UmsMemberServiceImpl implements UmsMemberService {
}
member.setFreeze(member.getFreeze().add(freezeTransactionAccount));
//查询总收入
BigDecimal totalIncome = BigDecimal.ZERO;
accountTransactionExample = new UmsMemberAccountTransactionExample();
accountTransactionExample.createCriteria()
.andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES)
.andMemberIdEqualTo(member.getId());
List<UmsMemberAccountTransaction> totalList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample);
if(totalList!= null && !totalList.isEmpty()){
Optional<BigDecimal> sum = totalList.stream().map(UmsMemberAccountTransaction::getRevenueAmount).reduce(BigDecimal :: add);
// 检查 Optional 是否包含值
if (sum.isPresent()) {
totalIncome = sum.get();
}
}
//查询今天收入
BigDecimal todayIncome = BigDecimal.ZERO;
accountTransactionExample = new UmsMemberAccountTransactionExample();
accountTransactionExample.createCriteria()
.andTransferPaymentTimeBetween(DateUtil.beginOfDay(nowTime) ,nowTime)
.andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES)
.andMemberIdEqualTo(member.getId());
List<UmsMemberAccountTransaction> todayIncomeList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample);
if(todayIncomeList!= null && !todayIncomeList.isEmpty()){
Optional<BigDecimal> todaySum = todayIncomeList.stream().map(UmsMemberAccountTransaction::getRevenueAmount).reduce(BigDecimal :: add);
// 检查 Optional 是否包含值
if (todaySum.isPresent()) {
todayIncome = todaySum.get();
}
}
MemberInfoResult result = new MemberInfoResult();
result.setBalance(member.getBalance()); //余额
result.setFreeze(member.getFreeze()); //冻结余额
result.setCoupon(0);
result.setTotalIncome(totalIncome.toString());
result.setTodayIncome(todayIncome.toString());
result.setNickname(member.getNickname() == null ? "" : member.getNickname());
result.setHeadPicture(member.getIcon() == null ? "" :member.getIcon());
result.setGender(member.getGender());

View File

@@ -42,4 +42,11 @@ public class OmsPortalOrderServiceTest {
}
@Test
public void registerTest() {
memberService.register("123213111www", "123sad", "dss", "S4ZG2D2D0JCS");
}
}