xiaoyong931011
2023-10-12 c4bf5ac4f2316110c416fbf4cdec1dddc91f5860
redbagprod
10 files modified
2 files added
250 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java 16 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/ChatUser.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/AdminRegisterMemberVo.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java 4 ●●●● patch | view | raw | blame | history
src/main/resources/application.yml 2 ●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ChatUserMapper.xml 8 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/chat/mallRegisterMember.html 76 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/chat/userList.html 63 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java
@@ -10,6 +10,7 @@
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.service.IAdminChatService;
import cc.mrbird.febs.mall.vo.AdminGroupInfoVo;
import cc.mrbird.febs.mall.vo.AdminRegisterMemberVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
@@ -41,6 +42,29 @@
    public FebsResponse getUserList(ChatUser chatUser, QueryRequest request) {
        Map<String, Object> data = getDataTable(iAdminChatService.getUserList(chatUser, request));
        return new FebsResponse().success().data(data);
    }
    /**
     * 用户列表---开启
     *
     * @param userId
     * @return
     */
    @GetMapping("openModelType/{userId}")
    @ControllerEndpoint(operation = "会员列表---开启", exceptionMessage = "操作失败")
    public FebsResponse openModelType(@NotNull(message = "{required}") @PathVariable String userId) {
        return iAdminChatService.openModelType(userId);
    }
    /**
     * 用户列表---关闭
     *
     * @param userId
     * @return
     */
    @GetMapping("closeModelType/{userId}")
    @ControllerEndpoint(operation = "会员列表---关闭", exceptionMessage = "操作失败")
    public FebsResponse closeModelType(@NotNull(message = "{required}") @PathVariable String userId) {
        return iAdminChatService.closeModelType(userId);
    }
    /**
@@ -206,4 +230,13 @@
    public FebsResponse registerMember() {
        return iAdminChatService.registerMember();
    }
    /**
     * 用户列表-添加会员
     */
    @PostMapping("updateRegisterMember")
    @ControllerEndpoint(operation = "会员列表-添加会员", exceptionMessage = "操作失败")
    public FebsResponse updateRegisterMember(@Valid AdminRegisterMemberVo adminRegisterMemberVo) {
        return iAdminChatService.updateRegisterMember(adminRegisterMemberVo);
    }
}
src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java
@@ -14,6 +14,7 @@
import cc.mrbird.febs.mall.service.IAdminMallMemberService;
import cc.mrbird.febs.mall.vo.AdminChatWalletVo;
import cc.mrbird.febs.mall.vo.AdminGroupInfoVo;
import cc.mrbird.febs.mall.vo.AdminRegisterMemberVo;
import cc.mrbird.febs.mall.vo.MallMemberVo;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
@@ -48,11 +49,22 @@
    }
    /**
     * 用户列表-系统拨付
     * @param userId
     * 用户列表-新增会员
     * @param model
     * @return
     */
    @GetMapping("mallRegisterMember/{inviteId}")
    @RequiresPermissions("mallRegisterMember:update")
    public String mallRegisterMember(@PathVariable String inviteId, Model model) {
        AdminRegisterMemberVo data = new AdminRegisterMemberVo();
        data.setInviteId(inviteId);
        model.addAttribute("mallRegisterMember", data);
        return FebsUtil.view("modules/chat/mallRegisterMember");
    }
    /**
     * 用户列表-系统拨付
     */
    @GetMapping("mallSystemPay/{userId}")
    @RequiresPermissions("mallSystemPay:update")
    public String systemPay(@PathVariable String userId, Model model) {
src/main/java/cc/mrbird/febs/mall/entity/ChatUser.java
@@ -124,6 +124,10 @@
    @TableField(exist = false)
    private Integer state;
    /**
     * 模式类型 1:简单模式-正常模式 2:困难模式
     */
    private Integer modelType;
}
src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
@@ -37,6 +37,8 @@
    void updateIsRobotByUserId(@Param("userId")String userId, @Param("isRobot")int i);
    void updateModelTypeByUserId(@Param("userId")String userId, @Param("modelType")int i);
    DataDictionary selectDicDataByTypeAndCode(@Param("type") String type, @Param("code") String code);
    IPage<AdminGroupVo> selectGroupListInPage(Page<AdminGroupVo> page, @Param("record")ChatUser chatUser);
