|
|
|
|
@@ -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());
|
|
|
|
|
|