10 files added
18 files modified
| | |
| | | return new RabbitTemplate(connectionFactory); |
| | | } |
| | | |
| | | @Bean |
| | | public DirectExchange defaultExchange() { |
| | | return new DirectExchange(ExchangeConstants.EXCHANGE_DEFAULT); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue defaultQueue() { |
| | | return new Queue(QueueConstants.QUEUE_DEFAULT); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding defaultBind() { |
| | | return BindingBuilder.bind(defaultQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT); |
| | | } |
| | | |
| | | @Bean |
| | | public DirectExchange delayTtlExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public DirectExchange orderDelayExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue orderDelayQueue() { |
| | | return new Queue(RabbitQueueEnum.ORDER_CANCEL_DELAY.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue orderDelayQueueTtl() { |
| | | return QueueBuilder.durable(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getQueue()) |
| | | //到期后转发的交换机 |
| | | .withArgument("x-dead-letter-exchange", RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange()) |
| | | //到期后转发的路由键 |
| | | .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute()) |
| | | .build(); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding orderDelayBind() { |
| | | return BindingBuilder.bind(orderDelayQueue()).to(orderDelayExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding orderDelayBindTtl() { |
| | | return BindingBuilder.bind(orderDelayQueueTtl()).to(delayTtlExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue autoLevelUpAgentQueue() { |
| | | return new Queue(QueueConstants.AGENT_AUTO_LEVEL_UP); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding autoLevelUpBind() { |
| | | return BindingBuilder.bind(autoLevelUpAgentQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT); |
| | | } |
| | | // 订单返利 开始 |
| | | @Bean |
| | | public DirectExchange agentReturnMoneyExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.AGENT_RETURN_MONEY.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue agentReturnMoneyQueue() { |
| | | return new Queue(QueueConstants.AGENT_RETURN_MONEY); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding agentReturnMoneyBind() { |
| | | return BindingBuilder.bind(agentReturnMoneyQueue()).to(agentReturnMoneyExchange()).with(RabbitQueueEnum.AGENT_RETURN_MONEY.getRoute()); |
| | | } |
| | | // 订单返利 结束 |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange orderReturnMoneyExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ORDER_RETURN_MONEY.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue orderReturnMoneyQueue() { |
| | | return new Queue(QueueConstants.ORDER_RETURN_MONEY); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding orderReturnMoneyBind() { |
| | | return BindingBuilder.bind(orderReturnMoneyQueue()).to(orderReturnMoneyExchange()).with(RabbitQueueEnum.ORDER_RETURN_MONEY.getRoute()); |
| | | } |
| | | |
| | | } |
| | |
| | | @Getter |
| | | public enum DataDictionaryEnum { |
| | | |
| | | |
| | | /** |
| | | * 模式类型 |
| | | * 1:简单模式-正常模式 |
| | | * 2:困难模式 |
| | | */ |
| | | MODEL_TYPE("MODEL_TYPE", "MODEL_TYPE"), |
| | | //积分池设置{"everydayRatio":10,"dividEquallyRatio":1}每日订单的百分之几,增加到积分池;每日平分百分比 |
| | | SCORE_POOR_RADIO("SCORE_POOR", "SCORE_POOR_RADIO"), |
| | | |
| | |
| | | import cc.mrbird.febs.common.controller.BaseController; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.mall.dto.AdminSystemPayDto; |
| | | import cc.mrbird.febs.mall.dto.MallSystemPayDto; |
| | | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.entity.ChatUser; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.service.IAdminChatService; |
| | | import cc.mrbird.febs.mall.vo.AdminGroupInfoVo; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.validation.annotation.Validated; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 用户列表---开启 |
| | | * 是否是机器人---开启 |
| | | * |
| | | * @param userId |
| | | * @return |
| | |
| | | return iAdminChatService.openSwitchIsRobot(userId); |
| | | } |
| | | /** |
| | | * 用户列表---关闭 |
| | | * 是否是机器人---关闭 |
| | | * |
| | | * @param userId |
| | | * @return |
| | |
| | | public FebsResponse disagreeEvent(@NotNull(message = "{required}") @PathVariable String id) { |
| | | return iAdminChatService.disagreeEvent(id); |
| | | } |
| | | |
| | | @PostMapping(value = "/basicSetting") |
| | | public FebsResponse basicSetting(AdminBasicSettingDto adminBasicSettingDto) { |
| | | iAdminChatService.updateDataDic( |
| | | DataDictionaryEnum.MODEL_TYPE.getType(), |
| | | DataDictionaryEnum.MODEL_TYPE.getCode(), |
| | | adminBasicSettingDto.getModelType()); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | /** |
| | | * 会员充值 |
| | | */ |
| | | @GetMapping("groupList") |
| | | public FebsResponse groupList(ChatUser chatUser, QueryRequest request) { |
| | | Map<String, Object> data = getDataTable(iAdminChatService.getGroupList(chatUser, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | /** |
| | | * 使用机器人---开启 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping("openSwitchUseRobot/{id}") |
| | | @ControllerEndpoint(operation = "会员列表---开启", exceptionMessage = "操作失败") |
| | | public FebsResponse openSwitchUseRobot(@NotNull(message = "{required}") @PathVariable String id) { |
| | | return iAdminChatService.openSwitchUseRobot(id); |
| | | } |
| | | /** |
| | | * 使用机器人---关闭 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping("closeSwitchUseRobot/{id}") |
| | | @ControllerEndpoint(operation = "会员列表---关闭", exceptionMessage = "操作失败") |
| | | public FebsResponse closeSwitchUseRobot(@NotNull(message = "{required}") @PathVariable String id) { |
| | | return iAdminChatService.closeSwitchUseRobot(id); |
| | | } |
| | | |
| | | /** |
| | | * 群组管理-更新 |
| | | */ |
| | | @PostMapping("updateGroupInfo") |
| | | @ControllerEndpoint(operation = "新闻中心-更新", exceptionMessage = "操作失败") |
| | | public FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo) { |
| | | return iAdminChatService.updateGroupInfo(adminGroupInfoVo); |
| | | } |
| | | } |
| | |
| | | |
| | | import cc.mrbird.febs.common.controller.BaseController; |
| | | import cc.mrbird.febs.common.entity.FebsConstant; |
| | | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; |
| | | import cc.mrbird.febs.common.utils.FebsUtil; |
| | | import cc.mrbird.febs.mall.dto.AdminBasicSettingDto; |
| | | import cc.mrbird.febs.mall.dto.CashOutSettingDto; |
| | | import cc.mrbird.febs.mall.entity.DataDictionary; |
| | | import cc.mrbird.febs.mall.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.mall.entity.MallNewsInfo; |
| | | import cc.mrbird.febs.mall.mapper.ChatUserMapper; |
| | | import cc.mrbird.febs.mall.mapper.DataDictionaryMapper; |
| | | 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.MallMemberVo; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | |
| | | @Resource |
| | | private ChatUserMapper chatUserMapper; |
| | | |
| | | @Resource |
| | | private DataDictionaryMapper dataDictionaryMapper; |
| | | |
| | | /** |
| | | * 用户列表 |
| | |
| | | public String chatWithDrawList() { |
| | | return FebsUtil.view("modules/chat/chatWithDrawList"); |
| | | } |
| | | |
| | | /** |
| | | * 基础设置 |
| | | * @param model |
| | | * @return |
| | | */ |
| | | @GetMapping("basicSetting") |
| | | @RequiresPermissions("basicSetting:update") |
| | | public String cashOutSetting(Model model) { |
| | | AdminBasicSettingDto adminBasicSettingDto = new AdminBasicSettingDto(); |
| | | |
| | | DataDictionary modelTypeDic = chatUserMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.MODEL_TYPE.getType(), |
| | | DataDictionaryEnum.MODEL_TYPE.getCode()); |
| | | if (modelTypeDic != null) { |
| | | adminBasicSettingDto.setModelType(modelTypeDic.getValue()); |
| | | } |
| | | model.addAttribute("basicSet", adminBasicSettingDto); |
| | | return FebsUtil.view("modules/chat/basicSetting"); |
| | | } |
| | | |
| | | /** |
| | | * 群组管理 |
| | | * @return |
| | | */ |
| | | @GetMapping("groupList") |
| | | @RequiresPermissions("groupList:view") |
| | | public String groupList() { |
| | | return FebsUtil.view("modules/chat/groupList"); |
| | | } |
| | | |
| | | /** |
| | | * 群组管理-详情 |
| | | * @return |
| | | */ |
| | | @GetMapping("groupInfo/{id}") |
| | | @RequiresPermissions("editGroup:info") |
| | | public String groupInfo(@PathVariable long id, Model model) { |
| | | AdminGroupInfoVo data = chatUserMapper.getGroupInfoById(id); |
| | | model.addAttribute("groupInfo", data); |
| | | return FebsUtil.view("modules/chat/groupEdit"); |
| | | } |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class AdminBasicSettingDto { |
| | | /** |
| | | * 模式类型 |
| | | * 1:简单模式-正常模式 |
| | | * 2:困难模式 |
| | | */ |
| | | private String modelType; |
| | | } |
| | |
| | | package cc.mrbird.febs.mall.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | /** |
| | | * 1:充值 2:提现 3:红包 4:转账 5:创建群聊 |
New file |
| | |
| | | package cc.mrbird.febs.mall.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * 群组实体类 |
| | | * q3z3 |
| | | * </p> |
| | | */ |
| | | @Data |
| | | @TableName("chat_group") |
| | | public class ChatGroup { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | |
| | | @TableId(value = "id",type = IdType.AUTO) |
| | | private Long id; |
| | | /** |
| | | * 群名 |
| | | */ |
| | | private String name; |
| | | /** |
| | | * 公告 |
| | | */ |
| | | private String notice; |
| | | /** |
| | | * 头像 |
| | | */ |
| | | private String portrait; |
| | | /** |
| | | * 群主 |
| | | */ |
| | | private Long master; |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createTime; |
| | | /** |
| | | * 金额下限 |
| | | */ |
| | | private Integer amountMin; |
| | | /** |
| | | * 金额上限 |
| | | */ |
| | | private Integer amountMax; |
| | | /** |
| | | * 红包个数 |
| | | */ |
| | | private Integer redBagCnt; |
| | | /** |
| | | * 是否使用机器人 1:是 0:否 |
| | | */ |
| | | private Integer useRobot; |
| | | /** |
| | | * 模式类型 1:简单模式-正常模式 2:困难模式 |
| | | */ |
| | | private Integer modelType; |
| | | |
| | | } |
| | |
| | | private String address; |
| | | |
| | | @TableField(exist = false) |
| | | private String name; |
| | | |
| | | @TableField(exist = false) |
| | | private Integer state; |
| | | |
| | | |
New file |
| | |
| | | package cc.mrbird.febs.mall.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @TableName("data_dictionary") |
| | | public class DataDictionary implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | |
| | | private String type; |
| | | |
| | | private String code; |
| | | |
| | | private String value; |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createTime; |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.mapper; |
| | | |
| | | import cc.mrbird.febs.mall.entity.ChatGroup; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | |
| | | public interface ChatGroupMapper extends BaseMapper<ChatGroup> { |
| | | } |
| | |
| | | package cc.mrbird.febs.mall.mapper; |
| | | |
| | | import cc.mrbird.febs.mall.entity.ChatUser; |
| | | import cc.mrbird.febs.mall.entity.DataDictionary; |
| | | import cc.mrbird.febs.mall.entity.MemberCoinWithdraw; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | |
| | | void updateAmountFlowListByWithdrawId(@Param("id")String id, @Param("userId")String userId, @Param("state")int i); |
| | | |
| | | void updateIsRobotByUserId(@Param("userId")String userId, @Param("isRobot")int i); |
| | | |
| | | DataDictionary selectDicDataByTypeAndCode(@Param("type") String type, @Param("code") String code); |
| | | |
| | | IPage<AdminGroupVo> selectGroupListInPage(Page<AdminGroupVo> page, @Param("record")ChatUser chatUser); |
| | | |
| | | void updateIsRobotByGroupId(@Param("id")String id, @Param("useRobot")int i); |
| | | |
| | | AdminGroupInfoVo getGroupInfoById(@Param("id")long id); |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.mapper; |
| | | |
| | | import cc.mrbird.febs.mall.entity.DataDictionary; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | |
| | | public interface DataDictionaryMapper extends BaseMapper<DataDictionary> { |
| | | } |
| | |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.mall.dto.AdminSystemPayDto; |
| | | import cc.mrbird.febs.mall.entity.ChatUser; |
| | | import cc.mrbird.febs.mall.vo.AdminChatAmountFlowVo; |
| | | import cc.mrbird.febs.mall.vo.AdminChatCahrgeVo; |
| | | import cc.mrbird.febs.mall.vo.AdminChatUserVo; |
| | | import cc.mrbird.febs.mall.vo.AdminChatWithDrawVo; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | |
| | | FebsResponse openSwitchIsRobot(String userId); |
| | | |
| | | FebsResponse closeSwitchIsRobot(String userId); |
| | | |
| | | void updateDataDic(String type, String code, String modelType); |
| | | |
| | | IPage<AdminGroupVo> getGroupList(ChatUser chatUser, QueryRequest request); |
| | | |
| | | FebsResponse closeSwitchUseRobot(String id); |
| | | |
| | | FebsResponse openSwitchUseRobot(String id); |
| | | |
| | | FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo); |
| | | } |
| | |
| | | import cc.mrbird.febs.common.utils.RedisUtils; |
| | | import cc.mrbird.febs.mall.YesOrNoEnum; |
| | | import cc.mrbird.febs.mall.dto.AdminSystemPayDto; |
| | | import cc.mrbird.febs.mall.entity.ChatAmountFlow; |
| | | import cc.mrbird.febs.mall.entity.ChatUser; |
| | | import cc.mrbird.febs.mall.entity.MemberCoinWithdraw; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.ChatAmountFlowMapper; |
| | | import cc.mrbird.febs.mall.mapper.ChatGroupMapper; |
| | | import cc.mrbird.febs.mall.mapper.ChatUserMapper; |
| | | import cc.mrbird.febs.mall.mapper.DataDictionaryMapper; |
| | | import cc.mrbird.febs.mall.service.IAdminChatService; |
| | | import cc.mrbird.febs.mall.vo.AdminChatAmountFlowVo; |
| | | import cc.mrbird.febs.mall.vo.AdminChatCahrgeVo; |
| | | import cc.mrbird.febs.mall.vo.AdminChatUserVo; |
| | | import cc.mrbird.febs.mall.vo.AdminChatWithDrawVo; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | public class AdminChatServiceImpl extends ServiceImpl<ChatUserMapper, ChatUser> implements IAdminChatService { |
| | | |
| | | private final ChatAmountFlowMapper chatAmountFlowMapper; |
| | | private final DataDictionaryMapper dataDictionaryMapper; |
| | | private final ChatGroupMapper chatGroupMapper; |
| | | private final RedisUtils redisUtils; |
| | | |
| | | @Override |
| | |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public void updateDataDic(String type, String code, String modelType) { |
| | | DataDictionary dic = this.baseMapper.selectDicDataByTypeAndCode(type, code); |
| | | if (dic != null) { |
| | | dic.setValue(modelType); |
| | | dataDictionaryMapper.updateById(dic); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminGroupVo> getGroupList(ChatUser chatUser, QueryRequest request) { |
| | | Page<AdminGroupVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | return this.baseMapper.selectGroupListInPage(page, chatUser); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse closeSwitchUseRobot(String id) { |
| | | this.baseMapper.updateIsRobotByGroupId(id,0); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse openSwitchUseRobot(String id) { |
| | | this.baseMapper.updateIsRobotByGroupId(id,1); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo) { |
| | | ChatGroup chatGroup = chatGroupMapper.selectById(adminGroupInfoVo.getId()); |
| | | if(ObjectUtil.isEmpty(chatGroup)) { |
| | | return new FebsResponse().fail().message("信息不存在"); |
| | | } |
| | | chatGroup.setAmountMin(adminGroupInfoVo.getAmountMin()); |
| | | chatGroup.setAmountMax(adminGroupInfoVo.getAmountMax()); |
| | | chatGroup.setRedBagCnt(adminGroupInfoVo.getRedBagCnt()); |
| | | chatGroup.setModelType(adminGroupInfoVo.getModelType()); |
| | | chatGroupMapper.updateById(chatGroup); |
| | | return new FebsResponse().success(); |
| | | } |
| | | } |
| | |
| | | } |
| | | this.baseMapper.updateById(orderInfo); |
| | | |
| | | agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L); |
| | | return orderInfo.getId(); |
| | | } |
| | | |
| | |
| | | |
| | | commonService.addAchieveAndUpdateLevel(orderInfo.getId(),orderInfo.getMemberId()); |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); |
| | | agentProducer.sendAutoLevelUpMsg(member.getId()); |
| | | // agentProducer.sendOrderReturn(orderInfo.getId()); |
| | | agentProducer.sendReturnMoneyMsg(orderInfo.getId()); |
| | | break; |
| | | case "4": |
| | | if (orderInfo.getOrderType() != 2) { |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | @Data |
| | | public class AdminGroupInfoVo { |
| | | |
| | | private Long id; |
| | | |
| | | private String name; |
| | | |
| | | private String phone; |
| | | |
| | | private String nickName; |
| | | |
| | | /** |
| | | * 是否使用机器人 1:是 0:否 |
| | | */ |
| | | private Integer useRobot; |
| | | /** |
| | | * 金额下限 |
| | | */ |
| | | private Integer amountMin; |
| | | /** |
| | | * 金额上限 |
| | | */ |
| | | private Integer amountMax; |
| | | /** |
| | | * 红包个数 |
| | | */ |
| | | private Integer redBagCnt; |
| | | /** |
| | | * 模式类型 1:简单模式-正常模式 2:困难模式 |
| | | */ |
| | | private Integer modelType; |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class AdminGroupVo { |
| | | |
| | | private Long id; |
| | | |
| | | private String name; |
| | | |
| | | private String phone; |
| | | |
| | | private String nickName; |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createTime; |
| | | /** |
| | | * 是否使用机器人 1:是 0:否 |
| | | */ |
| | | private Integer useRobot; |
| | | /** |
| | | * 金额下限 |
| | | */ |
| | | private Integer amountMin; |
| | | /** |
| | | * 金额上限 |
| | | */ |
| | | private Integer amountMax; |
| | | /** |
| | | * 红包个数 |
| | | */ |
| | | private Integer redBagCnt; |
| | | /** |
| | | * 模式类型 1:简单模式-正常模式 2:困难模式 |
| | | */ |
| | | private Integer modelType; |
| | | } |
| | |
| | | } |
| | | |
| | | mallMoneyFlowService.addMoneyFlow(mallMember.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); |
| | | agentProducer.sendAutoLevelUpMsg(mallMember.getId()); |
| | | agentProducer.sendOrderReturn(orderInfo.getId()); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | mallMoneyFlowService.addMoneyFlow(mallMember.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); |
| | | agentProducer.sendAutoLevelUpMsg(mallMember.getId()); |
| | | agentProducer.sendOrderReturn(orderInfo.getId()); |
| | | } |
| | | } |
| | | } |
| | |
| | | orderInfoMapper.updateById(orderInfo); |
| | | |
| | | // agentProducer.sendReturnMoneyMsg(orderInfo.getId()); |
| | | agentProducer.sendAutoLevelUpMsg(orderInfo.getMemberId()); |
| | | |
| | | // memberService.addMoneyFlow(orderInfo.getMemberId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), null, null, null, null, FlowTypeEnum.BALANCE.getValue()); |
| | | } |
| | |
| | | |
| | | commonService.addAchieveAndUpdateLevel(orderInfo.getId(),orderInfo.getMemberId()); |
| | | mallMoneyFlowService.addMoneyFlow(orderInfo.getMemberId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.WX.getValue()); |
| | | agentProducer.sendAutoLevelUpMsg(orderInfo.getMemberId()); |
| | | agentProducer.sendReturnMoneyMsg(orderInfo.getId()); |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | @Autowired |
| | | private IApiMallOrderInfoService orderInfoService; |
| | | @Autowired |
| | | private IAgentService agentService; |
| | | @Autowired |
| | | private IMemberProfitService memberProfitService; |
| | | |
| | | // @RabbitListener(queues = QueueConstants.QUEUE_DEFAULT) |
| | | // public void agentReturn(Message message, Channel channel) { |
| | | // log.info("消费者:{}", new String(message.getBody())); |
| | | // } |
| | | |
| | | @RabbitListener(queues = "queue_h_order_delay") |
| | | public void orderCancelDelay(String id) { |
| | |
| | | log.error("订单超时支付异常", e); |
| | | } |
| | | } |
| | | |
| | | @RabbitListener(queues = QueueConstants.AGENT_AUTO_LEVEL_UP) |
| | | public void agentAutoLevelUp(String id) { |
| | | log.info("收到代理自动升级消息:{}", id); |
| | | try { |
| | | agentService.autoUpAgentLevel(Long.parseLong(id)); |
| | | } catch (Exception e) { |
| | | log.error("代理自动升级异常", e); |
| | | } |
| | | } |
| | | |
| | | @RabbitListener(queues = QueueConstants.AGENT_RETURN_MONEY) |
| | | public void agentReturnMoney(String orderId) { |
| | | log.info("收到返利消息:{}", orderId); |
| | | try { |
| | | agentService.returnMoneyToAgent(Long.parseLong(orderId)); |
| | | } catch (Exception e) { |
| | | log.error("返利异常", e); |
| | | } |
| | | } |
| | | |
| | | // @RabbitListener(queues = QueueConstants.ORDER_RETURN_MONEY) |
| | | // public void orderReturnMoney(String orderId) { |
| | | // log.info("收到订单返利消息:{}", orderId); |
| | | // try { |
| | | // memberProfitService.dynamicProfit(Long.parseLong(orderId)); |
| | | // } catch (Exception e) { |
| | | // log.error("订单返利异常:", e); |
| | | // } |
| | | // } |
| | | } |
| | |
| | | @Getter |
| | | public enum RabbitQueueEnum { |
| | | |
| | | DEFAULT("exchange_h_default", "route_key_h_default", "queue_h_default"), |
| | | |
| | | ORDER_CANCEL_DELAY_TTL("exchange_h_order_delay_ttl", "route_key_h_order_delay_ttl", "queue_h_order_delay_ttl"), |
| | | ORDER_CANCEL_DELAY("exchange_h_order_delay", "route_key_h_order_delay", "queue_h_order_delay"), |
| | | |
| | | AGENT_RETURN_MONEY("exchange_h_agent_return_money", "route_key_h_agent_return_money", "queue_h_agent_return_money"), |
| | | |
| | | ORDER_RETURN_MONEY("exchange_h_order_return_money", "route_key_h_order_return_money", "queue_h_order_return_money"); |
| | | |
| | | private String exchange; |
| | |
| | | |
| | | } |
| | | |
| | | public void sendOrderReturn(Long id) { |
| | | log.info("发送消息:{}", id); |
| | | CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); |
| | | rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_RETURN_MONEY.getExchange(), RabbitQueueEnum.ORDER_RETURN_MONEY.getRoute(), id, correlationData); |
| | | } |
| | | |
| | | public void sendOrderCancelDelayMsg(Long id, Long times) { |
| | | log.info("发送自动取消订单消息:{}, {}", id, times); |
| | | rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getExchange(), RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute(), id, new MessagePostProcessor() { |
| | | @Override |
| | | public Message postProcessMessage(Message message) throws AmqpException { |
| | | message.getMessageProperties().setExpiration(String.valueOf(times)); |
| | | return message; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 发送代理自动升级消息 |
| | | * |
| | | * @param memberId |
| | | */ |
| | | public void sendAutoLevelUpMsg(@NotNull Long memberId) { |
| | | log.info("发送代理自动升级消息:{}", memberId); |
| | | rabbitTemplate.convertAndSend(ExchangeConstants.EXCHANGE_DEFAULT, RouteKeyConstants.ROUTE_KEY_DEFAULT, memberId); |
| | | } |
| | | |
| | | public void sendReturnMoneyMsg(Long orderId) { |
| | | log.info("发送返利消息:{}", orderId); |
| | | rabbitTemplate.convertAndSend(RabbitQueueEnum.AGENT_RETURN_MONEY.getExchange(), RabbitQueueEnum.AGENT_RETURN_MONEY.getRoute(), orderId); |
| | | } |
| | | } |
| | |
| | | datasource: |
| | | dynamic: |
| | | # 是否开启 SQL日志输出,生产环境建议关闭,有性能损耗 |
| | | p6spy: false |
| | | p6spy: true |
| | | hikari: |
| | | connection-timeout: 30000 |
| | | max-lifetime: 1800000 |
| | |
| | | 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} |
| | | </select> |
| | | |
| | | <select id="selectGroupListInPage" resultType="cc.mrbird.febs.mall.vo.AdminGroupVo"> |
| | | select |
| | | a.id id, |
| | | a.use_robot useRobot, |
| | | a.name name, |
| | | a.model_type modelType, |
| | | a.amount_min amountMin, |
| | | a.amount_max amountMax, |
| | | a.red_bag_cnt redBagCnt, |
| | | b.phone phone, |
| | | b.nick_name nickName, |
| | | a.create_time createTime |
| | | from chat_group a |
| | | left join chat_user b on b.user_id = a.master |
| | | <where> |
| | | <if test="record != null"> |
| | | <if test="record.name != null and record.name != ''"> |
| | | and a.name like CONCAT('%', CONCAT(#{record.name}, '%')) |
| | | </if> |
| | | </if> |
| | | </where> |
| | | order by a.create_time desc |
| | | </select> |
| | | |
| | | <update id="updateIsRobotByGroupId"> |
| | | update chat_group |
| | | set |
| | | use_robot = #{useRobot} |
| | | where id = #{id} |
| | | </update> |
| | | |
| | | <select id="getGroupInfoById" resultType="cc.mrbird.febs.mall.vo.AdminGroupInfoVo"> |
| | | select |
| | | a.id id, |
| | | a.name name, |
| | | b.phone phone, |
| | | a.model_type modelType, |
| | | b.nick_name nickName, |
| | | a.use_robot useRobot, |
| | | a.amount_min amountMin, |
| | | a.amount_max amountMax, |
| | | a.red_bag_cnt redBagCnt |
| | | from chat_group a |
| | | left join chat_user b on b.user_id = a.master |
| | | where id = #{id} |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="basic-setting" lay-title="基础设置"> |
| | | <div class="layui-row layui-col-space8 febs-container"> |
| | | <form class="layui-form" action="" lay-filter="basic-setting-form"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <blockquote class="layui-elem-quote blue-border">模式设置</blockquote> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">模式:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="radio" name="modelType" value="1" title="简单模式"> |
| | | <input type="radio" name="modelType" value="2" title="困难模式"> |
| | | </div> |
| | | <div class="layui-word-aux" style="margin-left: 150px;">简单模式-正常模式</div> |
| | | <div class="layui-word-aux" style="margin-left: 150px;">困难模式</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-card-footer"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="basic-setting-form-submit" id="submit">保存</button> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | <style> |
| | | .layui-form-label { |
| | | width: 120px; |
| | | } |
| | | |
| | | .layui-form-item .layui-input-block { |
| | | margin-left: 150px; |
| | | } |
| | | |
| | | .layui-table-form .layui-form-item { |
| | | margin-bottom: 20px !important; |
| | | } |
| | | </style> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | basicSet = [[${basicSet}]], |
| | | validate = layui.validate, |
| | | $view = $('#basic-setting'); |
| | | |
| | | |
| | | form.verify({ |
| | | integer: [ |
| | | /^[1-9]\d*$/ |
| | | , '只能输入正整数' |
| | | ] |
| | | }); |
| | | |
| | | initBasicSetValue(); |
| | | |
| | | form.render(); |
| | | |
| | | function initBasicSetValue() { |
| | | form.val("basic-setting-form", { |
| | | "modelType": basicSet.modelType, |
| | | }); |
| | | } |
| | | |
| | | form.on('submit(basic-setting-form-submit)', function (data) { |
| | | febs.post(ctx + 'admin/chat/basicSetting', data.field, function (res) { |
| | | febs.alert.success('设置成功'); |
| | | }); |
| | | window.location.reload(); |
| | | return false; |
| | | }); |
| | | }); |
| | | </script> |
New file |
| | |
| | | <style> |
| | | #febs-group-edit { |
| | | padding: 20px 25px 25px 0; |
| | | } |
| | | |
| | | #febs-group-edit .layui-treeSelect .ztree li a, .ztree li span { |
| | | margin: 0 0 2px 3px !important; |
| | | } |
| | | #febs-group-edit #data-permission-tree-block { |
| | | border: 1px solid #eee; |
| | | border-radius: 2px; |
| | | padding: 3px 0; |
| | | } |
| | | #febs-group-edit .layui-treeSelect .ztree li span.button.switch { |
| | | top: 1px; |
| | | left: 3px; |
| | | } |
| | | #febs-group-edit img{ |
| | | max-width:100px |
| | | } |
| | | |
| | | </style> |
| | | <div class="layui-fluid" id="febs-group-edit"> |
| | | <form class="layui-form" action="" lay-filter="febs-group-edit-form"> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">id:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="id" data-th-value="${groupInfo.id}"> |
| | | </div> |
| | | </div> |
| | | <blockquote class="layui-elem-quote blue-border">基本信息</blockquote> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">群主昵称:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="phone" autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">群主账号:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="nickName" autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">名称:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="name" autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <blockquote class="layui-elem-quote blue-border">群设置</blockquote> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">最小金额:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="amountMin" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">最大金额:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="amountMax" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">每轮人数:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="redBagCnt" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | <div class="layui-word-aux" style="margin-left: 150px;">设置为7,则每次红包可以有7个人抢。</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label">模式:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="radio" name="modelType" value="1" title="简单模式" checked=""> |
| | | <input type="radio" name="modelType" value="2" title="困难模式" > |
| | | </div> |
| | | <div class="layui-word-aux" style="margin-left: 150px;">困难模式,红包中只有一个不会中雷。</div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div class="layui-form-item febs-hide"> |
| | | <button class="layui-btn" lay-submit="" lay-filter="febs-group-edit-form-submit" id="submit"></button> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <script data-th-inline="javascript"> |
| | | layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','layedit', 'laydate', 'upload'], function () { |
| | | var $ = layui.$, |
| | | febs = layui.febs, |
| | | layer = layui.layer, |
| | | upload = layui.upload, |
| | | formSelects = layui.formSelects, |
| | | form = layui.form, |
| | | laydate = layui.laydate, |
| | | layedit = layui.layedit, |
| | | groupInfo = [[${groupInfo}]], |
| | | $view = $('#febs-group-edit'); |
| | | |
| | | initGroupInfoValue(); |
| | | |
| | | form.render(); |
| | | |
| | | formSelects.render(); |
| | | form.on('submit(febs-group-edit-form-submit)', function (data) { |
| | | febs.post(ctx + 'admin/chat/updateGroupInfo', data.field, function () { |
| | | layer.closeAll(); |
| | | febs.alert.success('操作成功'); |
| | | $('#febs-group-list').find('#reset').click(); |
| | | }); |
| | | return false; |
| | | }); |
| | | |
| | | function initGroupInfoValue() { |
| | | form.val("febs-group-edit-form", { |
| | | "id": groupInfo.id, |
| | | "name": groupInfo.name, |
| | | "phone": groupInfo.phone, |
| | | "nickName": groupInfo.nickName, |
| | | "amountMin": groupInfo.amountMin, |
| | | "amountMax": groupInfo.amountMax, |
| | | "redBagCnt": groupInfo.redBagCnt, |
| | | "modelType": groupInfo.modelType, |
| | | }); |
| | | } |
| | | }); |
| | | </script> |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-group-list" lay-title="群组管理"> |
| | | <div class="layui-row febs-container"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body febs-table-full"> |
| | | <form class="layui-form layui-table-form" lay-filter="group-table-form"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">群组名称:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="群组名称" name="name" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | <table lay-filter="groupTable" lay-data="{id: 'groupTable'}"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!--1:成功 2:失败 3:进行中--> |
| | | <script type="text/html" id="status-type"> |
| | | {{# |
| | | var status = { |
| | | 1: {title: '-', color: ''}, |
| | | 2: {title: '成功', color: 'green'}, |
| | | 3: {title: '进行中', color: 'orange'}, |
| | | }[d.status]; |
| | | }} |
| | | <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span> |
| | | </script> |
| | | <script type="text/html" id="switchUseRobot"> |
| | | {{# if(d.useRobot === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchUseRobot"> |
| | | {{# } else { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchUseRobot"> |
| | | {{# } }} |
| | | </script> |
| | | <script type="text/html" id="isModelType"> |
| | | {{# if(d.modelType === 1) { }} |
| | | <span>简单模式</span> |
| | | {{# } else { }} |
| | | <span>困难模式</span> |
| | | {{# } }} |
| | | </script> |
| | | <style> |
| | | .layui-form-onswitch { |
| | | background-color: #5FB878 !important; |
| | | } |
| | | </style> |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | // 引入组件并初始化 |
| | | layui.use([ 'jquery', 'form', 'table', 'febs'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | $view = $('#febs-group-list'), |
| | | $query = $view.find('#query'), |
| | | $reset = $view.find('#reset'), |
| | | $searchForm = $view.find('form'), |
| | | sortObject = {field: 'phone', type: null}, |
| | | tableIns; |
| | | |
| | | form.render(); |
| | | |
| | | // 表格初始化 |
| | | initTable(); |
| | | table.on('tool(groupTable)', function (obj) { |
| | | var data = obj.data, |
| | | layEvent = obj.event; |
| | | if (layEvent === 'editGroup') { |
| | | febs.modal.open('编辑', 'modules/chat/groupInfo/' + data.id, { |
| | | btn: ['提交', '取消'], |
| | | // area:['100%','100%'], |
| | | yes: function (index, layero) { |
| | | $('#febs-group-edit').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 查询按钮 |
| | | $query.on('click', function () { |
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); |
| | | tableIns.reload({where: params, page: {curr: 1}}); |
| | | }); |
| | | |
| | | // 刷新按钮 |
| | | $reset.on('click', function () { |
| | | $searchForm[0].reset(); |
| | | sortObject.type = 'null'; |
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); |
| | | }); |
| | | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | return { |
| | | name: $searchForm.find('input[name="name"]').val().trim(), |
| | | }; |
| | | } |
| | | |
| | | function initTable() { |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'groupTable', |
| | | url: ctx + 'admin/chat/groupList', |
| | | cols: [[ |
| | | {field: 'id', title: '编号', minWidth: 100,align:'center'}, |
| | | {field: 'name', title: '名称', minWidth: 150,align:'center'}, |
| | | {field: 'nickName', title: '群主昵称', minWidth: 150,align:'center'}, |
| | | {field: 'phone', title: '群主电话', minWidth: 150,align:'center'}, |
| | | {field: 'amountMin', title: '上限', minWidth: 100,align:'center'}, |
| | | {field: 'amountMax', title: '下限', minWidth: 100,align:'center'}, |
| | | {field: 'redBagCnt', title: '红包个数', minWidth: 100,align:'center'}, |
| | | {field: 'useRobot', title: '使用机器人', templet: '#switchUseRobot', minWidth: 80,align:'center'}, |
| | | {templet:"#isModelType", title: '模式', minWidth: 150,align:'center'}, |
| | | {field: 'createTime', title: '创建时间', minWidth: 180,align:'center'}, |
| | | {title: '操作', |
| | | templet: function (d) { |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-btn-success" lay-event="editGroup" shiro:hasPermission="editGroup:info">编辑</button>' |
| | | },minWidth: 150,align:'center'} |
| | | ]] |
| | | }); |
| | | } |
| | | form.on('switch(switchUseRobot)', function (data) { |
| | | if (data.elem.checked) { |
| | | openSwitchUseRobot(data.value); |
| | | } else { |
| | | closeSwitchUseRobot(data.value); |
| | | } |
| | | }) |
| | | function openSwitchUseRobot(id) { |
| | | febs.get(ctx + 'admin/chat/openSwitchUseRobot/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | function closeSwitchUseRobot(id) { |
| | | febs.get(ctx + 'admin/chat/closeSwitchUseRobot/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | </script> |