src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java
@@ -43,4 +43,10 @@
    FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo);
    FebsResponse registerMember();
    FebsResponse openModelType(String userId);
    FebsResponse closeModelType(String userId);
    FebsResponse updateRegisterMember(AdminRegisterMemberVo adminRegisterMemberVo);
}
src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java
@@ -226,4 +226,30 @@
        agentProducer.sendAddRobotMsg("20845477");
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse openModelType(String userId) {
        ChatUser chatUser = this.baseMapper.selectByUserId(userId);
        if(ObjectUtil.isEmpty(chatUser)) {
            return new FebsResponse().fail().message("会员信息不存在");
        }
        this.baseMapper.updateModelTypeByUserId(userId,1);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse closeModelType(String userId) {
        ChatUser chatUser = this.baseMapper.selectByUserId(userId);
        if(ObjectUtil.isEmpty(chatUser)) {
            return new FebsResponse().fail().message("会员信息不存在");
        }
        this.baseMapper.updateModelTypeByUserId(userId,2);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse updateRegisterMember(AdminRegisterMemberVo adminRegisterMemberVo) {
        agentProducer.sendAddRobotMsg(adminRegisterMemberVo.getInviteId());
        return new FebsResponse().success();
    }
}
src/main/java/cc/mrbird/febs/mall/vo/AdminRegisterMemberVo.java
New file
@@ -0,0 +1,10 @@
package cc.mrbird.febs.mall.vo;
import lombok.Data;
@Data
public class AdminRegisterMemberVo {
    private String inviteId;
}
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -47,10 +47,10 @@
    }
    /**
     * 添加机器人
     * 添加会员
     */
    public void sendAddRobotMsg(String inviteId) {
        log.info("发送机器人自动抢红包ID:{}", inviteId);
        log.info("添加会员:{}", inviteId);
        CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID());
        rabbitTemplate.convertAndSend(RabbitQueueEnum.IM_REDBAG_GET_ADD_ROBOT.getExchange(),
                RabbitQueueEnum.IM_REDBAG_GET_ADD_ROBOT.getRoute(),
src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
  port: 8098
  port: 8095
  tomcat:
    uri-encoding: utf-8
src/main/resources/mapper/modules/ChatUserMapper.xml
@@ -7,6 +7,7 @@
        a.user_id userId,
        a.nick_name nickName,
        a.chat_no chatNo,
        a.model_type modelType,
        a.phone phone,
        a.status status,
        a.invite_id inviteId,
@@ -164,6 +165,13 @@
        where user_id = #{userId}
    </update>
    <update id="updateModelTypeByUserId">
        update chat_user
        set
            model_type = #{modelType}
        where user_id = #{userId}
    </update>
    <select id="selectDicDataByTypeAndCode" resultType="cc.mrbird.febs.mall.entity.DataDictionary">
        select * from data_dictionary a
        where a.type=#{type} and a.code=#{code}
src/main/resources/templates/febs/views/modules/chat/mallRegisterMember.html
New file
@@ -0,0 +1,76 @@
<style>
    #chat-register-member {
        padding: 20px 25px 25px 0;
    }
    #chat-register-member .layui-treeSelect .ztree li a, .ztree li span {
        margin: 0 0 2px 3px !important;
    }
    #chat-register-member #data-permission-tree-block {
        border: 1px solid #eee;
        border-radius: 2px;
        padding: 3px 0;
    }
    #chat-register-member .layui-treeSelect .ztree li span.button.switch {
        top: 1px;
        left: 3px;
    }
    #chat-register-member img{
        max-width:100px
    }
</style>
<div class="layui-fluid" id="chat-register-member">
    <form class="layui-form" action="" lay-filter="chat-register-member-form">
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">邀请码:</label>
            <div class="layui-input-block">
                <input type="text" name="inviteId" lay-verify="required" autocomplete="off" class="layui-input" readonly>
            </div>
        </div>
        <div class="layui-form-item febs-hide">
            <button class="layui-btn" lay-submit="" lay-filter="chat-register-member-form-submit" id="submit"></button>
        </div>
    </form>
