From 86f2368f146af23c9e16507f790752e79858a29f Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Thu, 22 Feb 2024 22:34:31 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 899 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 894 insertions(+), 5 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 6423436..0bce76e 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,17 +2,44 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
-import cc.mrbird.febs.mall.entity.MallMember;
-import cc.mrbird.febs.mall.mapper.MallMemberMapper;
+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.AppContants;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.common.utils.MallUtils;
+import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.mall.dto.*;
+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.vo.MallMemberVo;
+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.MemberWithdrawalDto;
+import cc.mrbird.febs.pay.service.IXcxPayService;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
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;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
/**
* @author wzy
@@ -21,37 +48,99 @@
@Slf4j
@Service
@RequiredArgsConstructor
+@Transactional
public class AdminMallMemberServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements IAdminMallMemberService {
+ private final RedisUtils redisUtils;
+
private final MallMemberMapper mallMemberMapper;
+
+ private final MallMemberWalletMapper mallMemberWalletMapper;
+
+ private final MallMoneyFlowMapper mallMoneyFlowMapper;
+
+ private final MallMemberPaymentMapper mallMemberPaymentMapper;
+
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+
+ 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 MallTeamLeaderMapper mallTeamLeaderMapper;
+
+ private final MallAgentRecordMapper mallAgentRecordMapper;
+ private final MallSalesmanMapper mallSalesmanMapper;
+ private final SalemanCouponMapper salemanCouponMapper;
+ private final MallMemberCouponMapper mallMemberCouponMapper;
+ private final MallGoodsCouponMapper mallGoodsCouponMapper;
@Override
public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize());
IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember);
+// if(CollUtil.isNotEmpty(mallMembers.getRecords())){
+// for(MallMember mallMemberTeam : mallMembers.getRecords()){
+// Long salesmansId = mallMemberTeam.getSalesmansId();
+// MallSalesman mallSalesman = mallSalesmanMapper.selectById(salesmansId);
+// if(ObjectUtil.isNotEmpty(mallSalesman)){
+// StringBuffer salesmanName = new StringBuffer();
+// salesmanName.append(mallSalesman.getName());
+// if(2 == mallSalesman.getState()){
+// salesmanName.append("(禁用)");
+// }
+// mallMemberTeam.setSalesmansName(salesmanName.toString());
+// }
+// }
+// }
return mallMembers;
}
@Override
+ @Transactional
public FebsResponse closeAccount(Long id) {
MallMember mallMember = mallMemberMapper.selectById(id);
if(ObjectUtil.isEmpty(mallMember)) {
return new FebsResponse().fail().message("会员信息不存在");
}
- mallMember.setAccountStatus(MallMember.ACCOUNTSTATUS_N);
+ mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_DISABLED);
mallMemberMapper.updateById(mallMember);
return new FebsResponse().success();
}
@Override
+ @Transactional
public FebsResponse openAccount(Long id) {
MallMember mallMember = mallMemberMapper.selectById(id);
if(ObjectUtil.isEmpty(mallMember)) {
return new FebsResponse().fail().message("会员信息不存在");
}
- mallMember.setAccountStatus(MallMember.ACCOUNTSTATUS_Y);
+ mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
mallMemberMapper.updateById(mallMember);
return new FebsResponse().success();
+ }
+
+ @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
@@ -60,4 +149,804 @@
return mallMemberVo;
}
+ @Override
+ public IPage<AdminMallMoneyFlowVo> moneyFlow(QueryRequest request, MallMember mallMember) {
+ Page<AdminMallMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = mallMoneyFlowMapper.selectMoneyFlowInPage(page, mallMember);
+ return adminMallMoneyFlowVos;
+ }
+
+ @Override
+ public IPage<AdminMoneyFlowListVo> getMoneyFlowListInPage(MoneyFlowListDto moneyFlowListDto, QueryRequest request) {
+ Page<AdminMoneyFlowListVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminMoneyFlowListVo> adminMoneyFlowListVos = mallMoneyFlowMapper.getMoneyFlowListInPage(page, moneyFlowListDto);
+ return adminMoneyFlowListVos;
+ }
+
+ @Override
+ public IPage<AdminMoneyChargeListVo> getMoneyChargeListInPage(MoneyChargeListDto moneyChargeListDto, QueryRequest request) {
+ Page<AdminMoneyChargeListVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminMoneyChargeListVo> adminMoneyChargeListVos = mallMoneyFlowMapper.getMoneyChargeListInPage(page, moneyChargeListDto);
+ return adminMoneyChargeListVos;
+ }
+
+ private final IXcxPayService iXcxPayService;
+
+ @Override
+ @Transactional
+ public FebsResponse chargeAgree(Long id) {
+
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMemberWithdraw)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新后重试");
+ }
+ if(1 != mallMemberWithdraw.getStatus()){
+ return new FebsResponse().fail().message("当前状态不是提现中");
+ }
+
+ QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
+ objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
+ MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
+ Long memberId = mallMemberWithdraw.getMemberId();
+ MallMember mallMember = mallMemberMapper.selectById(memberId);
+ MemberWithdrawalDto memberWithdrawalDto = new MemberWithdrawalDto();
+ memberWithdrawalDto.setDesc("余额提现");
+ memberWithdrawalDto.setOpenid(mallMember.getOpenId());
+ memberWithdrawalDto.setTotalFee(mallMemberWithdraw.getAmount());
+ memberWithdrawalDto.setOutTradeNo(mallMoneyFlow.getOrderNo());
+ Boolean aBoolean = iXcxPayService.memberWithdrawal(memberWithdrawalDto);
+ if(!aBoolean){
+ return new FebsResponse().fail().message("微信提现失败,请查看微信商户状态");
+ }
+ mallMemberWithdraw.setStatus(2);
+ mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
+ mallMoneyFlow.setStatus(2);
+ mallMoneyFlowMapper.updateById(mallMoneyFlow);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse chargeDisagree(Long id) {
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMemberWithdraw)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新后重试");
+ }
+ 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);
+
+ //用户钱包增加对应的余额
+ iApiMallMemberWalletService.addBalance(mallMoneyFlow.getAmount().negate(),mallMoneyFlow.getMemberId());
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public AdminMallMemberPaymentVo getMallMemberPaymentInfoByFlowId(long id) {
+ AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo();
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallMemberWithdraw.getMemberId());
+ if(ObjectUtil.isNotEmpty(adminMallMemberPaymentVoa)){
+ adminMallMemberPaymentVo = adminMallMemberPaymentVoa;
+ }
+ return adminMallMemberPaymentVo;
+ }
+
+ @Override
+ public IPage<AdminAgentVo> getAgentList(AgentDto agentDto, QueryRequest request) {
+ Page<AdminAgentVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminAgentVo> adminAgentVos = this.baseMapper.getAgentListInPage(page, agentDto);
+ List<AdminAgentVo> records = adminAgentVos.getRecords();
+ 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());
+
+ //获取总数
+ List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId);
+ adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size());
+ }
+ }
+ return adminAgentVos;
+ }
+
+ @Override
+ public IPage<AdminAgentLevelVo> getAgentLevelList(AgentLevelDto agentLevelDto, QueryRequest request) {
+ Page<AdminAgentLevelVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminAgentLevelVo> adminAgentVos = this.baseMapper.getAgentLevelListInPage(page, agentLevelDto);
+ return adminAgentVos;
+ }
+
+ @Override
+ public AdminAgentLevelUpdateInfoVo getAgentLevelUpdateInfoById(long id) {
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(id);
+ String value = dataDictionaryCustom.getValue();
+ //{"directIncome":36,"lastCnt":3,"orderCnt":500,"orderType":2,"teamIncome":6,"teamIncomeType":2}
+ AdminAgentLevelUpdateInfoVo adminAgentLevelUpdateInfoVo = JSONObject.parseObject(value, AdminAgentLevelUpdateInfoVo.class);
+ adminAgentLevelUpdateInfoVo.setId(id);
+ return adminAgentLevelUpdateInfoVo;
+ }
+
+ @Override
+ public FebsResponse agentLevelUpdate(AgentLevelUpdateDto agentLevelUpdateDto) {
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(agentLevelUpdateDto.getId());
+
+ agentLevelUpdateDto.setId(null);
+ dataDictionaryCustom.setValue(JSONObject.toJSONString(agentLevelUpdateDto));
+ dataDictionaryCustomMapper.updateById(dataDictionaryCustom);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public List<AdminAgentLevelOptionTreeVo> getAgentLevelOption() {
+ return dataDictionaryCustomMapper.getAgentLevelOption();
+ }
+
+
+ @Override
+ public List<AdminAgentLevelOptionTreeVo> agentLevelOption() {
+ return dataDictionaryCustomMapper.agentLevelOption();
+ }
+
+ @Override
+ public FebsResponse agentVerifyUpdate(AdminAgentVerifyVo adminAgentVerifyVo) {
+ MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(adminAgentVerifyVo.getId());
+ if(ObjectUtil.isEmpty(mallAgentRecord)){
+ throw new FebsException("记录不存在");
+ }
+ BigDecimal amount = adminAgentVerifyVo.getAmount();
+ if(BigDecimal.ZERO.compareTo(amount) >= 0){
+ throw new FebsException("请输入正确的金额");
+ }
+// if(StrUtil.isEmpty(adminAgentVerifyVo.getLevelCode())){
+// throw new FebsException("请选择代理级别");
+// }
+// mallAgentRecord.setAgentLevel(adminAgentVerifyVo.getLevelCode());
+ mallAgentRecord.setAmount(adminAgentVerifyVo.getAmount());
+ mallAgentRecordMapper.updateById(mallAgentRecord);
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse upCoupon(Long id) {
+ MallMember mallMember = this.baseMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMember)){
+ throw new FebsException("请刷新页面");
+ }
+ mallMember.setIsSale(1);
+ this.baseMapper.updateById(mallMember);
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse downCoupon(Long id) {
+ MallMember mallMember = this.baseMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMember)){
+ throw new FebsException("请刷新页面");
+ }
+ mallMember.setIsSale(2);
+ this.baseMapper.updateById(mallMember);
+
+ QueryWrapper<SalemanCoupon> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("member_id",mallMember.getId());
+ List<SalemanCoupon> salemanCouponList = salemanCouponMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(salemanCouponList)){
+ for(SalemanCoupon salemanCoupon : salemanCouponList){
+ salemanCouponMapper.deleteById(salemanCoupon);
+ }
+ }
+
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse memberOut(Long id) {
+
+ MallMember mallMember = this.baseMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallMember)){
+ throw new FebsException("请刷新页面");
+ }
+ String redisKey = AppContants.XCX_LOGIN_PREFIX + mallMember.getId();
+ String existToken = redisUtils.getString(redisKey);
+ if (StrUtil.isNotBlank(existToken)) {
+ Object o = redisUtils.get(existToken);
+ if (ObjectUtil.isNotEmpty(o)) {
+ redisUtils.del(existToken);
+ }
+ }
+ redisUtils.del(AppContants.XCX_LOGIN_PREFIX + id);
+ redisUtils.del(AppContants.XCX_LOGIN_PHONE_PREFIX + id);
+ this.baseMapper.deleteById(mallMember);
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public IPage<MallMember> getsalemanRuleList(MallMember mallMember, QueryRequest request) {
+ Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MallMember> mallMembers = this.baseMapper.getsalemanRuleList(page, mallMember);
+ return mallMembers;
+ }
+
+ @Override
+ public FebsResponse salemanCoupon(MallMember mallmember) {
+ MallMember member = this.baseMapper.selectById(mallmember.getId());
+ if(ObjectUtil.isEmpty(member)){
+ throw new FebsException("请刷新页面");
+ }
+ Long couponId = mallmember.getCouponId();
+
+ QueryWrapper<SalemanCoupon> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("member_id",member.getId());
+ List<SalemanCoupon> salemanCouponList = salemanCouponMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(salemanCouponList)){
+ SalemanCoupon salemanCoupon = salemanCouponList.get(0);
+ salemanCoupon.setCouponId(couponId);
+ salemanCouponMapper.updateById(salemanCoupon);
+ return new FebsResponse().success().message("操作成功");
+ }
+ SalemanCoupon salemanCoupon = new SalemanCoupon();
+ salemanCoupon.setMemberId(member.getId());
+ salemanCoupon.setCouponId(couponId);
+ salemanCouponMapper.insert(salemanCoupon);
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public IPage<AdminAgentMemberVo> agentChild(QueryRequest request, MallMember mallMember) {
+ Long memberId = mallMember.getId();
+ mallMember = mallMemberMapper.selectById(memberId);
+ Page<AdminAgentMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminAgentMemberVo> adminAgentMemberVos = this.baseMapper.getAgentChildInPage(page, mallMember);
+ List<AdminAgentMemberVo> records = adminAgentMemberVos.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(AdminAgentMemberVo agentMemberVo : records){
+ String inviteId = agentMemberVo.getInviteId();
+ BigDecimal amount = mallMemberMapper.getAgentTeamAmountByInviteId(inviteId);
+ agentMemberVo.setAmount(amount);
+ }
+ }
+ return adminAgentMemberVos;
+ }
+
+ @Override
+ public IPage<AdminRankAwardVo> getRankAwardList(RankAwardDto rankAwardDto, QueryRequest request) {
+ Page<AdminRankAwardVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminRankAwardVo> adminRankAwardVos = this.baseMapper.getRankAwardListInPage(page, rankAwardDto);
+ return adminRankAwardVos;
+ }
+
+ @Override
+ public AdminRankAwardUpdateInfoVo getRankAwardUpdateInfoById(long id) {
+ AdminRankAwardUpdateInfoVo adminRankAwardUpdateInfoVo = dataDictionaryCustomMapper.getRankAwardUpdateInfoById(id);
+ return adminRankAwardUpdateInfoVo;
+ }
+
+ @Override
+ public FebsResponse rankAwardUpdate(RankAwardUpdateDto rankAwardUpdateDto) {
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(rankAwardUpdateDto.getId());
+ dataDictionaryCustom.setValue(rankAwardUpdateDto.getValue());
+ dataDictionaryCustom.setDescription(rankAwardUpdateDto.getDescription());
+ dataDictionaryCustomMapper.updateById(dataDictionaryCustom);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public IPage<AppVersion> getAppVersionList(AppVersion appVersion, QueryRequest request) {
+ Page<AppVersion> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AppVersion> appVersions = this.baseMapper.getAppVersionListInPage(page, appVersion);
+ return appVersions;
+ }
+
+ @Override
+ public FebsResponse delCategary(Long id) {
+ AppVersion appVersion = appVersionMapper.selectById(id);
+ if(ObjectUtil.isEmpty(appVersion)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+ appVersionMapper.deleteById(id);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse addAppVersion(AppVersion appVersion) {
+ appVersion.setCreatetime(new Date());
+ appVersionMapper.insert(appVersion);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public AppVersion getAppVersionInfoById(long id) {
+ return appVersionMapper.selectById(id);
+ }
+
+ @Override
+ public FebsResponse updateAppVersion(AppVersion appVersion) {
+ AppVersion appVersionBefore = appVersionMapper.selectById(appVersion.getId());
+ if(ObjectUtil.isEmpty(appVersionBefore)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+ appVersion.setCreatetime(new Date());
+ appVersionMapper.updateById(appVersion);
+ 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) {
+ if(StrUtil.isEmpty(member.getReferrerId())){
+ this.baseMapper.updateReferrerId(member.getId());
+ return;
+ }
+ String referrerId = member.getReferrerId();//新的推荐人邀请码
+ //获取新推荐人信息
+ MallMember referer = this.baseMapper.selectInfoByInviteId(referrerId);
+ if (referer == null) {
+ throw new FebsException("推荐人不存在");
+ }
+ member = this.baseMapper.selectById(member.getId());//修改的用户
+
+ if(member.getInviteId().equals(referrerId)){
+ throw new FebsException("自己不能推荐自己");
+ }
+ String refererId = referer.getInviteId();//新推荐人的邀请码
+ if(StrUtil.isNotEmpty(referer.getReferrerIds())){
+ if (referer.getReferrerIds().contains(member.getInviteId())) {
+ throw new FebsException("修改的推荐关系不符合规则");
+ }
+ }
+// String beforeReferer = member.getReferrerId();
+ member.setReferrerId(refererId);//更新用户的上级推荐人为新推荐人的邀请码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 IPage<MallAgentRecord> getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request) {
+ Page<MallAgentRecord> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MallAgentRecord> mallAgentRecords = mallAgentRecordMapper.selectMallAgentRecordListInPage(page, mallAgentRecord);
+ return mallAgentRecords;
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse agreeAgentApply(Long id) {
+ MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallAgentRecord)){
+ return new FebsResponse().fail().message("申请记录不存在");
+ }
+ mallAgentRecord.setState(MallAgentRecord.APPLY_AGREE);
+ mallAgentRecordMapper.updateById(mallAgentRecord);
+
+ //更新用户表中的LEVEL
+ MallMember mallMember = this.baseMapper.selectById(mallAgentRecord.getMemberId());
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("用户不存在");
+ }
+ mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
+ this.baseMapper.updateById(mallMember);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse disagreeAgentApply(Long id) {
+ MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallAgentRecord)){
+ return new FebsResponse().fail().message("申请记录不存在");
+ }
+ mallAgentRecord.setState(MallAgentRecord.APPLY_DISAGREE);
+ mallAgentRecordMapper.updateById(mallAgentRecord);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public IPage<MallSalesman> getMallSalesmanListInPage(MallSalesman mallSalesman, QueryRequest request) {
+ Page<MallSalesman> page = new Page<>(request.getPageNum(), request.getPageSize());
+ return mallSalesmanMapper.selectMallSalesmanListInPage(page, mallSalesman);
+ }
+
+ @Override
+ public FebsResponse addSalesman(MallSalesman mallSalesman) {
+ mallSalesmanMapper.insert(mallSalesman);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse salesmanDel(Long id) {
+ MallSalesman mallSalesman = mallSalesmanMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallSalesman)){
+ return new FebsResponse().fail().message("推销员不存在");
+ }
+ mallSalesman.setState(2);
+ mallSalesmanMapper.updateById(mallSalesman);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse salesmanUpdate(MallSalesman mallSalesman) {
+ MallSalesman mallSalesmanNow = mallSalesmanMapper.selectById(mallSalesman.getId());
+ if(ObjectUtil.isEmpty(mallSalesmanNow)){
+ return new FebsResponse().fail().message("推销员不存在");
+ }
+ mallSalesmanMapper.updateById(mallSalesman);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse salesmanUse(Long id) {
+ MallSalesman mallSalesman = mallSalesmanMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallSalesman)){
+ return new FebsResponse().fail().message("推销员不存在");
+ }
+ mallSalesman.setState(1);
+ mallSalesmanMapper.updateById(mallSalesman);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public List<AdminMallSalesmansTreeVo> getSalesmansTree() {
+ List<AdminMallSalesmansTreeVo> adminMallSalesmansTreeVos = mallSalesmanMapper.selectTreeByState(1);
+ return adminMallSalesmansTreeVos;
+ }
+
+ @Override
+ public FebsResponse memberUpdateSalesman(MallMember mallmember) {
+ MallMember mallMemberNow = mallMemberMapper.selectById(mallmember.getId());
+ if(ObjectUtil.isEmpty(mallMemberNow)){
+ return new FebsResponse().fail().message("用户不存在");
+ }
+ mallMemberNow.setSalesmansId(mallmember.getSalesmansId());
+ mallMemberMapper.updateById(mallMemberNow);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public IPage<AdminMallAddressInfoVo> getAddressAmountList(MallAddressInfo mallAddressInfo, QueryRequest request) {
+
+ Page<AdminMallAddressInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminMallAddressInfoVo> adminMallAddressInfoVoIPage = mallSalesmanMapper.selectAddressAmountListInPage(page, mallAddressInfo);
+ List<AdminMallAddressInfoVo> records = adminMallAddressInfoVoIPage.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(AdminMallAddressInfoVo adminMallAddressInfoVo : records){
+ String province = adminMallAddressInfoVo.getProvince();
+ String city = adminMallAddressInfoVo.getCity();
+ BigDecimal sumAmount = mallSalesmanMapper.selectSumOrderAmountByProvinceAndCity(province,city);
+ adminMallAddressInfoVo.setAmount(sumAmount);
+ Integer orderCnt = mallSalesmanMapper.selectSumOrderCntByProvinceAndCity(province,city);
+ adminMallAddressInfoVo.setOrderCnt(orderCnt);
+ }
+ }
+ return adminMallAddressInfoVoIPage;
+ }
+
+ @Override
+ public List<AdminMallAddressInfoVo> getAddressTree() {
+ return mallSalesmanMapper.selectProvince();
+ }
+
+ @Override
+ public IPage<AdminSalesmanAchieveVo> getSalesmanAchieveList(MallSalesman mallSalesman, QueryRequest request) {
+ Page<AdminSalesmanAchieveVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminSalesmanAchieveVo> adminSalesmanAchieveVoIPage = mallSalesmanMapper.selectSalesmanAchieveListInPage(page, mallSalesman);
+ List<AdminSalesmanAchieveVo> records = adminSalesmanAchieveVoIPage.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(AdminSalesmanAchieveVo adminSalesmanAchieveVo : records){
+ Long salesmanId = adminSalesmanAchieveVo.getSalesmanId();
+ List<AdminMemberOrderVo> adminMemberOrderVos = mallSalesmanMapper.selectAdminMemberOrderVoBySalesmanId(salesmanId);
+ adminSalesmanAchieveVo.setOrderCnt(adminMemberOrderVos.size());
+ adminSalesmanAchieveVo.setAdminMemberOrderVos(adminMemberOrderVos);
+ }
+ }
+ return adminSalesmanAchieveVoIPage;
+ }
+
+ @Override
+ public List<AdminSalesmanAchieveVo> getSalesmanAchieveTree() {
+ return mallSalesmanMapper.selectSalesmanAchieveProvince();
+ }
+
+ @Override
+ public IPage<AdminMallAgentRecordVo> getAgentAchieveList(MallAgentRecord mallAgentRecord, QueryRequest request) {
+ Page<AdminMallAgentRecordVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminMallAgentRecordVo> adminMallAgentRecordVos = mallSalesmanMapper.selectAgentAchieveListInPage(page, mallAgentRecord);
+ return adminMallAgentRecordVos;
+ }
+
+ @Override
+ public List<AdminMallAgentRecordVo> agentAddress() {
+ List<AdminMallAgentRecordVo> adminMallAgentRecordVos = mallSalesmanMapper.selectAgentAddressProvince();
+ if(CollUtil.isNotEmpty(adminMallAgentRecordVos)){
+ for(AdminMallAgentRecordVo adminMallAgentRecordVo : adminMallAgentRecordVos){
+ String province = adminMallAgentRecordVo.getProvince();
+ List<String> cityList = mallSalesmanMapper.selectAgentAddressCity(province);
+ adminMallAgentRecordVo.setCityList(cityList);
+ }
+ }
+ return adminMallAgentRecordVos;
+ }
+
+ 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;
+ }
+
+ @Override
+ public FebsResponse addMemberCoupon(MallMember member) {
+ MallGoodsCoupon existCoupon = mallGoodsCouponMapper.selectById(member.getCouponId());
+ if(existCoupon == null) {
+ return new FebsResponse().fail().message("优惠券不存在");
+ }
+
+ MallMemberCoupon memberCoupon = new MallMemberCoupon();
+ memberCoupon.setCouponId(existCoupon.getId());
+ memberCoupon.setCouponName(existCoupon.getName());
+ memberCoupon.setInviteId(member.getInviteId());
+ memberCoupon.setCouponUuid(IdUtil.simpleUUID());
+ memberCoupon.setState(1);
+ memberCoupon.setFromType(4);
+ memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), existCoupon.getExpireDay()));
+ memberCoupon.setMemberId(member.getId());
+ mallMemberCouponMapper.insert(memberCoupon);
+
+ return new FebsResponse().success().message("操作成功");
+ }
}
--
Gitblit v1.9.1