From ea9c9f47bbd3b722e4b2fd215d38fbd86e8b4969 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 12 Jun 2020 18:00:36 +0800
Subject: [PATCH] modify
---
src/main/resources/templates/febs/views/modules/agent/agent.html | 77 +++++++-----------
src/main/java/com/xcong/excoin/modules/agent/pojo/AgentUser.java | 7 +
src/main/java/com/xcong/excoin/modules/agent/entity/AgentFriendRelationEntity.java | 2
src/main/java/com/xcong/excoin/modules/agent/service/IAgentService.java | 4 +
src/main/resources/mapper/modules/AgentFriendRelationMapper.xml | 4 +
src/main/resources/mapper/system/UserMapper.xml | 19 ++++
src/main/java/com/xcong/excoin/modules/agent/mapper/AgentFriendRelationMapper.java | 3
src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java | 44 ++++++++++
src/main/java/com/xcong/excoin/modules/agent/controller/AgentController.java | 29 ++++++-
9 files changed, 131 insertions(+), 58 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/agent/controller/AgentController.java b/src/main/java/com/xcong/excoin/modules/agent/controller/AgentController.java
index ddeacb2..62d1c14 100644
--- a/src/main/java/com/xcong/excoin/modules/agent/controller/AgentController.java
+++ b/src/main/java/com/xcong/excoin/modules/agent/controller/AgentController.java
@@ -1,5 +1,7 @@
package com.xcong.excoin.modules.agent.controller;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xcong.excoin.common.annotation.ControllerEndpoint;
import com.xcong.excoin.common.controller.BaseController;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
@@ -10,12 +12,11 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
import java.util.Map;
/**
@@ -34,15 +35,35 @@
@GetMapping("getList")
@RequiresPermissions("agent:view")
public FebsResponse getList(AgentUser agentUser, QueryRequest queryRequest) {
+ User user = getCurrentUser();
+ agentUser.setRefererId(user.getInviteId());
Map<String, Object> map = getDataTable(agentService.findAgentList(agentUser, queryRequest));
return new FebsResponse().success().data(map);
}
@PostMapping("add")
@RequiresPermissions("agent:add")
+ @ControllerEndpoint(operation = "新增代理商", exceptionMessage = "新增代理商失败")
public FebsResponse add(@Valid AgentUser agentUser) {
User user = getCurrentUser();
agentService.addAgent(agentUser, user);
return new FebsResponse().success();
}
+
+ @GetMapping("del/{ids}")
+ @RequiresPermissions("agent:del")
+ @ControllerEndpoint(operation = "删除代理商", exceptionMessage = "删除代理商失败")
+ public FebsResponse del(@NotBlank(message = "{required}") @PathVariable("ids") String ids) {
+ String[] idsArr = ids.split(StringPool.COMMA);
+ agentService.delAgent(idsArr);
+ return new FebsResponse().success();
+ }
+
+ @PostMapping("reset/{id}")
+ @RequiresPermissions("agent:password:reset")
+ @ControllerEndpoint(operation = "重置密码", exceptionMessage = "重置密码失败")
+ public FebsResponse reset(@NotNull(message = "{required}") @PathVariable("id") Long id) {
+ agentService.resetPwd(id);
+ return new FebsResponse().success();
+ }
}
diff --git a/src/main/java/com/xcong/excoin/modules/agent/entity/AgentFriendRelationEntity.java b/src/main/java/com/xcong/excoin/modules/agent/entity/AgentFriendRelationEntity.java
index b690032..2f8f68b 100644
--- a/src/main/java/com/xcong/excoin/modules/agent/entity/AgentFriendRelationEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/agent/entity/AgentFriendRelationEntity.java
@@ -54,7 +54,7 @@
/**
* 代理层级
*/
- private Integer leverId;
+ private Integer levelId;
/**
* 手续费是否设置自己
diff --git a/src/main/java/com/xcong/excoin/modules/agent/mapper/AgentFriendRelationMapper.java b/src/main/java/com/xcong/excoin/modules/agent/mapper/AgentFriendRelationMapper.java
index 38b4369..6e2bb7c 100644
--- a/src/main/java/com/xcong/excoin/modules/agent/mapper/AgentFriendRelationMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/agent/mapper/AgentFriendRelationMapper.java
@@ -3,9 +3,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xcong.excoin.modules.agent.entity.AgentFriendRelationEntity;
+import org.apache.ibatis.annotations.Param;
/**
* @author helius
*/
public interface AgentFriendRelationMapper extends BaseMapper<AgentFriendRelationEntity> {
+
+ AgentFriendRelationEntity selectAgentFriendRelationByUserId(@Param("userId") Long userId);
}
diff --git a/src/main/java/com/xcong/excoin/modules/agent/pojo/AgentUser.java b/src/main/java/com/xcong/excoin/modules/agent/pojo/AgentUser.java
index cc6d289..adc0765 100644
--- a/src/main/java/com/xcong/excoin/modules/agent/pojo/AgentUser.java
+++ b/src/main/java/com/xcong/excoin/modules/agent/pojo/AgentUser.java
@@ -51,7 +51,7 @@
/**
* 上级邀请码
*/
- private String referId;
+ private String refererId;
/**
* 发展代理数
@@ -89,4 +89,9 @@
*/
private Date createTime;
+ /**
+ * 实名状态
+ */
+ private Integer certifyStatus;
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/agent/service/IAgentService.java b/src/main/java/com/xcong/excoin/modules/agent/service/IAgentService.java
index 330391d..0e92366 100644
--- a/src/main/java/com/xcong/excoin/modules/agent/service/IAgentService.java
+++ b/src/main/java/com/xcong/excoin/modules/agent/service/IAgentService.java
@@ -13,4 +13,8 @@
IPage<AgentUser> findAgentList(AgentUser agentUser, QueryRequest request);
void addAgent(AgentUser agentUser, User user);
+
+ void delAgent(String[] ids);
+
+ void resetPwd(Long id);
}
diff --git a/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java b/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java
index c54e672..7dfc27a 100644
--- a/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/agent/service/impl/AgentServiceImpl.java
@@ -1,5 +1,6 @@
package com.xcong.excoin.modules.agent.service.impl;
+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.xcong.excoin.common.entity.FebsConstant;
@@ -13,12 +14,17 @@
import com.xcong.excoin.modules.agent.pojo.AgentUser;
import com.xcong.excoin.modules.agent.service.IAgentService;
import com.xcong.excoin.system.entity.User;
+import com.xcong.excoin.system.entity.UserRole;
import com.xcong.excoin.system.mapper.UserMapper;
+import com.xcong.excoin.system.mapper.UserRoleMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.Arrays;
import java.util.Date;
+import java.util.List;
/**
* @author wzy
@@ -33,6 +39,8 @@
private final MemberMapper memberMapper;
+ private final UserRoleMapper userRoleMapper;
+
private final AgentFriendRelationMapper agentFriendRelationMapper;
@Override
@@ -41,14 +49,22 @@
return userMapper.selectAgentUserList(page, agentUser);
}
+ @Transactional(rollbackFor = Exception.class)
@Override
public void addAgent(AgentUser agentUser, User user) {
AgentFriendRelationEntity agentFriendRelation = new AgentFriendRelationEntity();
String refererId = "";
+ int level = 0;
if (FebsConstant.USER_TYPE_ADMIN.equals(user.getType())) {
refererId = FebsConstant.DEFAULT_REFERER_ID;
+ level = 1;
} else {
refererId = user.getInviteId();
+ AgentFriendRelationEntity friendRelationEntity = agentFriendRelationMapper.selectAgentFriendRelationByUserId(user.getUserId());
+ if (agentUser.getReturnRatio().compareTo(friendRelationEntity.getReturnRatio()) > 0) {
+ throw new FebsException("返佣比例需小于自己的返佣比例");
+ }
+ level++;
}
MemberEntity memberEntity = memberMapper.selectMemberByInviteIdAndRefererId(agentUser.getInviteId(), refererId);
if (memberEntity == null) {
@@ -71,19 +87,41 @@
addUser.setCreateTime(new Date());
addUser.setInviteId(agentUser.getInviteId());
addUser.setAgentName(agentUser.getName());
- addUser.setPassword(Md5Util.encrypt(user.getUsername(), User.DEFAULT_PASSWORD));
- userMapper.insert(user);
+ addUser.setPassword(Md5Util.encrypt(addUser.getUsername(), User.DEFAULT_PASSWORD));
+ userMapper.insert(addUser);
+
+ UserRole userRole = new UserRole();
+ userRole.setUserId(addUser.getUserId());
+ userRole.setRoleId(83L);
+ userRoleMapper.insert(userRole);
agentFriendRelation.setInviteId(agentUser.getInviteId());
agentFriendRelation.setRefererId(refererId);
agentFriendRelation.setRefererIds(memberEntity.getRefererIds());
agentFriendRelation.setMemberId(memberEntity.getId());
agentFriendRelation.setReturnRatio(agentUser.getReturnRatio());
- agentFriendRelation.setUserId(user.getUserId());
+ agentFriendRelation.setUserId(addUser.getUserId());
agentFriendRelation.setCreateBy(user.getUsername());
agentFriendRelation.setCreateTime(new Date());
agentFriendRelation.setUpdateBy(user.getUsername());
agentFriendRelation.setUpdateTime(new Date());
+ agentFriendRelation.setLevelId(level);
+ agentFriendRelation.setFeeIsSelf(2);
agentFriendRelationMapper.insert(agentFriendRelation);
}
+
+ @Override
+ public void delAgent(String[] ids) {
+ List<String> list = Arrays.asList(ids);
+ userMapper.deleteBatchIds(list);
+ agentFriendRelationMapper.delete(new QueryWrapper<AgentFriendRelationEntity>().lambda().in(AgentFriendRelationEntity::getUserId, list));
+ userRoleMapper.delete(new QueryWrapper<UserRole>().lambda().in(UserRole::getUserId, list));
+ }
+
+ @Override
+ public void resetPwd(Long id) {
+ User user = userMapper.selectById(id);
+ user.setPassword(Md5Util.encrypt(user.getUsername(), User.DEFAULT_PASSWORD));
+ userMapper.updateById(user);
+ }
}
diff --git a/src/main/resources/mapper/modules/AgentFriendRelationMapper.xml b/src/main/resources/mapper/modules/AgentFriendRelationMapper.xml
index a86b18c..68a1891 100644
--- a/src/main/resources/mapper/modules/AgentFriendRelationMapper.xml
+++ b/src/main/resources/mapper/modules/AgentFriendRelationMapper.xml
@@ -2,4 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.agent.mapper.AgentFriendRelationMapper">
+ <select id="selectAgentFriendRelationByUserId" resultType="com.xcong.excoin.modules.agent.entity.AgentFriendRelationEntity">
+ select * from agent_friend_relation
+ where user_id=#{userId}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/system/UserMapper.xml b/src/main/resources/mapper/system/UserMapper.xml
index 363a17d..96e72c1 100644
--- a/src/main/resources/mapper/system/UserMapper.xml
+++ b/src/main/resources/mapper/system/UserMapper.xml
@@ -94,7 +94,7 @@
u.invite_id,
u.system,
u.type,
- u.agent_name,
+ u.agent_name
</sql>
<select id="countUserDetail" parameterType="user" resultType="long">
@@ -167,13 +167,26 @@
</select>
<select id="selectAgentUserList" resultType="com.xcong.excoin.modules.agent.pojo.AgentUser">
- select *
+ select
+ a.user_id id,
+ a.username account,
+ a.agent_name name,
+ a.invite_id,
+ a.create_time,
+ a.status,
+ b.return_ratio,
+ c.phone telphone,
+ c.email,
+ c.referer_id refererId,
+ c.certify_status
from t_user a
inner join agent_friend_relation b on a.user_id = b.user_id
inner join member c on b.member_id = c.id
<if test="record != null">
<where>
-
+ <if test="record.refererId!=null and record.refererId!=''">
+ find_in_set(#{record.refererId}, b.referer_ids)
+ </if>
</where>
</if>
</select>
diff --git a/src/main/resources/templates/febs/views/modules/agent/agent.html b/src/main/resources/templates/febs/views/modules/agent/agent.html
index db21149..ab44fdd 100644
--- a/src/main/resources/templates/febs/views/modules/agent/agent.html
+++ b/src/main/resources/templates/febs/views/modules/agent/agent.html
@@ -60,7 +60,7 @@
<i class="layui-icon"></i>
</div>
<div class="layui-btn layui-btn-sm layui-btn-primary table-action action-more"
- shiro:hasAnyPermissions="user:add,user:update,user:password:reset,user:export">
+ shiro:hasAnyPermissions="agent:add,agent:edit">
<i class="layui-icon"></i>
</div>
</div>
@@ -76,10 +76,10 @@
<script type="text/html" id="certify-status">
{{#
var certifyStatus = {
- 0: {title: '未通过', color: 'red'},
- 1: {title: '审核中', color: 'blue'},
+ 0: {title: '未实名', color: 'blue'},
+ 1: {title: '未实名', color: 'blue'},
2: {title: '审核通过', color: 'green'},
- 3: {title: '未实名', color: 'cyan'}
+ 3: {title: '未实名', color: 'blue'}
}[d.certifyStatus];
}}
<span class="layui-badge febs-tag-{{certifyStatus.color}}">{{ certifyStatus.title }}</span>
@@ -97,14 +97,12 @@
<!-- 表格操作栏 start -->
<script type="text/html" id="user-option">
- <span shiro:lacksPermission="agent:view,agent:edit,agent:del">
+ <span shiro:lacksPermission="agent:edit,agent:del">
<span class="layui-badge-dot febs-bg-orange"></span> 无权限
</span>
- <a lay-event="detail" shiro:hasPermission="agent:view"><i
- class="layui-icon febs-edit-area febs-green"></i></a>
- <a lay-event="edit" shiro:hasPermission="agent:edit"><i
- class="layui-icon febs-edit-area febs-blue"></i></a>
- <a lay-event="del" shiro:hasPermission="agent:del"><i class="layui-icon febs-edit-area febs-red"></i></a>
+ <a lay-event="reset" title="重置密码" shiro:hasPermission="agent:password:reset"><i class="layui-icon febs-edit-area febs-blue"></i></a>
+ <a lay-event="edit" title="编辑" shiro:hasPermission="agent:edit"><i class="layui-icon febs-edit-area febs-blue"></i></a>
+ <a lay-event="del" title="删除" shiro:hasPermission="agent:del"><i class="layui-icon febs-edit-area febs-red"></i></a>
</script>
<!-- 表格操作栏 end -->
<script data-th-inline="none" type="text/javascript">
@@ -115,7 +113,6 @@
febs = layui.febs,
form = layui.form,
table = layui.table,
- treeSelect = layui.treeSelect,
dropdown = layui.dropdown,
$view = $('#febs-user'),
$query = $view.find('#query'),
@@ -170,19 +167,19 @@
});
}
}
- if (name === 'reset') {
- if (!checkStatus.data.length) {
- febs.alert.warn('请选择需要重置密码的用户');
- } else {
- var usernames = [];
- layui.each(checkStatus.data, function (key, item) {
- usernames.push(item.username)
- });
- febs.post(ctx + 'user/password/reset/' + usernames.join(','), null, function () {
- febs.alert.success('所选用户密码已重置为1234qwer');
- });
- }
- }
+ // if (name === 'reset') {
+ // if (!checkStatus.data.length) {
+ // febs.alert.warn('请选择需要重置密码的用户');
+ // } else {
+ // var usernames = [];
+ // layui.each(checkStatus.data, function (key, item) {
+ // usernames.push(item.username)
+ // });
+ // febs.post(ctx + 'user/password/reset/' + usernames.join(','), null, function () {
+ // febs.alert.success('所选用户密码已重置为1234qwer');
+ // });
+ // }
+ // }
},
options: [{
name: 'add',
@@ -192,34 +189,23 @@
name: 'delete',
title: '删除代理商',
perms: 'agent:del'
- }, {
- name: 'reset',
- title: '密码重置',
- perms: 'agent:password:reset'
}]
- });
-
- // 下拉框选择器
- treeSelect.render({
- elem: $view.find('#dept'),
- type: 'get',
- data: ctx + 'dept/select/tree',
- placeholder: '请选择',
- search: false
});
// 初始化表格操作栏各个按钮功能
table.on('tool(userTable)', function (obj) {
var data = obj.data,
layEvent = obj.event;
- if (layEvent === 'detail') {
- febs.modal.view('用户信息', 'system/user/detail/' + data.username, {
- area: $(window).width() <= 750 ? '95%' : '660px'
+ if (layEvent === 'reset') {
+ febs.modal.confirm('重置密码', '确定重置该用户密码?', function () {
+ febs.post(ctx + 'agent/reset/' + data.id, null, function () {
+ febs.alert.success('所选用户密码已重置为1234qwer');
+ });
});
}
if (layEvent === 'del') {
febs.modal.confirm('删除用户', '确定删除该用户?', function () {
- deleteUsers(data.userId);
+ deleteUsers(data.id);
});
}
if (layEvent === 'edit') {
@@ -246,7 +232,6 @@
// 刷新按钮
$reset.on('click', function () {
$searchForm[0].reset();
- treeSelect.revokeNode('dept');
sortObject.type = 'null';
createTimeTo = null;
createTimeFrom = null;
@@ -263,9 +248,9 @@
{field: 'name', title: '代理姓名', minWidth: 100, align: 'center'},
{field: 'account', title: '代理账号', minWidth: 100, align: 'center'},
{field: 'inviteId', title: '代理UID', minWidth: 100, align: 'center'},
- {field: 'phone', title: '手机号', minWidth: 100, align: 'center'},
- {field: 'email', title: '邮箱', minWidth: 100, align: 'center'},
- {field: 'referId', title: '上级UID', minWidth: 100, align: 'center'},
+ {field: 'phone', title: '手机号', minWidth: 130, align: 'center'},
+ {field: 'email', title: '邮箱', minWidth: 180, align: 'center'},
+ {field: 'refererId', title: '上级UID', minWidth: 100, align: 'center'},
{title: '是否实名', templet: '#certify-status', minWidth: 100, align: 'center'},
{field: 'childCnt', title: '发展代理数', minWidth: 100, align: 'center'},
{field: 'chargeTotal', title: '充值总额', minWidth: 100, align: 'center'},
@@ -303,7 +288,7 @@
febs.alert.warn('所选用户包含当前登录用户,无法删除');
return;
}
- febs.get(ctx + 'user/delete/' + userIds, null, function () {
+ febs.get(ctx + 'agent/del/' + userIds, null, function () {
febs.alert.success('删除用户成功');
$query.click();
});
--
Gitblit v1.9.1