</div>
<script data-th-inline="javascript">
    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () {
        var $ = layui.$,
            febs = layui.febs,
            layer = layui.layer,
            formSelects = layui.formSelects,
            treeSelect = layui.treeSelect,
            form = layui.form,
            laydate = layui.laydate,
            eleTree = layui.eleTree,
            mallRegisterMember = [[${mallRegisterMember}]],
            $view = $('#chat-register-member'),
            validate = layui.validate;
        form.render();
        laydate.render({
            elem: '#febs-form-group-date'
        });
        formSelects.render();
        initUserValue();
        function initUserValue() {
            form.val("chat-register-member-form", {
                "inviteId": mallRegisterMember.inviteId,
            });
        }
        form.on('submit(chat-register-member-form-submit)', function (data) {
            febs.post(ctx + 'admin/chat/updateRegisterMember', data.field, function () {
                layer.closeAll();
                febs.alert.success('操作成功');
                $('#febs-chat-user-list').find('#query').click();
            });
            return false;
        });
    });
</script>
src/main/resources/templates/febs/views/modules/chat/userList.html
@@ -69,6 +69,13 @@
    <input type="checkbox" value={{d.userId}} lay-text="是|否" lay-skin="switch" lay-filter="switchIsRobot">
    {{# } }}
</script>
<script type="text/html" id="switchModelType">
    {{# if(d.modelType === 1) { }}
    <input type="checkbox" value={{d.userId}} lay-text="简单模式|困难模式" checked lay-skin="switch" lay-filter="switchModelType">
    {{# } else { }}
    <input type="checkbox" value={{d.userId}} lay-text="简单模式|困难模式" lay-skin="switch" lay-filter="switchModelType">
    {{# } }}
</script>
<style>
    .layui-form-onswitch {
        background-color: #5FB878 !important;
@@ -76,7 +83,7 @@
</style>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="registerMember">添加机器人</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="registerMember">添加会员</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="balance">拨付余额</button>
    </div>
</script>
@@ -140,6 +147,7 @@
                    {field: 'avaAmount', title: '账户余额', minWidth: 80,align:'left',totalRow: '{{= parseInt(d.avaAmount) }}',align:'center'},
                    {field: 'status', title: '账号状态', templet: '#switchStatus', minWidth: 80,align:'center'},
                    {field: 'isRobot', title: '机器人', templet: '#switchIsRobot', minWidth: 80,align:'center'},
                    {field: 'modelType', title: '模式', templet: '#switchModelType', minWidth: 80,align:'center'},
                    {field: 'createTime', title: '注册时间', minWidth: 180,align:'center'},
                ]]
            });
@@ -149,11 +157,24 @@
            var data = obj.data,
                layEvent = obj.event;
            // if (layEvent === 'registerMember') {
            //     febs.get(ctx + 'admin/chat/registerMember/', null, function () {
            //         febs.alert.success('操作成功');
            //         $query.click();
            //     });
            // }
            if (layEvent === 'registerMember') {
                febs.get(ctx + 'admin/chat/registerMember/', null, function () {
                    febs.alert.success('操作成功');
                    $query.click();
                });
                var checkData = table.checkStatus('userChatTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
                }
                if (checkData.length > 1) {
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                registerMember("添加会员", checkData[0].inviteId, 1);
            }
            if (layEvent === 'balance') {
@@ -170,6 +191,18 @@
            }
        });
        function registerMember(text, inviteId, type) {
            febs.modal.open(text, 'modules/chat/mallRegisterMember/'+ inviteId, {
                btn: ['提交', '取消'],
                yes: function (index, layero) {
                    $('#chat-register-member').find('#submit').trigger('click');
                },
                btn2: function () {
                    layer.closeAll();
                }
            });
        }
        function systemPay(text, userId, type) {
            febs.modal.open(text, 'modules/chat/mallSystemPay/'+ userId, {
                btn: ['提交', '取消'],
@@ -182,6 +215,26 @@
            });
        }
        form.on('switch(switchModelType)', function (data) {
            if (data.elem.checked) {
                openModelType(data.value);
            } else {
                closeModelType(data.value);
            }
        })
        function openModelType(userId) {
            febs.get(ctx + 'admin/chat/openModelType/' + userId, null, function () {
                febs.alert.success('操作成功');
                $query.click();
            });
        }
        function closeModelType(userId) {
            febs.get(ctx + 'admin/chat/closeModelType/' + userId, null, function () {
                febs.alert.success('操作成功');
                $query.click();
            });
        }
        form.on('switch(switchStatus)', function (data) {
            if (data.elem.checked) {
                openAccount(data.value);