From 89ff1d1668c471c293dedd312a4eb98a6ebfd06d Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 18 Aug 2022 16:51:47 +0800
Subject: [PATCH] 20220810
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 364 +++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 335 insertions(+), 29 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 bc930bc..6bd1809 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,23 +2,32 @@
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.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.AppVersion;
-import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
-import cc.mrbird.febs.mall.entity.MallMember;
-import cc.mrbird.febs.mall.entity.MallMoneyFlow;
+import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.entity.MallNewsInfo;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.vo.*;
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;
@@ -38,6 +47,8 @@
private final MallMemberMapper mallMemberMapper;
+ private final MallMemberWalletMapper mallMemberWalletMapper;
+
private final MallMoneyFlowMapper mallMoneyFlowMapper;
private final MallMemberPaymentMapper mallMemberPaymentMapper;
@@ -47,6 +58,12 @@
private final IApiMallMemberWalletService iApiMallMemberWalletService;
private final AppVersionMapper appVersionMapper;
+ private final MallMemberWithdrawMapper mallMemberWithdrawMapper;
+
+ private final MallNewsInfoMapper mallNewsInfoMapper;
+ private final MallShopApplyMapper mallShopApplyMapper;
+
+ private final IMallMoneyFlowService mallMoneyFlowService;
@Override
public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -80,6 +97,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;
@@ -109,28 +144,44 @@
@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("当前状态不是提现中");
}
+ mallMemberWithdraw.setStatus(2);
+ mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
+
+ QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
+ objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
+ MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
mallMoneyFlow.setStatus(2);
mallMoneyFlowMapper.updateById(mallMoneyFlow);
+
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("当前状态不是提现中");
}
+ mallMemberWithdraw.setStatus(3);
+ mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
+
+ QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
+ objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
+ MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
mallMoneyFlow.setStatus(3);
mallMoneyFlowMapper.updateById(mallMoneyFlow);
@@ -142,8 +193,8 @@
@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;
}
@@ -179,17 +230,10 @@
@Override
public AdminAgentLevelUpdateInfoVo getAgentLevelUpdateInfoById(long id) {
- AdminAgentLevelUpdateInfoVo adminAgentLevelUpdateInfoVo = new AdminAgentLevelUpdateInfoVo();
DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(id);
String value = dataDictionaryCustom.getValue();
//{"directIncome":36,"lastCnt":3,"orderCnt":500,"orderType":2,"teamIncome":6,"teamIncomeType":2}
- JSONObject jsonObject = JSONObject.parseObject(value);
- adminAgentLevelUpdateInfoVo.setDirectIncome(new BigDecimal((jsonObject.get("directIncome")==null?0:jsonObject.get("directIncome")).toString()));
- adminAgentLevelUpdateInfoVo.setLastCnt(Integer.parseInt((jsonObject.get("lastCnt")==null?0:jsonObject.get("lastCnt")).toString()));
- adminAgentLevelUpdateInfoVo.setOrderCnt(Integer.parseInt((jsonObject.get("orderCnt")==null?0:jsonObject.get("orderCnt")).toString()));
- adminAgentLevelUpdateInfoVo.setOrderType(Integer.parseInt(jsonObject.get("orderType").toString()));
- adminAgentLevelUpdateInfoVo.setTeamIncome(new BigDecimal((jsonObject.get("teamIncome")==null?0:jsonObject.get("teamIncome")).toString()));
- adminAgentLevelUpdateInfoVo.setTeamIncomeType(Integer.parseInt(jsonObject.get("orderType").toString()));
+ AdminAgentLevelUpdateInfoVo adminAgentLevelUpdateInfoVo = JSONObject.parseObject(value, AdminAgentLevelUpdateInfoVo.class);
adminAgentLevelUpdateInfoVo.setId(id);
return adminAgentLevelUpdateInfoVo;
}
@@ -197,15 +241,9 @@
@Override
public FebsResponse agentLevelUpdate(AgentLevelUpdateDto agentLevelUpdateDto) {
DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(agentLevelUpdateDto.getId());
- AgentLevelUpdateDto agentLevelUpdateDtoJson = new AgentLevelUpdateDto();
- agentLevelUpdateDtoJson.setDirectIncome(agentLevelUpdateDto.getDirectIncome());
- agentLevelUpdateDtoJson.setLastCnt(agentLevelUpdateDto.getLastCnt());
- agentLevelUpdateDtoJson.setOrderCnt(agentLevelUpdateDto.getOrderCnt());
- agentLevelUpdateDtoJson.setTeamIncome(agentLevelUpdateDto.getTeamIncome());
- agentLevelUpdateDtoJson.setOrderType(agentLevelUpdateDto.getOrderType());
- agentLevelUpdateDtoJson.setTeamIncomeType(agentLevelUpdateDto.getTeamIncomeType());
- JSONObject jsonObject = (JSONObject)JSONObject.toJSON(agentLevelUpdateDtoJson);
- dataDictionaryCustom.setValue(jsonObject.toString());
+
+ agentLevelUpdateDto.setId(null);
+ dataDictionaryCustom.setValue(JSONObject.toJSONString(agentLevelUpdateDto));
dataDictionaryCustomMapper.updateById(dataDictionaryCustom);
return new FebsResponse().success();
}
@@ -294,4 +332,272 @@
return new FebsResponse().success();
}
+ @Override
+ public FebsResponse activateAccount(Long id) {
+ MallMember mallMember = mallMemberMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+ String level = mallMember.getLevel();
+ if(StrUtil.isEmpty(level) || !AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){
+ return new FebsResponse().fail().message("该用户无法激活");
+ }
+ mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
+ mallMemberMapper.updateById(mallMember);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto) {
+ Long memberId = mallSystemPayDto.getId();
+ MallMember mallMember = mallMemberMapper.selectById(memberId);
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+
+ BigDecimal bigDecimal = mallSystemPayDto.getAddBalance();
+ boolean isReduce = false;
+ if(bigDecimal.compareTo(BigDecimal.ZERO) <= 0){
+ isReduce = true;
+ }
+
+ 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("参数错误");
+ }
+
+ 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, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public AdminAgentLevelSetInfoVo getAgentLevelSetInfoByMemberId(long id) {
+ AdminAgentLevelSetInfoVo adminAgentLevelSetInfoVo = mallMemberMapper.getAgentLevelSetInfoByMemberId(id);
+ return adminAgentLevelSetInfoVo;
+ }
+
+ @Override
+ public FebsResponse agentLevelSetUpdate(AgentLevelSetUpdateDto agentLevelSetUpdateDto) {
+ Long memberId = agentLevelSetUpdateDto.getId();
+ MallMember mallMember = mallMemberMapper.selectById(memberId);
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+ mallMember.setLevel(agentLevelSetUpdateDto.getLevelCode());
+ mallMemberMapper.updateById(mallMember);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse resetPwd(Long id) {
+ MallMember mallMember = this.baseMapper.selectById(id);
+ if (mallMember == null) {
+ throw new FebsException("用户不存在");
+ }
+
+ String pwd = SecureUtil.md5("a123456");
+ 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
+ public IPage<MallDataVo> getMallDataList(MallMember mallMember, QueryRequest request) {
+ Page<MallDataVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MallDataVo> mallDataVos = this.baseMapper.getMallDataListInPage(page, mallMember);
+ return mallDataVos;
+ }
+
+ @Override
+ public IPage<MallShopApply> findShopApplyListInPage(MallShopApply mallShopApply, QueryRequest request) {
+ Page<MallShopApply> page = new Page<>(request.getPageNum(), request.getPageSize());
+
+ return mallShopApplyMapper.selectShopApplyInPage(mallShopApply, page);
+ }
+
+ @Override
+ public MallShopApply findShopApplyById(Long id) {
+ return mallShopApplyMapper.selectById(id);
+ }
+
+ @Override
+ public void applyCheckAgree(Long id) {
+ MallShopApply apply = mallShopApplyMapper.selectById(id);
+ if (!MallShopApply.APPLY_ING.equals(apply.getStatus())) {
+ throw new FebsException("申请已审核, 请勿重复操作");
+ }
+
+ MallMember member = mallMemberMapper.selectById(apply.getMemberId());
+ member.setStoreMaster(1);
+ mallMemberMapper.updateById(member);
+
+ apply.setStatus(MallShopApply.APPLY_AGREE);
+ mallShopApplyMapper.updateById(apply);
+ }
+
+ @Override
+ public void applyCheckDisAgree(Long id) {
+ MallShopApply apply = mallShopApplyMapper.selectById(id);
+ if (!MallShopApply.APPLY_ING.equals(apply.getStatus())) {
+ throw new FebsException("申请已审核, 请勿重复操作");
+ }
+
+ 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);
+ }
+ }
+
+ 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