修改单用户多岗位

This commit is contained in:
huangdeliang 2020-10-11 00:35:24 +08:00
parent d7eafa1d92
commit 0ed60fb059
10 changed files with 289 additions and 242 deletions

View File

@ -68,8 +68,10 @@ public class SysCommisionController extends BaseController {
*/ */
@PreAuthorize("@ss.hasPermi('commision:config:query')") @PreAuthorize("@ss.hasPermi('commision:config:query')")
@GetMapping(value = "/{ruleId}") @GetMapping(value = "/{ruleId}")
public AjaxResult getInfo(@PathVariable("ruleId") Long ruleId) { public AjaxResult getInfo(@PathVariable("ruleId") Long ruleId, SysCommision sysCommision) {
return AjaxResult.success(sysCommisionService.selectSysCommisionById(ruleId)); sysCommision.setRuleId(ruleId);
System.out.println(sysCommision);
return AjaxResult.success(sysCommisionService.selectSysCommisionById(sysCommision));
} }
/** /**
@ -119,6 +121,7 @@ public class SysCommisionController extends BaseController {
detail.setRate(0F); detail.setRate(0F);
SysCommision tmpQueryCom = new SysCommision(); SysCommision tmpQueryCom = new SysCommision();
tmpQueryCom.setUserId(detail.getUserId()); tmpQueryCom.setUserId(detail.getUserId());
tmpQueryCom.setPostId(detail.getPostId());
List<SysCommision> tmpComList = sysCommisionService.selectSysCommisionList(tmpQueryCom); List<SysCommision> tmpComList = sysCommisionService.selectSysCommisionList(tmpQueryCom);
float dAmount = detail.getAmount().floatValue(); float dAmount = detail.getAmount().floatValue();

View File

@ -14,10 +14,10 @@ public interface SysCommisionMapper
/** /**
* 查询业务提成比例 * 查询业务提成比例
* *
* @param ruleId 业务提成比例ID * @param sysCommision 业务提成比例ID
* @return 业务提成比例 * @return 业务提成比例
*/ */
public SysCommision selectSysCommisionById(Long ruleId); public SysCommision selectSysCommisionById(SysCommision sysCommision);
/** /**
* 查询业务提成比例列表 * 查询业务提成比例列表

View File

@ -17,7 +17,7 @@ public interface ISysCommisionService
* @param ruleId 业务提成比例ID * @param ruleId 业务提成比例ID
* @return 业务提成比例 * @return 业务提成比例
*/ */
public SysCommision selectSysCommisionById(Long ruleId); public SysCommision selectSysCommisionById(SysCommision sysCommision);
/** /**
* 查询业务提成比例列表 * 查询业务提成比例列表

View File

@ -27,9 +27,9 @@ public class SysCommisionServiceImpl implements ISysCommisionService
* @return 业务提成比例 * @return 业务提成比例
*/ */
@Override @Override
public SysCommision selectSysCommisionById(Long ruleId) public SysCommision selectSysCommisionById(SysCommision sysCommision)
{ {
return sysCommisionMapper.selectSysCommisionById(ruleId); return sysCommisionMapper.selectSysCommisionById(sysCommision);
} }
/** /**

View File

@ -29,12 +29,16 @@
</resultMap> </resultMap>
<sql id="groupAmountVo"> <sql id="groupAmountVo">
SELECT ${column} AS user_id, SUM(amount) AS amount SELECT ${column} AS user_id, ${postId} AS post_id, SUM(amount) AS amount
FROM sys_order FROM sys_order
WHERE ${column} IS NOT NULL WHERE ${column} IS NOT NULL AND ${column} &lt;&gt; 0
AND review_status = 'yes' AND review_status = 'yes'
<if test="beginTime != null and beginTime != ''"> AND date_format(order_time,'%y%m%d') &gt;= date_format(${beginTime},'%y%m%d')</if> <if test="beginTime != null and beginTime != ''">AND date_format(order_time,'%y%m%d') &gt;=
<if test="endTime != null and endTime != ''">AND date_format(order_time,'%y%m%d') &lt;= date_format(${endTime},'%y%m%d')</if> date_format(${beginTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''">AND date_format(order_time,'%y%m%d') &lt;=
date_format(${endTime},'%y%m%d')
</if>
GROUP BY ${column} GROUP BY ${column}
</sql> </sql>
@ -45,50 +49,58 @@
<property name="column" value="pre_sale_id"/> <property name="column" value="pre_sale_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="5"/>
</include> </include>
UNION UNION
<include refid="groupAmountVo"> <include refid="groupAmountVo">
<property name="column" value="after_sale_id"/> <property name="column" value="after_sale_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="6"/>
</include> </include>
UNION UNION
<include refid="groupAmountVo"> <include refid="groupAmountVo">
<property name="column" value="nutritionist_id"/> <property name="column" value="nutritionist_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="9"/>
</include> </include>
UNION UNION
<include refid="groupAmountVo"> <include refid="groupAmountVo">
<property name="column" value="nutri_assis_id"/> <property name="column" value="nutri_assis_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="10"/>
</include> </include>
UNION UNION
<include refid="groupAmountVo"> <include refid="groupAmountVo">
<property name="column" value="operator_id"/> <property name="column" value="operator_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="11"/>
</include> </include>
UNION UNION
<include refid="groupAmountVo"> <include refid="groupAmountVo">
<property name="column" value="operator_assis_id"/> <property name="column" value="operator_assis_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="13"/>
</include> </include>
UNION UNION
<include refid="groupAmountVo"> <include refid="groupAmountVo">
<property name="column" value="planner_id"/> <property name="column" value="planner_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="7"/>
</include> </include>
UNION UNION
<include refid="groupAmountVo"> <include refid="groupAmountVo">
<property name="column" value="planner_assis_id"/> <property name="column" value="planner_assis_id"/>
<property name="beginTime" value="#{beginTime}"/> <property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/> <property name="endTime" value="#{endTime}"/>
<property name="postId" value="8"/>
</include> </include>
) AS a USING(user_id) ) AS a USING(user_id, post_id)
<where> <where>
<if test="postId != null and postId != ''">and post_id = #{postId}</if> <if test="postId != null and postId != ''">and post_id = #{postId}</if>
<if test="userId != null and userId != ''">and user_id = #{userId}</if> <if test="userId != null and userId != ''">and user_id = #{userId}</if>
@ -97,24 +109,29 @@
<sql id="selectSysCommisionVo"> <sql id="selectSysCommisionVo">
SELECT * FROM ( SELECT * FROM (
SELECT * FROM view_user_post AS pa SELECT * FROM sys_commision c
JOIN (SELECT * FROM sys_commision WHERE rate > 0) AS c USING(user_id) JOIN (SELECT user_id, nick_name AS user_name FROM sys_user) AS u USING(user_id)
JOIN (SELECT post_id, post_name FROM sys_post) AS p USING(post_id)
<if test="postId != null">WHERE post_id = ${postId}</if>
ORDER BY user_id, amount ORDER BY user_id, amount
) as t ) as t
</sql> </sql>
<select id="selectSysCommisionList" parameterType="SysCommision" resultMap="SysCommisionResult"> <select id="selectSysCommisionList" parameterType="SysCommision" resultMap="SysCommisionResult">
<include refid="selectSysCommisionVo"/> <include refid="selectSysCommisionVo">
<property name="postId" value="#{postId}"/>
</include>
<where> <where>
<if test="userId != null ">and user_id = #{userId}</if> <if test="userId != null ">and user_id = #{userId}</if>
<if test="postId != null ">and post_id = #{postId}</if> <if test="postId != null ">and post_id = #{postId}</if>
</where> </where>
</select> </select>
<select id="selectSysCommisionById" parameterType="Long" resultMap="SysCommisionResult"> <select id="selectSysCommisionById" parameterType="SysCommision" resultMap="SysCommisionResult">
<include refid="selectSysCommisionVo"/> <include refid="selectSysCommisionVo">
<property name="postId" value="#{postId}"/>
</include>
where rule_id = #{ruleId} where rule_id = #{ruleId}
</select> </select>
@ -122,6 +139,7 @@
insert into sys_commision insert into sys_commision
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if> <if test="userId != null">user_id,</if>
<if test="postId != null">post_id,</if>
<if test="amount != null">amount,</if> <if test="amount != null">amount,</if>
<if test="rate != null">rate,</if> <if test="rate != null">rate,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
@ -132,6 +150,7 @@
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if> <if test="userId != null">#{userId},</if>
<if test="postId != null">#{postId},</if>
<if test="amount != null">#{amount},</if> <if test="amount != null">#{amount},</if>
<if test="rate != null">#{rate},</if> <if test="rate != null">#{rate},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
@ -146,6 +165,7 @@
update sys_commision update sys_commision
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="userId != null">user_id = #{userId},</if> <if test="userId != null">user_id = #{userId},</if>
<if test="postId != null">post_id = #{postId},</if>
<if test="amount != null">amount = #{amount},</if> <if test="amount != null">amount = #{amount},</if>
<if test="rate != null">rate = #{rate},</if> <if test="rate != null">rate = #{rate},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>

View File

@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="postId" column="post_id" /> <!-- <result property="postId" column="post_id" />-->
<result property="postName" column="post_name" /> <result property="postName" column="post_name" />
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" /> <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
@ -53,9 +53,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<select id="selectAllUser" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectAllUser" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u -- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id -- left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' -- where u.del_flag = '0'
SELECT * FROM sys_user
JOIN (SELECT dept_id, dept_name, leader FROM sys_dept) AS d USING(dept_id)
WHERE del_flag = '0'
</select> </select>
<select id="selectSalesman" parameterType="CusSalesman" resultMap="CusSalesmanResult"> <select id="selectSalesman" parameterType="CusSalesman" resultMap="CusSalesmanResult">
@ -63,40 +66,60 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, -- select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status, -- d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, p.post_id, p.post_name -- r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, p.post_id, p.post_name
from sys_user u -- from sys_user u
left join sys_dept d on u.dept_id = d.dept_id -- left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id -- left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id -- left join sys_role r on r.role_id = ur.role_id
left join sys_user_post up on up.user_id = u.user_id -- left join sys_user_post up on up.user_id = u.user_id
left join sys_post p on p.post_id = up.post_id -- left join sys_post p on p.post_id = up.post_id
SELECT * FROM sys_user
JOIN (SELECT dept_id, dept_name, parent_id, order_num, leader, status as dept_status FROM sys_dept) AS d USING(dept_id)
JOIN (SELECT * FROM sys_user_role) AS ur USING(user_id)
JOIN (SELECT role_id, role_name, role_key, role_sort, data_scope, status AS role_status FROM sys_role) AS r USING(role_id)
JOIN (
SELECT user_id, GROUP_CONCAT(post_name SEPARATOR ',') AS post_name, GROUP_CONCAT(post_id SEPARATOR ',') AS post_id
FROM (
SELECT * FROM sys_user_post
JOIN (SELECT post_id, post_name FROM sys_post) AS p USING(post_id)
) AS up GROUP BY user_id
) AS ups USING(user_id)
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader, p.post_id, p.post_name from sys_user u -- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader, p.post_id, p.post_name from sys_user u
left join sys_dept d on u.dept_id = d.dept_id -- left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_post up on up.user_id = u.user_id -- left join sys_user_post up on up.user_id = u.user_id
left join sys_post p on p.post_id = up.post_id -- left join sys_post p on p.post_id = up.post_id
where u.del_flag = '0' -- where u.del_flag = '0'
SELECT * FROM sys_user
JOIN (SELECT dept_id, dept_name FROM sys_dept) AS d USING(dept_id)
JOIN (
SELECT user_id, GROUP_CONCAT(post_name SEPARATOR ',') AS post_name, GROUP_CONCAT(post_id SEPARATOR ',') AS post_id
FROM (
SELECT * FROM sys_user_post
JOIN (SELECT post_id, post_name FROM sys_post) AS p USING(post_id)
) AS up GROUP BY user_id ) AS ups USING(user_id)
WHERE del_flag = '0'
<if test="userName != null and userName != ''"> <if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%') AND user_name like concat('%', #{userName}, '%')
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
AND u.status = #{status} AND status = #{status}
</if> </if>
<if test="phonenumber != null and phonenumber != ''"> <if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%') AND phonenumber like concat('%', #{phonenumber}, '%')
</if> </if>
<if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d') AND date_format(create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
</if> </if>
<if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d') AND date_format(create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if> </if>
<if test="deptId != null and deptId != 0"> <if test="deptId != null and deptId != 0">
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) )) AND (dept_id = #{deptId} OR dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
</if> </if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} ${params.dataScope}
@ -104,12 +127,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult"> <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>
where u.user_name = #{userName} where user_name = #{userName}
</select> </select>
<select id="selectUserById" parameterType="Long" resultMap="SysUserResult"> <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>
where u.user_id = #{userId} where user_id = #{userId}
</select> </select>
<select id="checkUserNameUnique" parameterType="String" resultType="int"> <select id="checkUserNameUnique" parameterType="String" resultType="int">

View File

@ -19,10 +19,11 @@ export function detailCommision(query) {
} }
// 查询业务提成比例详细 // 查询业务提成比例详细
export function getCommision(ruleId) { export function getCommision(ruleId, postId) {
return request({ return request({
url: '/custom/commision/' + ruleId, url: '/custom/commision/' + ruleId,
method: 'get' method: 'get',
params: {postId}
}) })
} }

View File

@ -274,7 +274,7 @@
listCommision(this.queryParams).then(response => { listCommision(this.queryParams).then(response => {
this.commisionList = response.rows.reduce((arr, cur, idx, oriArr) => { this.commisionList = response.rows.reduce((arr, cur, idx, oriArr) => {
for (let i = 0; i < arr.length; i++) { for (let i = 0; i < arr.length; i++) {
if (arr[i].some(e => e.userId === cur.userId)) { if (arr[i].some(e => e.userId === cur.userId && e.postId === cur.postId)) {
arr[i].push(cur); arr[i].push(cur);
break; break;
} else if (i === arr.length - 1) { } else if (i === arr.length - 1) {
@ -370,7 +370,7 @@
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const ruleId = row.ruleId || this.ids const ruleId = row.ruleId || this.ids
getCommision(ruleId).then(response => { getCommision(ruleId, row.postId).then(response => {
this.form = response.data; this.form = response.data;
this.userIdOptions = this.options[this.form.postId]; this.userIdOptions = this.options[this.form.postId];
this.open = true; this.open = true;

View File

@ -164,7 +164,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位"> <el-form-item label="岗位">
<el-select v-model="form.postId" placeholder="请选择"> <el-select v-model="form.postIds" multiple placeholder="请选择">
<el-option v-for="item in postOptions" <el-option v-for="item in postOptions"
:key="item.postId" :key="item.postId"
:label="item.postName" :label="item.postName"
@ -509,7 +509,7 @@
submitForm: function () { submitForm: function () {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
this.form.postId && (this.form.postIds = [this.form.postId]); // this.form.postId && (this.form.postIds = [this.form.postId]);
this.form.roleId && (this.form.roleIds = [this.form.roleId]); this.form.roleId && (this.form.roleIds = [this.form.roleId]);
// console.log(this.form) // console.log(this.form)
if (this.form.userId != undefined) { if (this.form.userId != undefined) {