From a34878cdc73b1fe0590aa661f8d6be9907914b47 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 08 Jun 2022 16:37:17 +0800
Subject: [PATCH] 20220528

---
 src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java             |   31 ++++++++++
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java    |    9 +++
 src/main/resources/mapper/modules/MallMemberMapper.xml                         |    2 
 src/main/resources/templates/febs/views/modules/mallMember/detail.html         |   65 +++++++++++++++++++--
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java         |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   48 ++++++++++++++++
 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html |    8 ++
 7 files changed, 157 insertions(+), 8 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
index 5d3e98b..25cd8b7 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -99,6 +99,15 @@
     }
 
     /**
+     * 会员列表-详情更新
+     */
+    @PostMapping("updateMemberInfo")
+    @ControllerEndpoint(operation = "会员列表-详情更新", exceptionMessage = "操作失败")
+    public FebsResponse updateMemberInfo(@Valid MallUpdateMemberInfoDto mallUpdateMemberInfoDto) {
+        return mallMemberService.updateMemberInfo(mallUpdateMemberInfoDto);
+    }
+
+    /**
      * 资金流水-列表
      * @param moneyFlowListDto
      * @param request
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java
new file mode 100644
index 0000000..cd9eda9
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java
@@ -0,0 +1,31 @@
+package cc.mrbird.febs.mall.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "MallUpdateMemberInfoDto", description = "参数接收类")
+public class MallUpdateMemberInfoDto {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "余额")
+    private BigDecimal balance;
+
+    private String levelCode;
+
+    @ApiModelProperty(value = "赠送积分")
+    private BigDecimal score;
+
+    @ApiModelProperty(value = "抽奖积分")
+    private BigDecimal prizeScore;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
index 48fd860..6514b34 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -82,4 +82,6 @@
 
     void applyCheckAgree(Long id);
     void applyCheckDisAgree(Long id);
+
+    FebsResponse updateMemberInfo(MallUpdateMemberInfoDto mallUpdateMemberInfoDto);
 }
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..a8d6598 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
@@ -6,6 +6,7 @@
 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.*;
@@ -20,11 +21,13 @@
 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;
 
@@ -402,4 +405,49 @@
         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);
+
+        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();
+    }
 }
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index f48947a..73f4c11 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -41,6 +41,8 @@
                a.account_status,
                a.CREATED_TIME,
                IFNULL(c.balance,0) balance,
+               IFNULL(c.score,0) score,
+               IFNULL(c.prize_score,0) prizeScore,
                d.description levelName,
                b.name
                FROM mall_member a
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/detail.html b/src/main/resources/templates/febs/views/modules/mallMember/detail.html
index 59e88c3..34fb012 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/detail.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/detail.html
@@ -36,16 +36,30 @@
             <label class="layui-form-label febs-form-item-require">余额:</label>
             <div class="layui-input-block">
                 <input type="text" name="balance" data-th-id="${member.balance}"
-                       autocomplete="off" class="layui-input" readonly>
+                       autocomplete="off" class="layui-input">
             </div>
         </div>
         <div class="layui-form-item">
-            <label class="layui-form-label febs-form-item-require">代理层级:</label>
+            <label class="layui-form-label febs-form-item-require">赠送积分:</label>
             <div class="layui-input-block">
-                <input type="text" name="levelName" data-th-id="${member.levelName}"
-                       autocomplete="off" class="layui-input" readonly>
+                <input type="text" name="score" data-th-id="${member.score}"
+                       autocomplete="off" class="layui-input" >
             </div>
         </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label febs-form-item-require">竞猜积分:</label>
+            <div class="layui-input-block">
+                <input type="text" name="prizeScore" data-th-id="${member.prizeScore}"
+                       autocomplete="off" class="layui-input" >
+            </div>
+        </div>
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label febs-form-item-require">代理层级:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <input type="text" name="levelName" data-th-id="${member.levelName}"-->
+<!--                       autocomplete="off" class="layui-input" readonly>-->
+<!--            </div>-->
+<!--        </div>-->
         <div class="layui-form-item">
             <label class="layui-form-label febs-form-item-require">性别:</label>
             <div class="layui-input-block">
@@ -57,7 +71,7 @@
             <label class="layui-form-label febs-form-item-require">手机号:</label>
             <div class="layui-input-block">
                 <input type="text" name="phone" data-th-id="${member.phone}"
-                       autocomplete="off" class="layui-input" readonly>
+                       autocomplete="off" class="layui-input">
             </div>
         </div>
 <!--        <div class="layui-form-item">-->
@@ -67,6 +81,16 @@
 <!--                       autocomplete="off" class="layui-input" readonly>-->
 <!--            </div>-->
 <!--        </div>-->
+        <div class="layui-form-item">
+            <div class="layui-inline">
+                <label class="layui-form-label">代理级别:</label>
+                <div class="layui-input-inline">
+                    <select lay-verify="required" name="levelCode" class="agent-level-set-level" id="levelSet">
+                        <option value="">请选择</option>
+                    </select>
+                </div>
+            </div>
+        </div>
         <div class="layui-form-item">
             <label class="layui-form-label febs-form-item-require">邀请码:</label>
             <div class="layui-input-block">
@@ -94,6 +118,9 @@
                 <input type="radio" name="accountStatus" value="1" title="正常" readonly>
                 <input type="radio" name="accountStatus" value="2" title="禁用" readonly>
             </div>
+        </div>
+        <div class="layui-form-item febs-hide">
+            <button class="layui-btn" lay-submit="" lay-filter="user-update-form-submit" id="submit"></button>
         </div>
     </form>
 </div>
@@ -124,13 +151,37 @@
                 // "email": member.email,
                 "sex": member.sex,
                 "balance": member.balance,
+                "score": member.score,
+                "prizeScore": member.prizeScore,
                 "inviteId": member.inviteId,
                 "referrerName": member.referrerName,
-                "level": member.level,
-                "levelName": member.levelName,
+                "levelCode": member.level,
+                // "levelName": member.levelName,
                 "createdTime": member.createdTime,
                 "accountStatus": member.accountStatus
             });
         }
+
+        //(下拉框)
+        $.get(ctx + 'admin/mallMember/getAgentLevelOption/tree', function (data) {
+            for (var k in data)
+            {
+                $(".agent-level-set-level").append("<option value='" + data[k].id + "'>" + data[k].name + "</option>");
+            }
+            layui.use('form', function () {
+                var form = layui.form;
+                $("#levelSet").val(member.level)
+                form.render();
+            });
+        });
+
+        form.on('submit(user-update-form-submit)', function (data) {
+            febs.post(ctx + 'admin/mallMember/updateMemberInfo', data.field, function () {
+                layer.closeAll();
+                febs.alert.success('操作成功');
+                $('#febs-user').find('#reset').click();
+            });
+            return false;
+        });
     });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
index 582e3f9..71847bb 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -109,7 +109,13 @@
 
             if (layEvent === 'see') {
                 febs.modal.open( '个人信息', 'modules/mallMember/detail/' + data.id, {
-                    maxmin: true,
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#user-update').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
                 });
             }
             if (layEvent === 'moneyFlow') {

--
Gitblit v1.9.1