10 files modified
2 files added
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | public FebsResponse registerMember() { |
| | | return iAdminChatService.registerMember(); |
| | | } |
| | | |
| | | /** |
| | | * 用户列表-添加会员 |
| | | */ |
| | | @PostMapping("updateRegisterMember") |
| | | @ControllerEndpoint(operation = "会员列表-添加会员", exceptionMessage = "操作失败") |
| | | public FebsResponse updateRegisterMember(@Valid AdminRegisterMemberVo adminRegisterMemberVo) { |
| | | return iAdminChatService.updateRegisterMember(adminRegisterMemberVo); |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 用户列表-系统拨付 |
| | | * @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) { |
| | |
| | | |
| | | @TableField(exist = false) |
| | | private Integer state; |
| | | /** |
| | | * 模式类型 1:简单模式-正常模式 2:困难模式 |
| | | */ |
| | | private Integer modelType; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | 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); |
| | |
| | | FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo); |
| | | |
| | | FebsResponse registerMember(); |
| | | |
| | | FebsResponse openModelType(String userId); |
| | | |
| | | FebsResponse closeModelType(String userId); |
| | | |
| | | FebsResponse updateRegisterMember(AdminRegisterMemberVo adminRegisterMemberVo); |
| | | } |
| | |
| | | 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(); |
| | | } |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class AdminRegisterMemberVo { |
| | | |
| | | private String inviteId; |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 添加机器人 |
| | | * 添加会员 |
| | | */ |
| | | 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(), |
| | |
| | | server: |
| | | port: 8098 |
| | | port: 8095 |
| | | tomcat: |
| | | uri-encoding: utf-8 |
| | | |
| | |
| | | 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, |
| | |
| | | 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} |
New file |
| | |
| | | <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> |
| | |
| | | <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; |
| | |
| | | </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> |
| | |
| | | {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'}, |
| | | ]] |
| | | }); |
| | |
| | | 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') { |
| | |
| | | } |
| | | }); |
| | | |
| | | 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: ['提交', '取消'], |
| | |
| | | }); |
| | | } |
| | | |
| | | 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); |