From 27f8fa9cba4bcf96c82dba9a48d6dc2855d0ea9c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 16 Jun 2022 18:24:07 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |  131 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 126 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 b4b8d81..2db036f 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
@@ -96,6 +96,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;
@@ -322,15 +340,29 @@
         }
 
         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) {
+            iApiMallMemberWalletService.reduce(mallSystemPayDto.getAddBalance().negate(), mallSystemPayDto.getId(), filedType);
+        } else {
+            iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType);
+        }
+        mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type);
         return new FebsResponse().success();
     }
 
@@ -366,6 +398,32 @@
     }
 
     @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);
@@ -390,6 +448,10 @@
         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);
@@ -458,4 +520,63 @@
         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