From f7c7a1d550444e88c8f7033a8a586211ab8c3ce7 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 17 Jan 2023 21:04:02 +0800
Subject: [PATCH] 1
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 334 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 307 insertions(+), 27 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 91fb9a4..09a2aaf 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -2,10 +2,9 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
-import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
-import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
-import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.*;
import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
@@ -15,16 +14,20 @@
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.vo.*;
+import cc.mrbird.febs.pay.model.SinglePayDto;
+import cc.mrbird.febs.pay.service.UnipayService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.xmlbeans.impl.store.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -55,11 +58,14 @@
private final IApiMallMemberWalletService iApiMallMemberWalletService;
private final AppVersionMapper appVersionMapper;
+ private final MallMemberWithdrawMapper mallMemberWithdrawMapper;
private final MallNewsInfoMapper mallNewsInfoMapper;
private final MallShopApplyMapper mallShopApplyMapper;
private final IMallMoneyFlowService mallMoneyFlowService;
+ private final UnipayService unipayService;
+ private final MallMemberBankMapper mallMemberBankMapper;
@Override
public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -93,6 +99,24 @@
}
@Override
+ public void changeIdentity(Integer type, Long id, Integer value) {
+ MallMember mallMember = mallMemberMapper.selectById(id);
+ if(mallMember == null) {
+ throw new FebsException("参数错误");
+ }
+
+ if (type == 1) {
+ mallMember.setDirector(value);
+ } else if (type == 2){
+ mallMember.setStoreMaster(value);
+ } else {
+ throw new FebsException("参数错误");
+ }
+
+ this.baseMapper.updateById(mallMember);
+ }
+
+ @Override
public MallMemberVo getMallMemberInfoById(long id) {
MallMemberVo mallMemberVo = mallMemberMapper.getMallMemberInfoById(id);
return mallMemberVo;
@@ -122,41 +146,70 @@
@Override
@Transactional
public FebsResponse chargeAgree(Long id) {
- MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id);
- if(ObjectUtil.isEmpty(mallMoneyFlow)){
+
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMemberWithdraw)){
return new FebsResponse().fail().message("系统繁忙,请刷新后重试");
}
- if(1 != mallMoneyFlow.getStatus()){
+ if(1 != mallMemberWithdraw.getStatus()){
return new FebsResponse().fail().message("当前状态不是提现中");
}
- mallMoneyFlow.setStatus(2);
- mallMoneyFlowMapper.updateById(mallMoneyFlow);
+
+// Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId();
+// MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId);
+// if(ObjectUtil.isEmpty(mallMemberBank)){
+// return new FebsResponse().fail().message("提现地址不存在");
+// }
+ //更新提现记录状态为成功
+ mallMemberWithdrawMapper.updateStatusById(2,mallMemberWithdraw.getId());
+ //更新提现流水记录为成功
+ String withdrawNo = mallMemberWithdraw.getWithdrawNo();
+ MallMoneyFlow withdrawMoneyFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
+ mallMemberWithdraw.getMemberId(),
+ withdrawNo,
+ MallMoneyFlowTypeEnum.WITHDRAW.getCode(),
+ MallMoneyFlow.STATUS_ING,
+ MallMoneyFlow.IS_RETURN_Y
+ );
+ withdrawMoneyFlow.setStatus(MallMoneyFlow.STATUS_SUCCESS);
+ mallMoneyFlowMapper.updateById(withdrawMoneyFlow);
return new FebsResponse().success();
}
@Override
@Transactional
public FebsResponse chargeDisagree(Long id) {
- MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id);
- if(ObjectUtil.isEmpty(mallMoneyFlow)){
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMemberWithdraw)){
return new FebsResponse().fail().message("系统繁忙,请刷新后重试");
}
- if(1 != mallMoneyFlow.getStatus()){
+ if(1 != mallMemberWithdraw.getStatus()){
return new FebsResponse().fail().message("当前状态不是提现中");
}
- mallMoneyFlow.setStatus(3);
- mallMoneyFlowMapper.updateById(mallMoneyFlow);
+ //更新提现记录状态为失败
+ mallMemberWithdrawMapper.updateStatusById(3,mallMemberWithdraw.getId());
+ //更新提现流水记录为成功
+ String withdrawNo = mallMemberWithdraw.getWithdrawNo();
+ MallMoneyFlow withdrawMoneyFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
+ mallMemberWithdraw.getMemberId(),
+ withdrawNo,
+ MallMoneyFlowTypeEnum.WITHDRAW.getCode(),
+ MallMoneyFlow.STATUS_ING,
+ MallMoneyFlow.IS_RETURN_Y
+ );
+ withdrawMoneyFlow.setStatus(MallMoneyFlow.STATUS_FAIL);
+ mallMoneyFlowMapper.updateById(withdrawMoneyFlow);
- //用户钱包增加对应的余额
- iApiMallMemberWalletService.addBalance(mallMoneyFlow.getAmount().negate(),mallMoneyFlow.getMemberId());
+ //用户余额增加对应的余额
+ iApiMallMemberWalletService.addBalance(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId());
return new FebsResponse().success();
}
@Override
public AdminMallMemberPaymentVo getMallMemberPaymentInfoByFlowId(long id) {
AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo();
- MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id);
- AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallMoneyFlow.getMemberId());
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallMemberWithdraw.getMemberId());
if(ObjectUtil.isNotEmpty(adminMallMemberPaymentVoa)){
adminMallMemberPaymentVo = adminMallMemberPaymentVoa;
}
@@ -171,6 +224,7 @@
if(CollUtil.isNotEmpty(records)){
for(AdminAgentVo adminAgentVo : records){
String inviteId = adminAgentVo.getInviteId();
+
//直接下级
List<MallMember> mallMembers = mallMemberMapper.selectChildAgentListByInviteId(inviteId);
adminAgentVo.setMemberNum(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size());
@@ -178,6 +232,17 @@
//获取总数
List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId);
adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size());
+
+ //团队业绩
+ BigDecimal amount = BigDecimal.ZERO;
+ if(CollUtil.isNotEmpty(allMallMembers)){
+ for(MallMember teamMember : allMallMembers){
+ Long memberId = teamMember.getId();
+ BigDecimal sumAmount = mallMemberMapper.getSumAmountByMemberId(memberId);
+ amount = amount.add(sumAmount);
+ }
+ }
+ adminAgentVo.setAmount(amount);
}
}
return adminAgentVos;
@@ -224,8 +289,8 @@
List<AdminAgentMemberVo> records = adminAgentMemberVos.getRecords();
if(CollUtil.isNotEmpty(records)){
for(AdminAgentMemberVo agentMemberVo : records){
- String inviteId = agentMemberVo.getInviteId();
- BigDecimal amount = mallMemberMapper.getAgentTeamAmountByInviteId(inviteId);
+ Long agentMemberVoId = agentMemberVo.getId();
+ BigDecimal amount = mallMemberMapper.getSumAmountByMemberId(agentMemberVoId);
agentMemberVo.setAmount(amount);
}
}
@@ -319,21 +384,58 @@
}
BigDecimal bigDecimal = mallSystemPayDto.getAddBalance();
+ boolean isReduce = false;
if(bigDecimal.compareTo(BigDecimal.ZERO) <= 0){
- return new FebsResponse().fail().message("拨付数目需要大于0");
+ isReduce = true;
}
- MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
- mallMemberWallet.setBalance(mallMemberWallet.getBalance().add(bigDecimal));
- mallMemberWalletMapper.updateBalanceWithId(mallMemberWallet);
+ Integer type = mallSystemPayDto.getType();
+ String filedType = "";
+ if (type == 1) {
+ filedType = "balance";
+ } else if (type == 2) {
+ filedType = "score";
+ } else if (type == 3) {
+ filedType = "prizeScore";
+ } else {
+ throw new FebsException("参数错误");
+ }
- mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, FlowTypeEnum.BALANCE.getValue());
+ if (isReduce) {
+ int i = iApiMallMemberWalletService.reduce(mallSystemPayDto.getAddBalance().negate(), mallSystemPayDto.getId(), filedType);
+
+ if (i == 2) {
+ throw new FebsException("剩余数量不足");
+ }
+ } else {
+ iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType);
+ }
+
+ mallMoneyFlowService.addMoneyFlow(
+ memberId,
+ null,
+ bigDecimal,
+ MallMoneyFlowTypeEnum.SYSTEM_CHARGE.getCode(),
+ MallMoneyFlow.STATUS_SUCCESS,
+ MallMoneyFlow.IS_RETURN_Y,
+ memberId,
+ FlowTypeEnum.BALANCE.getValue(),
+ MallMoneyFlowTypeEnum.SYSTEM_CHARGE.getName()
+ );
return new FebsResponse().success();
}
@Override
public AdminAgentLevelSetInfoVo getAgentLevelSetInfoByMemberId(long id) {
- AdminAgentLevelSetInfoVo adminAgentLevelSetInfoVo = mallMemberMapper.getAgentLevelSetInfoByMemberId(id);
+ AdminAgentLevelSetInfoVo adminAgentLevelSetInfoVo = new AdminAgentLevelSetInfoVo();
+ AdminAgentLevelSetInfoVo adminAgentLevelSetInfo = mallMemberMapper.getAgentLevelSetInfoByMemberId(id);
+ if(ObjectUtil.isEmpty(adminAgentLevelSetInfo)){
+ adminAgentLevelSetInfoVo.setId(id);
+ adminAgentLevelSetInfoVo.setLevelCode(MemberAgentLevelEnum.AGENT.getCodeByName(MemberAgentLevelEnum.AGENT.getName()));
+ }else{
+ adminAgentLevelSetInfoVo.setId(id);
+ adminAgentLevelSetInfoVo.setLevelCode(MemberAgentLevelEnum.AGENT.getCodeByName(adminAgentLevelSetInfo.getLevelCode()));
+ }
return adminAgentLevelSetInfoVo;
}
@@ -344,8 +446,10 @@
if(ObjectUtil.isEmpty(mallMember)){
return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
}
- mallMember.setLevel(agentLevelSetUpdateDto.getLevelCode());
- mallMemberMapper.updateById(mallMember);
+ String levelCode = agentLevelSetUpdateDto.getLevelCode();
+ String nameByCode = MemberAgentLevelEnum.AGENT.getNameByCode(levelCode);
+ mallMemberMapper.updateLevelStatusById(1,memberId);
+ mallMemberMapper.updateLevelById(nameByCode,memberId);
return new FebsResponse().success();
}
@@ -360,6 +464,32 @@
mallMember.setPassword(pwd);
this.baseMapper.updateById(mallMember);
return new FebsResponse().success().message("重置成功");
+ }
+
+ @Override
+ public void resetPwd(String ids, Integer type) {
+ if (StrUtil.isEmpty(ids)) {
+ throw new FebsException("参数错误");
+ }
+ List<String> idList = StrUtil.split(ids, ',');
+
+ for (String s : idList) {
+ Long id = Long.parseLong(s);
+ MallMember member = new MallMember();
+ member.setId(id);
+ member.setCreatedTime(null);
+
+ // 重置交易密码
+ if (type == 1) {
+ String payPwd = SecureUtil.md5("654321");
+ member.setTradePassword(payPwd);
+ // 重置登录密码
+ } else {
+ String pwd = SecureUtil.md5("a123456");
+ member.setPassword(pwd);
+ }
+ this.baseMapper.updateById(member);
+ }
}
@Override
@@ -388,6 +518,10 @@
throw new FebsException("申请已审核, 请勿重复操作");
}
+ MallMember member = mallMemberMapper.selectById(apply.getMemberId());
+ member.setStoreMaster(1);
+ mallMemberMapper.updateById(member);
+
apply.setStatus(MallShopApply.APPLY_AGREE);
mallShopApplyMapper.updateById(apply);
}
@@ -402,4 +536,150 @@
apply.setStatus(MallShopApply.APPLY_DISAGREE);
mallShopApplyMapper.updateById(apply);
}
+
+ @Override
+ @Transactional
+ public FebsResponse updateMemberInfo(MallUpdateMemberInfoDto mallUpdateMemberInfoDto) {
+ Long memberId = mallUpdateMemberInfoDto.getId();
+ MallMember mallMember = mallMemberMapper.selectById(memberId);
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+ String phone = mallUpdateMemberInfoDto.getPhone();
+ if(StrUtil.isEmpty(phone)){
+ throw new FebsException("请输入手机号码");
+ }
+ if(!phone.equals(mallMember.getPhone())){
+ QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("phone",phone);
+ List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(mallMembers)){
+ throw new FebsException("手机号码已绑定过账号");
+ }
+ }
+ mallMember.setPhone(phone);
+ mallMember.setBindPhone(phone);
+ mallMember.setLevel(mallUpdateMemberInfoDto.getLevelCode());
+ mallMemberMapper.updateById(mallMember);
+ if(mallUpdateMemberInfoDto.getBalance() == null){
+ throw new FebsException("请输入正确的余额");
+ }
+ if(mallUpdateMemberInfoDto.getScore() == null){
+ throw new FebsException("请输入正确的赠送积分");
+ }
+ if(mallUpdateMemberInfoDto.getPrizeScore() == null){
+ throw new FebsException("请输入正确的竞猜积分");
+ }
+ BigDecimal balance = mallUpdateMemberInfoDto.getBalance();
+ if(BigDecimal.ZERO.compareTo(balance) > 0){
+ throw new FebsException("请输入正确的余额");
+ }
+ BigDecimal score = mallUpdateMemberInfoDto.getScore();
+ if(BigDecimal.ZERO.compareTo(score) > 0){
+ throw new FebsException("请输入正确的赠送积分");
+ }
+ BigDecimal prizeScore = mallUpdateMemberInfoDto.getPrizeScore();
+ if(BigDecimal.ZERO.compareTo(prizeScore) > 0){
+ throw new FebsException("请输入正确的竞猜积分");
+ }
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+ mallMemberWallet.setBalance(balance);
+ mallMemberWallet.setScore(score);
+ mallMemberWallet.setPrizeScore(prizeScore);
+ mallMemberWalletMapper.updateById(mallMemberWallet);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public MallMember findByInviteId(String inviteId) {
+
+ return this.baseMapper.selectInfoByInviteId(inviteId);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void modifyReferer(MallMember member) {
+ MallMember referer = this.baseMapper.selectInfoByInviteId(member.getReferrerId());
+ if (referer == null) {
+ throw new FebsException("推荐人不存在");
+ }
+ String refererId = member.getReferrerId();
+
+ member = this.baseMapper.selectById(member.getId());
+
+ String beforeReferer = member.getReferrerId();
+ member.setReferrerId(refererId);
+ String refererIds = refererIds(refererId);
+ member.setReferrerIds(refererIds);
+ this.baseMapper.updateById(member);
+
+ List<MallMember> childs = this.baseMapper.selectByRefererId(member.getInviteId());
+ if (CollUtil.isEmpty(childs)) {
+ return;
+ }
+
+ for (MallMember child : childs) {
+ child.setReferrerIds(member.getInviteId() + "," + refererIds);
+ this.baseMapper.updateById(child);
+ }
+ }
+
+ @Override
+ public void updateShopApply(MallShopApply apply) {
+ MallShopApply mallShopApply = mallShopApplyMapper.selectById(apply.getId());
+ mallShopApply.setName(apply.getName());
+ mallShopApply.setPhone(apply.getPhone());
+ mallShopApply.setIdcard(apply.getIdcard());
+ mallShopApply.setBusinessLicense(apply.getBusinessLicense());
+ mallShopApply.setSaleArea(apply.getSaleArea());
+ mallShopApply.setShopName(apply.getShopName());
+ mallShopApplyMapper.updateById(mallShopApply);
+ }
+
+ @Override
+ public AdminMallMemberPaymentVo getMallBankInfoById(long id) {
+
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId();
+ MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId);
+ AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo();
+ if(ObjectUtil.isNotEmpty(mallMemberBank)){
+ adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo());
+ adminMallMemberPaymentVo.setBankName(mallMemberBank.getName());
+ }
+ return adminMallMemberPaymentVo;
+ }
+
+ @Override
+ public IPage<MemberCoinChargeEntity> getChargeList(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request) {
+
+ Page<MemberCoinChargeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberCoinChargeEntity> memberCoinChargeEntityIPage = this.baseMapper.selectMemberChargeListInPage(page, memberCoinChargeEntity);
+ return memberCoinChargeEntityIPage;
+ }
+
+ private String refererIds(String parentId) {
+ boolean flag = false;
+ if (StrUtil.isBlank(parentId)) {
+ flag = true;
+ }
+ String ids = "";
+ while (!flag) {
+ if (StrUtil.isBlank(ids)) {
+ ids += parentId;
+ } else {
+ ids += ("," + parentId);
+ }
+ MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
+ if (parentMember == null) {
+ break;
+ }
+ parentId = parentMember.getReferrerId();
+ if (StrUtil.isBlank(parentMember.getReferrerId())) {
+ flag = true;
+ }
+ }
+
+ return ids;
+ }
}
--
Gitblit v1.9.1