客户关系添加分配功能

This commit is contained in:
sk1551
2021-03-23 17:20:14 +08:00
parent a3c0acfadb
commit b2f173c054
10 changed files with 1317 additions and 1161 deletions

View File

@ -1,136 +1,144 @@
import request from '@/utils/request' import request from '@/utils/request'
import { praseStrEmpty } from "@/utils/ruoyi"; import { praseStrEmpty } from "@/utils/ruoyi";
// 查询用户列表 // 查询用户列表
export function listUser(query) { export function listUser(query) {
return request({ return request({
url: '/system/user/list', url: '/system/user/list',
method: 'get', method: 'get',
params: query params: query
}) })
} }
// 查询用户详细 // 查询用户详细
export function getUser(userId) { export function getUser(userId) {
return request({ return request({
url: '/system/user/' + praseStrEmpty(userId), url: '/system/user/' + praseStrEmpty(userId),
method: 'get' method: 'get'
}) })
} }
// 查询用户列表根据roleId // 查询用户列表根据roleId
export function getUsersByRoleId() { export function getUsersByRoleId() {
return request({ return request({
url: '/system/user/listbyroleid', url: '/system/user/listbyroleid',
method: 'get' method: 'get'
}) })
} }
// 根据roleid查询用户列表
// 新增用户 export function getUserOnlyByRoleId(roleId) {
export function addUser(data) { return request({
return request({ url: '/system/user/onlybyroleid/' + roleId,
url: '/system/user', method: 'get'
method: 'post', })
data: data }
})
}
// 新增用户
// 修改用户 export function addUser(data) {
export function updateUser(data) { return request({
return request({ url: '/system/user',
url: '/system/user', method: 'post',
method: 'put', data: data
data: data })
}) }
}
// 修改用户
// 删除用户 export function updateUser(data) {
export function delUser(userId) { return request({
return request({ url: '/system/user',
url: '/system/user/' + userId, method: 'put',
method: 'delete' data: data
}) })
} }
// 导出用户 // 删除用户
export function exportUser(query) { export function delUser(userId) {
return request({ return request({
url: '/system/user/export', url: '/system/user/' + userId,
method: 'get', method: 'delete'
params: query })
}) }
}
// 导出用户
// 用户密码重置 export function exportUser(query) {
export function resetUserPwd(userId, password) { return request({
const data = { url: '/system/user/export',
userId, method: 'get',
password params: query
} })
return request({ }
url: '/system/user/resetPwd',
method: 'put', // 用户密码重置
data: data export function resetUserPwd(userId, password) {
}) const data = {
} userId,
password
// 用户状态修改 }
export function changeUserStatus(userId, status) { return request({
const data = { url: '/system/user/resetPwd',
userId, method: 'put',
status data: data
} })
return request({ }
url: '/system/user/changeStatus',
method: 'put', // 用户状态修改
data: data export function changeUserStatus(userId, status) {
}) const data = {
} userId,
status
// 查询用户个人信息 }
export function getUserProfile() { return request({
return request({ url: '/system/user/changeStatus',
url: '/system/user/profile', method: 'put',
method: 'get' data: data
}) })
} }
// 修改用户个人信息 // 查询用户个人信息
export function updateUserProfile(data) { export function getUserProfile() {
return request({ return request({
url: '/system/user/profile', url: '/system/user/profile',
method: 'put', method: 'get'
data: data })
}) }
}
// 修改用户个人信息
// 用户密码重置 export function updateUserProfile(data) {
export function updateUserPwd(oldPassword, newPassword) { return request({
const data = { url: '/system/user/profile',
oldPassword, method: 'put',
newPassword data: data
} })
return request({ }
url: '/system/user/profile/updatePwd',
method: 'put', // 用户密码重置
params: data export function updateUserPwd(oldPassword, newPassword) {
}) const data = {
} oldPassword,
newPassword
// 用户头像上传 }
export function uploadAvatar(data) { return request({
return request({ url: '/system/user/profile/updatePwd',
url: '/system/user/profile/avatar', method: 'put',
method: 'post', params: data
data: data })
}) }
}
// 用户头像上传
// 下载用户导入模板 export function uploadAvatar(data) {
export function importTemplate() { return request({
return request({ url: '/system/user/profile/avatar',
url: '/system/user/importTemplate', method: 'post',
method: 'get' data: data
}) })
} }
// 下载用户导入模板
export function importTemplate() {
return request({
url: '/system/user/importTemplate',
method: 'get'
})
}

View File

@ -122,6 +122,15 @@
v-hasPermi="['benyi:customer:export']" v-hasPermi="['benyi:customer:export']"
>导出</el-button >导出</el-button
> >
<el-button
type="success"
icon="el-icon-s-custom"
size="mini"
:disabled="single"
@click="handleUpdate_fp"
v-hasPermi="['benyi:customer:edit']"
>分配</el-button
>
</div> </div>
<el-table <el-table
@ -191,6 +200,7 @@
/> />
<el-table-column label="录入时间" align="center" prop="createTime" /> <el-table-column label="录入时间" align="center" prop="createTime" />
<el-table-column label="过保时间" align="center" prop="gbtime" /> <el-table-column label="过保时间" align="center" prop="gbtime" />
<el-table-column label="已分配给" align="center" prop="fpid" :formatter="userByRoleFormat" />
<el-table-column <el-table-column
label="转换跟进" label="转换跟进"
show-overflow-tooltip show-overflow-tooltip
@ -350,6 +360,30 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 添加或修改本一-客户关系管理对话框 -->
<el-dialog :title="title" :visible.sync="open_fp" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="15">
<el-col :span="12">
<el-form-item label="分配给" prop="fpid">
<el-select v-model="form.fpid" placeholder="请选择分配给哪个管理员">
<el-option
v-for="dict in customerUserOptions"
:key="dict.userId"
:label="dict.nickName"
:value="dict.userId"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -362,7 +396,7 @@ import {
updateCustomer, updateCustomer,
exportCustomer, exportCustomer,
} from "@/api/benyi/customer"; } from "@/api/benyi/customer";
import { listUser } from "@/api/system/user"; import { listUser, getUserOnlyByRoleId } from "@/api/system/user";
import { provinceAndCityDataPlus, CodeToText } from "element-china-area-data"; import { provinceAndCityDataPlus, CodeToText } from "element-china-area-data";
export default { export default {
@ -386,10 +420,16 @@ export default {
customerList: [], customerList: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// roleId
roleId: 108,
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
open_fp: false,
gxOptions: [], gxOptions: [],
lyOptions: [], lyOptions: [],
roleId: 108,
// 角色找人选项
customerUserOptions: [],
// 用户选项 // 用户选项
userOptions: [], userOptions: [],
@ -401,6 +441,8 @@ export default {
pageSize: 50, pageSize: 50,
}, },
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -430,6 +472,7 @@ export default {
xfxm: undefined, xfxm: undefined,
xfjz: undefined, xfjz: undefined,
gbtime: undefined, gbtime: undefined,
fpid: undefined,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
@ -456,6 +499,7 @@ export default {
this.lyOptions = response.data; this.lyOptions = response.data;
}); });
this.getUserList(); this.getUserList();
this.getUsersByRole();
}, },
methods: { methods: {
//排序 //排序
@ -477,6 +521,24 @@ export default {
this.userOptions = response.rows; this.userOptions = response.rows;
}); });
}, },
/** 根据roleid查询用户列表 */
getUsersByRole() {
getUserOnlyByRoleId(this.roleId).then((response) => {
this.customerUserOptions = response.data;
});
},
// 通过roleid查询的教师字典翻译
userByRoleFormat(row, column) {
var actions = [];
var datas = this.customerUserOptions;
Object.keys(datas).map((key) => {
if (datas[key].userId == "" + row.fpid) {
actions.push(datas[key].nickName);
return false;
}
});
return actions.join("");
},
// 教师字典翻译 // 教师字典翻译
userFormat(row, column) { userFormat(row, column) {
var actions = []; var actions = [];
@ -516,6 +578,7 @@ export default {
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false;
this.open_fp = false;
this.reset(); this.reset();
}, },
// 表单重置 // 表单重置
@ -544,6 +607,7 @@ export default {
createTime: undefined, createTime: undefined,
createTime: undefined, createTime: undefined,
gbtime: undefined, gbtime: undefined,
fpid: undefined,
}; };
this.selectedOptions = new Array(); this.selectedOptions = new Array();
this.resetForm("form"); this.resetForm("form");
@ -582,6 +646,16 @@ export default {
this.title = "修改本一-客户关系管理"; this.title = "修改本一-客户关系管理";
}); });
}, },
/** 修改按钮操作 */
handleUpdate_fp(row) {
this.reset();
const id = row.id || this.ids;
getCustomer(id).then((response) => {
this.form = response.data;
this.open_fp = true;
this.title = "分配客户";
});
},
/** 提交按钮 */ /** 提交按钮 */
submitForm: function () { submitForm: function () {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
@ -591,6 +665,7 @@ export default {
if (response.code === 200) { if (response.code === 200) {
this.msgSuccess("修改成功"); this.msgSuccess("修改成功");
this.open = false; this.open = false;
this.open_fp = false;
this.getList(); this.getList();
} }
}); });

View File

@ -43,6 +43,7 @@ public class ByCustomerController extends BaseController {
@PreAuthorize("@ss.hasPermi('benyi:customer:list')") @PreAuthorize("@ss.hasPermi('benyi:customer:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(ByCustomer byCustomer) { public TableDataInfo list(ByCustomer byCustomer) {
byCustomer.setCreateUserid(SecurityUtils.getLoginUser().getUser().getUserId());
startPage(); startPage();
List<ByCustomer> list = byCustomerService.selectByCustomerList(byCustomer); List<ByCustomer> list = byCustomerService.selectByCustomerList(byCustomer);
return getDataTable(list); return getDataTable(list);
@ -112,15 +113,25 @@ public class ByCustomerController extends BaseController {
@Log(title = "本一-客户关系管理", businessType = BusinessType.UPDATE) @Log(title = "本一-客户关系管理", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody ByCustomer byCustomer) { public AjaxResult edit(@RequestBody ByCustomer byCustomer) {
if (byCustomer.getZhgj().equals("") || byCustomer.getZhgj().equals(null)) {
if (byCustomer.getZhgj() != null) {
byCustomer.setZhgj(byCustomer.getZhgj());
}else {
byCustomer.setZhgj(""); byCustomer.setZhgj("");
} }
if (byCustomer.getBz().equals("") || byCustomer.getBz().equals(null)) {
byCustomer.setBz(""); if (byCustomer.getXfxm() != null) {
} byCustomer.setXfxm(byCustomer.getXfxm());
if (byCustomer.getXfxm().equals("") || byCustomer.getXfxm().equals(null)) { }else {
byCustomer.setXfxm(""); byCustomer.setXfxm("");
} }
if (byCustomer.getBz() != null) {
byCustomer.setBz(byCustomer.getBz());
}else {
byCustomer.setBz("");
}
return toAjax(byCustomerService.updateByCustomer(byCustomer)); return toAjax(byCustomerService.updateByCustomer(byCustomer));
} }

View File

@ -107,6 +107,9 @@ public class ByCustomer extends BaseEntity {
//@Excel(name = "创建人", type = Excel.Type.EXPORT, targetAttr = "user_name") //@Excel(name = "创建人", type = Excel.Type.EXPORT, targetAttr = "user_name")
private Long createUserid; private Long createUserid;
// 被分配者
private Long fpid;
/** /**
* 备注 * 备注
*/ */
@ -336,6 +339,7 @@ public class ByCustomer extends BaseEntity {
.append("xfjz", getXfjz()) .append("xfjz", getXfjz())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("gbtime", getGbtime()) .append("gbtime", getGbtime())
.append("fpid", getFpid())
.toString(); .toString();
} }
@ -355,4 +359,12 @@ public class ByCustomer extends BaseEntity {
public void setGbtime(Date gbtime) { public void setGbtime(Date gbtime) {
this.gbtime = gbtime; this.gbtime = gbtime;
} }
public Long getFpid() {
return fpid;
}
public void setFpid(Long fpid) {
this.fpid = fpid;
}
} }

View File

@ -170,6 +170,18 @@ public class SysUserController extends BaseController {
return ajax; return ajax;
} }
/**
* 根据roleId获取用户信息列表
*/
//@PreAuthorize("@ss.hasPermi('system:user:query')")
@GetMapping(value = {"/onlybyroleid/{roleId}"})
public AjaxResult getUserOnlyByRoleId(@PathVariable Long roleId) {
AjaxResult ajax = AjaxResult.success();
List<SysUser> list = userService.selectUserOnlyByRoleId(roleId);
ajax.put(AjaxResult.DATA_TAG, list);
return ajax;
}
/** /**
* 新增用户 * 新增用户
*/ */

View File

@ -1,137 +1,145 @@
package com.ruoyi.project.system.mapper; package com.ruoyi.project.system.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.domain.SysUser;
/** /**
* 用户表 数据层 * 用户表 数据层
* *
* @author ruoyi * @author ruoyi
*/ */
public interface SysUserMapper public interface SysUserMapper
{ {
/** /**
* 通过角色ID查询角色使用数量 * 通过角色ID查询角色使用数量
* *
* @param roleId 角色ID * @param roleId 角色ID
* @return 结果 * @return 结果
*/ */
public int countUserSchoolAdminRoleByDeptId(Long deptId,Long roleId); public int countUserSchoolAdminRoleByDeptId(Long deptId,Long roleId);
/** /**
* 根据条件分页查询用户列表 * 根据条件分页查询用户列表
* *
* @param sysUser 用户信息 * @param sysUser 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
public List<SysUser> selectUserList(SysUser sysUser); public List<SysUser> selectUserList(SysUser sysUser);
/** /**
* 根据条件分页查询用户列表 * 根据条件分页查询用户列表
* *
* @param sysUser 用户信息 * @param sysUser 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
public List<SysUser> selectUserListAll(SysUser sysUser); public List<SysUser> selectUserListAll(SysUser sysUser);
/** /**
* 通过用户名查询用户 * 通过用户名查询用户
* *
* @param userName 用户名 * @param userName 用户名
* @return 用户对象信息 * @return 用户对象信息
*/ */
public SysUser selectUserByUserName(String userName); public SysUser selectUserByUserName(String userName);
/** /**
* 通过用户ID查询用户 * 通过用户ID查询用户
* *
* @param userId 用户ID * @param userId 用户ID
* @return 用户对象信息 * @return 用户对象信息
*/ */
public SysUser selectUserById(Long userId); public SysUser selectUserById(Long userId);
/** /**
* 根据roleId查询用户列表 * 根据roleId查询用户列表
* *
* @param sysUser 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
public List<SysUser> selectUserListByRoleId(SysUser user); public List<SysUser> selectUserListByRoleId(SysUser user);
/** /**
* 新增用户信息 * 根据roleId查询用户列表
* *
* @param user 用户信息 * @param roleId 用户信息
* @return 结果 * @return 用户信息集合信息
*/ */
public int insertUser(SysUser user); public List<SysUser> selectUserOnlyByRoleId(Long roleId);
/** /**
* 修改用户信息 * 新增用户信息
* *
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
public int updateUser(SysUser user); public int insertUser(SysUser user);
/** /**
* 修改用户头像 * 修改用户信息
* *
* @param userName 用户 * @param user 用户信息
* @param avatar 头像地址 * @return 结果
* @return 结果 */
*/ public int updateUser(SysUser user);
public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
/**
/** * 修改用户头像
* 重置用户密码 *
* * @param userName 用户名
* @param userName 用户名 * @param avatar 头像地址
* @param password 密码 * @return 结果
* @return 结果 */
*/ public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
public int resetUserPwd(@Param("userName") String userName, @Param("password") String password);
/**
/** * 重置用户密码
* 通过用户ID删除用户 *
* * @param userName 用户名
* @param userId 用户ID * @param password 密码
* @return 结果 * @return 结果
*/ */
public int deleteUserById(Long userId); public int resetUserPwd(@Param("userName") String userName, @Param("password") String password);
/** /**
* 批量删除用户信息 * 通过用户ID删除用户
* *
* @param userIds 需要删除的用户ID * @param userId 用户ID
* @return 结果 * @return 结果
*/ */
public int deleteUserByIds(Long[] userIds); public int deleteUserById(Long userId);
/** /**
* 校验用户名称是否唯一 * 批量删除用户信息
* *
* @param userName 用户名称 * @param userIds 需要删除的用户ID
* @return 结果 * @return 结果
*/ */
public int checkUserNameUnique(String userName); public int deleteUserByIds(Long[] userIds);
/** /**
* 校验手机号码是否唯一 * 校验用户名称是否唯一
* *
* @param phonenumber 手机号码 * @param userName 用户名称
* @return 结果 * @return 结果
*/ */
public SysUser checkPhoneUnique(String phonenumber); public int checkUserNameUnique(String userName);
/** /**
* 校验email是否唯一 * 校验手机号码是否唯一
* *
* @param email 用户邮箱 * @param phonenumber 手机号码
* @return 结果 * @return 结果
*/ */
public SysUser checkEmailUnique(String email); public SysUser checkPhoneUnique(String phonenumber);
}
/**
* 校验email是否唯一
*
* @param email 用户邮箱
* @return 结果
*/
public SysUser checkEmailUnique(String email);
}

View File

@ -1,192 +1,200 @@
package com.ruoyi.project.system.service; package com.ruoyi.project.system.service;
import java.util.List; import java.util.List;
import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.domain.SysUser;
/** /**
* 用户 业务层 * 用户 业务层
* *
* @author ruoyi * @author ruoyi
*/ */
public interface ISysUserService public interface ISysUserService
{ {
/** /**
* 通过角色ID查询角色使用数量 * 通过角色ID查询角色使用数量
* *
* @param roleId 角色ID * @param roleId 角色ID
* @return 结果 * @return 结果
*/ */
public int countUserSchoolAdminRoleByDeptId(Long deptId,Long roleId); public int countUserSchoolAdminRoleByDeptId(Long deptId,Long roleId);
/** /**
* 根据条件分页查询用户列表 * 根据条件分页查询用户列表
* *
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
public List<SysUser> selectUserList(SysUser user); public List<SysUser> selectUserList(SysUser user);
/** /**
* 根据条件分页查询用户列表 * 根据条件分页查询用户列表
* *
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
public List<SysUser> selectUserListAll(SysUser user); public List<SysUser> selectUserListAll(SysUser user);
/** /**
* 通过用户名查询用户 * 通过用户名查询用户
* *
* @param userName 用户名 * @param userName 用户名
* @return 用户对象信息 * @return 用户对象信息
*/ */
public SysUser selectUserByUserName(String userName); public SysUser selectUserByUserName(String userName);
/** /**
* 通过用户ID查询用户 * 通过用户ID查询用户
* *
* @param userId 用户ID * @param userId 用户ID
* @return 用户对象信息 * @return 用户对象信息
*/ */
public SysUser selectUserById(Long userId); public SysUser selectUserById(Long userId);
/** /**
* 根据roleId查询用户列表 * 根据roleId查询用户列表
* *
* @param sysUser 用户信息 * @param sysUser 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
public List<SysUser> selectUserListByRoleId(SysUser user); public List<SysUser> selectUserListByRoleId(SysUser user);
/** /**
* 根据用户ID查询用户所属角色组 * 根据roleId查询用户列表
* *
* @param userName 用户 * @param roleId 用户信息
* @return 结果 * @return 用户信息集合信息
*/ */
public String selectUserRoleGroup(String userName); public List<SysUser> selectUserOnlyByRoleId(Long roleId);
/** /**
* 根据用户ID查询用户所属岗位 * 根据用户ID查询用户所属角色
* *
* @param userName 用户名 * @param userName 用户名
* @return 结果 * @return 结果
*/ */
public String selectUserPostGroup(String userName); public String selectUserRoleGroup(String userName);
/** /**
* 校验用户名称是否唯一 * 根据用户ID查询用户所属岗位组
* *
* @param userName 用户名 * @param userName 用户名
* @return 结果 * @return 结果
*/ */
public String checkUserNameUnique(String userName); public String selectUserPostGroup(String userName);
/** /**
* 校验手机号码是否唯一 * 校验用户名称是否唯一
* *
* @param user 用户信息 * @param userName 用户名称
* @return 结果 * @return 结果
*/ */
public String checkPhoneUnique(SysUser user); public String checkUserNameUnique(String userName);
/** /**
* 校验email是否唯一 * 校验手机号码是否唯一
* *
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
public String checkEmailUnique(SysUser user); public String checkPhoneUnique(SysUser user);
/** /**
* 校验用户是否允许操作 * 校验email是否唯一
* *
* @param user 用户信息 * @param user 用户信息
*/ * @return 结果
public void checkUserAllowed(SysUser user); */
public String checkEmailUnique(SysUser user);
/**
* 新增用户信息 /**
* * 校验用户是否允许操作
* @param user 用户信息 *
* @return 结果 * @param user 用户信息
*/ */
public int insertUser(SysUser user); public void checkUserAllowed(SysUser user);
/** /**
* 修改用户信息 * 新增用户信息
* *
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
public int updateUser(SysUser user); public int insertUser(SysUser user);
/** /**
* 修改用户状态 * 修改用户信息
* *
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
public int updateUserStatus(SysUser user); public int updateUser(SysUser user);
/** /**
* 修改用户基本信息 * 修改用户状态
* *
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
public int updateUserProfile(SysUser user); public int updateUserStatus(SysUser user);
/** /**
* 修改用户头像 * 修改用户基本信息
* *
* @param userName 用户 * @param user 用户信息
* @param avatar 头像地址 * @return 结果
* @return 结果 */
*/ public int updateUserProfile(SysUser user);
public boolean updateUserAvatar(String userName, String avatar);
/**
/** * 修改用户头像
* 重置用户密码 *
* * @param userName 用户名
* @param user 用户信息 * @param avatar 头像地址
* @return 结果 * @return 结果
*/ */
public int resetPwd(SysUser user); public boolean updateUserAvatar(String userName, String avatar);
/** /**
* 重置用户密码 * 重置用户密码
* *
* @param userName 用户 * @param user 用户信息
* @param password 密码 * @return 结果
* @return 结果 */
*/ public int resetPwd(SysUser user);
public int resetUserPwd(String userName, String password);
/**
/** * 重置用户密码
* 通过用户ID删除用户 *
* * @param userName 用户名
* @param userId 用户ID * @param password 密码
* @return 结果 * @return 结果
*/ */
public int deleteUserById(Long userId); public int resetUserPwd(String userName, String password);
/** /**
* 批量删除用户信息 * 通过用户ID删除用户
* *
* @param userIds 需要删除的用户ID * @param userId 用户ID
* @return 结果 * @return 结果
*/ */
public int deleteUserByIds(Long[] userIds); public int deleteUserById(Long userId);
/** /**
* 导入用户数据 * 批量删除用户信息
* *
* @param userList 用户数据列表 * @param userIds 需要删除的用户ID
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @return 结果
* @param operName 操作用户 */
* @return 结果 public int deleteUserByIds(Long[] userIds);
*/
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName); /**
} * 导入用户数据
*
* @param userList 用户数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
* @return 结果
*/
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
}

View File

@ -1,461 +1,474 @@
package com.ruoyi.project.system.service.impl; package com.ruoyi.project.system.service.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.ruoyi.project.system.domain.*; import com.ruoyi.project.system.domain.*;
import com.ruoyi.project.system.mapper.*; import com.ruoyi.project.system.mapper.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.exception.CustomException;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope; import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
import com.ruoyi.project.system.service.ISysConfigService; import com.ruoyi.project.system.service.ISysConfigService;
import com.ruoyi.project.system.service.ISysUserService; import com.ruoyi.project.system.service.ISysUserService;
/** /**
* 用户 业务层处理 * 用户 业务层处理
* *
* @author ruoyi * @author ruoyi
*/ */
@Service @Service
public class SysUserServiceImpl implements ISysUserService { public class SysUserServiceImpl implements ISysUserService {
private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
@Autowired @Autowired
private SysUserMapper userMapper; private SysUserMapper userMapper;
@Autowired @Autowired
private SysRoleMapper roleMapper; private SysRoleMapper roleMapper;
@Autowired @Autowired
private SysPostMapper postMapper; private SysPostMapper postMapper;
@Autowired @Autowired
private SysUserRoleMapper userRoleMapper; private SysUserRoleMapper userRoleMapper;
@Autowired @Autowired
private SysUserPostMapper userPostMapper; private SysUserPostMapper userPostMapper;
@Autowired @Autowired
private SysUserDeptMapper userDeptMapper; private SysUserDeptMapper userDeptMapper;
@Autowired @Autowired
private ISysConfigService configService; private ISysConfigService configService;
/** /**
* 通过角色ID查询角色使用数量 * 通过角色ID查询角色使用数量
* *
* @param roleId 角色ID * @param roleId 角色ID
* @return 结果 * @return 结果
*/ */
public int countUserSchoolAdminRoleByDeptId(Long deptId, Long roleId) { public int countUserSchoolAdminRoleByDeptId(Long deptId, Long roleId) {
return userMapper.countUserSchoolAdminRoleByDeptId(deptId, roleId); return userMapper.countUserSchoolAdminRoleByDeptId(deptId, roleId);
} }
/** /**
* 根据条件分页查询用户列表 * 根据条件分页查询用户列表
* *
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
@DataScope(deptAlias = "d", userAlias = "u") @DataScope(deptAlias = "d", userAlias = "u")
public List<SysUser> selectUserList(SysUser user) { public List<SysUser> selectUserList(SysUser user) {
return userMapper.selectUserList(user); return userMapper.selectUserList(user);
} }
/** /**
* 根据条件分页查询用户列表 * 根据条件分页查询用户列表
* *
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
public List<SysUser> selectUserListAll(SysUser user) { public List<SysUser> selectUserListAll(SysUser user) {
return userMapper.selectUserListAll(user); return userMapper.selectUserListAll(user);
} }
/** /**
* 通过用户名查询用户 * 通过用户名查询用户
* *
* @param userName 用户名 * @param userName 用户名
* @return 用户对象信息 * @return 用户对象信息
*/ */
@Override @Override
public SysUser selectUserByUserName(String userName) { public SysUser selectUserByUserName(String userName) {
return userMapper.selectUserByUserName(userName); return userMapper.selectUserByUserName(userName);
} }
/** /**
* 通过用户ID查询用户 * 通过用户ID查询用户
* *
* @param userId 用户ID * @param userId 用户ID
* @return 用户对象信息 * @return 用户对象信息
*/ */
@Override @Override
public SysUser selectUserById(Long userId) { public SysUser selectUserById(Long userId) {
return userMapper.selectUserById(userId); return userMapper.selectUserById(userId);
} }
/** /**
* 根据roleId查询用户列表 * 根据roleId查询用户列表
* *
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
public List<SysUser> selectUserListByRoleId(SysUser sysUser) { public List<SysUser> selectUserListByRoleId(SysUser sysUser) {
return userMapper.selectUserListByRoleId(sysUser); return userMapper.selectUserListByRoleId(sysUser);
} }
/** /**
* 查询用户所属角色组 * 根据roleId查询用户列表
* *
* @param userName 用户 * @param roleId 用户信息
* @return 结果 * @return 用户信息集合信息
*/ */
@Override @Override
public String selectUserRoleGroup(String userName) { public List<SysUser> selectUserOnlyByRoleId(Long roleId) {
List<SysRole> list = roleMapper.selectRolesByUserName(userName); return userMapper.selectUserOnlyByRoleId(roleId);
StringBuffer idsStr = new StringBuffer(); }
for (SysRole role : list) {
idsStr.append(role.getRoleName()).append(",");
}
if (StringUtils.isNotEmpty(idsStr.toString())) { /**
return idsStr.substring(0, idsStr.length() - 1); * 查询用户所属角色组
} *
return idsStr.toString(); * @param userName 用户名
} * @return 结果
*/
/** @Override
* 查询用户所属岗位组 public String selectUserRoleGroup(String userName) {
* List<SysRole> list = roleMapper.selectRolesByUserName(userName);
* @param userName 用户名 StringBuffer idsStr = new StringBuffer();
* @return 结果 for (SysRole role : list) {
*/ idsStr.append(role.getRoleName()).append(",");
@Override }
public String selectUserPostGroup(String userName) { if (StringUtils.isNotEmpty(idsStr.toString())) {
List<SysPost> list = postMapper.selectPostsByUserName(userName); return idsStr.substring(0, idsStr.length() - 1);
StringBuffer idsStr = new StringBuffer(); }
for (SysPost post : list) { return idsStr.toString();
idsStr.append(post.getPostName()).append(","); }
}
if (StringUtils.isNotEmpty(idsStr.toString())) { /**
return idsStr.substring(0, idsStr.length() - 1); * 查询用户所属岗位组
} *
return idsStr.toString(); * @param userName 用户名
} * @return 结果
*/
/** @Override
* 校验用户名称是否唯一 public String selectUserPostGroup(String userName) {
* List<SysPost> list = postMapper.selectPostsByUserName(userName);
* @param userName 用户名称 StringBuffer idsStr = new StringBuffer();
* @return 结果 for (SysPost post : list) {
*/ idsStr.append(post.getPostName()).append(",");
@Override }
public String checkUserNameUnique(String userName) { if (StringUtils.isNotEmpty(idsStr.toString())) {
int count = userMapper.checkUserNameUnique(userName); return idsStr.substring(0, idsStr.length() - 1);
if (count > 0) { }
return UserConstants.NOT_UNIQUE; return idsStr.toString();
} }
return UserConstants.UNIQUE;
} /**
* 校验用户名称是否唯一
/** *
* 校验用户名称是否唯一 * @param userName 用户名称
* * @return 结果
* @param user 用户信息 */
* @return @Override
*/ public String checkUserNameUnique(String userName) {
@Override int count = userMapper.checkUserNameUnique(userName);
public String checkPhoneUnique(SysUser user) { if (count > 0) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); return UserConstants.NOT_UNIQUE;
SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); }
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.UNIQUE;
return UserConstants.NOT_UNIQUE; }
}
return UserConstants.UNIQUE; /**
} * 校验用户名称是否唯一
*
/** * @param user 用户信息
* 校验email是否唯一 * @return
* */
* @param user 用户信息 @Override
* @return public String checkPhoneUnique(SysUser user) {
*/ Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
@Override SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
public String checkEmailUnique(SysUser user) { if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); return UserConstants.NOT_UNIQUE;
SysUser info = userMapper.checkEmailUnique(user.getEmail()); }
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.UNIQUE;
return UserConstants.NOT_UNIQUE; }
}
return UserConstants.UNIQUE; /**
} * 校验email是否唯一
*
/** * @param user 用户信息
* 校验用户是否允许操作 * @return
* */
* @param user 用户信息 @Override
*/ public String checkEmailUnique(SysUser user) {
public void checkUserAllowed(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { SysUser info = userMapper.checkEmailUnique(user.getEmail());
throw new CustomException("不允许操作超级管理员用户"); if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
} return UserConstants.NOT_UNIQUE;
} }
return UserConstants.UNIQUE;
/** }
* 新增保存用户信息
* /**
* @param user 用户信息 * 校验用户是否允许操作
* @return 结果 *
*/ * @param user 用户信息
@Override */
@Transactional public void checkUserAllowed(SysUser user) {
public int insertUser(SysUser user) { if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
// 新增用户信息 throw new CustomException("不允许操作超级管理员用户");
int rows = userMapper.insertUser(user); }
// 新增用户岗位关联 }
insertUserPost(user);
// 新增用户与角色管理 /**
insertUserRole(user); * 新增保存用户信息
//新增用户与部门管理 *
insertUserDept(user); * @param user 用户信息
return rows; * @return 结果
} */
@Override
/** @Transactional
* 修改保存用户信息 public int insertUser(SysUser user) {
* // 新增用户信息
* @param user 用户信息 int rows = userMapper.insertUser(user);
* @return 结果 // 新增用户岗位关联
*/ insertUserPost(user);
@Override // 新增用户与角色管理
@Transactional insertUserRole(user);
public int updateUser(SysUser user) { //新增用户与部门管理
Long userId = user.getUserId(); insertUserDept(user);
// 删除用户与角色关联 return rows;
userRoleMapper.deleteUserRoleByUserId(userId); }
// 新增用户与角色管理
insertUserRole(user); /**
// 删除用户与岗位关联 * 修改保存用户信息
userPostMapper.deleteUserPostByUserId(userId); *
// 新增用户与岗位管理 * @param user 用户信息
insertUserPost(user); * @return 结果
// 删除用户与部门关联 */
userDeptMapper.deleteUserDeptByUserId(userId); @Override
// 新增用户与角色管理 @Transactional
insertUserDept(user); public int updateUser(SysUser user) {
return userMapper.updateUser(user); Long userId = user.getUserId();
} // 删除用户与角色关联
userRoleMapper.deleteUserRoleByUserId(userId);
/** // 新增用户与角色管理
* 修改用户状态 insertUserRole(user);
* // 删除用户与岗位关联
* @param user 用户信息 userPostMapper.deleteUserPostByUserId(userId);
* @return 结果 // 新增用户与岗位管理
*/ insertUserPost(user);
@Override // 删除用户与部门关联
public int updateUserStatus(SysUser user) { userDeptMapper.deleteUserDeptByUserId(userId);
return userMapper.updateUser(user); // 新增用户与角色管理
} insertUserDept(user);
return userMapper.updateUser(user);
/** }
* 修改用户基本信息
* /**
* @param user 用户信息 * 修改用户状态
* @return 结果 *
*/ * @param user 用户信息
@Override * @return 结果
public int updateUserProfile(SysUser user) { */
return userMapper.updateUser(user); @Override
} public int updateUserStatus(SysUser user) {
return userMapper.updateUser(user);
/** }
* 修改用户头像
* /**
* @param userId 用户ID * 修改用户基本信息
* @param avatar 头像地址 *
* @return 结果 * @param user 用户信息
*/ * @return 结果
public boolean updateUserAvatar(String userName, String avatar) { */
return userMapper.updateUserAvatar(userName, avatar) > 0; @Override
} public int updateUserProfile(SysUser user) {
return userMapper.updateUser(user);
/** }
* 重置用户密码
* /**
* @param user 用户信息 * 修改用户头像
* @return 结果 *
*/ * @param userId 用户ID
@Override * @param avatar 头像地址
public int resetPwd(SysUser user) { * @return 结果
return userMapper.updateUser(user); */
} public boolean updateUserAvatar(String userName, String avatar) {
return userMapper.updateUserAvatar(userName, avatar) > 0;
/** }
* 重置用户密码
* /**
* @param userName 用户名 * 重置用户密码
* @param password 密码 *
* @return 结果 * @param user 用户信息
*/ * @return 结果
@Override */
public int resetUserPwd(String userName, String password) { @Override
return userMapper.resetUserPwd(userName, password); public int resetPwd(SysUser user) {
} return userMapper.updateUser(user);
}
/**
* 新增用户角色信息 /**
* * 重置用户密码
* @param user 用户对象 *
*/ * @param userName 用户名
public void insertUserRole(SysUser user) { * @param password 密码
Long[] roles = user.getRoleIds(); * @return 结果
if (StringUtils.isNotNull(roles)) { */
// 新增用户与角色管理 @Override
List<SysUserRole> list = new ArrayList<SysUserRole>(); public int resetUserPwd(String userName, String password) {
for (Long roleId : roles) { return userMapper.resetUserPwd(userName, password);
SysUserRole ur = new SysUserRole(); }
ur.setUserId(user.getUserId());
ur.setRoleId(roleId); /**
list.add(ur); * 新增用户角色信息
} *
if (list.size() > 0) { * @param user 用户对象
userRoleMapper.batchUserRole(list); */
} public void insertUserRole(SysUser user) {
} Long[] roles = user.getRoleIds();
} if (StringUtils.isNotNull(roles)) {
// 新增用户与角色管理
/** List<SysUserRole> list = new ArrayList<SysUserRole>();
* 新增用户岗位信息 for (Long roleId : roles) {
* SysUserRole ur = new SysUserRole();
* @param user 用户对象 ur.setUserId(user.getUserId());
*/ ur.setRoleId(roleId);
public void insertUserPost(SysUser user) { list.add(ur);
Long[] posts = user.getPostIds(); }
if (StringUtils.isNotNull(posts)) { if (list.size() > 0) {
// 新增用户与岗位管理 userRoleMapper.batchUserRole(list);
List<SysUserPost> list = new ArrayList<SysUserPost>(); }
for (Long postId : posts) { }
SysUserPost up = new SysUserPost(); }
up.setUserId(user.getUserId());
up.setPostId(postId); /**
list.add(up); * 新增用户岗位信息
} *
if (list.size() > 0) { * @param user 用户对象
userPostMapper.batchUserPost(list); */
} public void insertUserPost(SysUser user) {
} Long[] posts = user.getPostIds();
} if (StringUtils.isNotNull(posts)) {
// 新增用户与岗位管理
/** List<SysUserPost> list = new ArrayList<SysUserPost>();
* 新增用户部门信息 for (Long postId : posts) {
* SysUserPost up = new SysUserPost();
* @param user 用户对象 up.setUserId(user.getUserId());
*/ up.setPostId(postId);
public void insertUserDept(SysUser user) { list.add(up);
Long[] depts = user.getDeptIds(); }
if (StringUtils.isNotNull(depts)) { if (list.size() > 0) {
// 新增用户与部门管理 userPostMapper.batchUserPost(list);
List<SysUserDept> list = new ArrayList<SysUserDept>(); }
for (Long deptId : depts) { }
SysUserDept ud = new SysUserDept(); }
ud.setUserId(user.getUserId());
ud.setDeptId(deptId); /**
list.add(ud); * 新增用户部门信息
} *
if (list.size() > 0) { * @param user 用户对象
userDeptMapper.batchUserDept(list); */
} public void insertUserDept(SysUser user) {
} Long[] depts = user.getDeptIds();
} if (StringUtils.isNotNull(depts)) {
// 新增用户与部门管理
/** List<SysUserDept> list = new ArrayList<SysUserDept>();
* 通过用户ID删除用户 for (Long deptId : depts) {
* SysUserDept ud = new SysUserDept();
* @param userId 用户ID ud.setUserId(user.getUserId());
* @return 结果 ud.setDeptId(deptId);
*/ list.add(ud);
@Override }
public int deleteUserById(Long userId) { if (list.size() > 0) {
// 删除用户与角色关联 userDeptMapper.batchUserDept(list);
userRoleMapper.deleteUserRoleByUserId(userId); }
// 删除用户与岗位表 }
userPostMapper.deleteUserPostByUserId(userId); }
return userMapper.deleteUserById(userId);
} /**
* 通过用户ID删除用户
/** *
* 批量删除用户信息 * @param userId 用户ID
* * @return 结果
* @param userIds 需要删除的用户ID */
* @return 结果 @Override
*/ public int deleteUserById(Long userId) {
public int deleteUserByIds(Long[] userIds) { // 删除用户与角色关联
for (Long userId : userIds) { userRoleMapper.deleteUserRoleByUserId(userId);
checkUserAllowed(new SysUser(userId)); // 删除用户与岗位表
} userPostMapper.deleteUserPostByUserId(userId);
return userMapper.deleteUserByIds(userIds); return userMapper.deleteUserById(userId);
} }
/** /**
* 导入用户数据 * 批量删除用户信息
* *
* @param userList 用户数据列表 * @param userIds 需要删除的用户ID
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @return 结果
* @param operName 操作用户 */
* @return 结果 public int deleteUserByIds(Long[] userIds) {
*/ for (Long userId : userIds) {
@Override checkUserAllowed(new SysUser(userId));
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) { }
if (StringUtils.isNull(userList) || userList.size() == 0) { return userMapper.deleteUserByIds(userIds);
throw new CustomException("导入用户数据不能为空!"); }
}
int successNum = 0; /**
int failureNum = 0; * 导入用户数据
StringBuilder successMsg = new StringBuilder(); *
StringBuilder failureMsg = new StringBuilder(); * @param userList 用户数据列表
String password = configService.selectConfigByKey("sys.user.initPassword"); * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
for (SysUser user : userList) { * @param operName 操作用户
try { * @return 结果
// 验证是否存在这个用户 */
SysUser u = userMapper.selectUserByUserName(user.getUserName()); @Override
if (StringUtils.isNull(u)) { public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) {
user.setPassword(SecurityUtils.encryptPassword(password)); if (StringUtils.isNull(userList) || userList.size() == 0) {
user.setCreateBy(operName); throw new CustomException("导入用户数据不能为空!");
this.insertUser(user); }
successNum++; int successNum = 0;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功"); int failureNum = 0;
} else if (isUpdateSupport) { StringBuilder successMsg = new StringBuilder();
user.setUpdateBy(operName); StringBuilder failureMsg = new StringBuilder();
this.updateUser(user); String password = configService.selectConfigByKey("sys.user.initPassword");
successNum++; for (SysUser user : userList) {
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功"); try {
} else { // 验证是否存在这个用户
failureNum++; SysUser u = userMapper.selectUserByUserName(user.getUserName());
failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在"); if (StringUtils.isNull(u)) {
} user.setPassword(SecurityUtils.encryptPassword(password));
} catch (Exception e) { user.setCreateBy(operName);
failureNum++; this.insertUser(user);
String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; successNum++;
failureMsg.append(msg + e.getMessage()); successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
log.error(msg, e); } else if (isUpdateSupport) {
} user.setUpdateBy(operName);
} this.updateUser(user);
if (failureNum > 0) { successNum++;
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
throw new CustomException(failureMsg.toString()); } else {
} else { failureNum++;
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
} }
return successMsg.toString(); } catch (Exception e) {
} failureNum++;
String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
} failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new CustomException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
}

View File

@ -20,6 +20,7 @@
<result property="shiid" column="shiid"/> <result property="shiid" column="shiid"/>
<result property="khly" column="khly"/> <result property="khly" column="khly"/>
<result property="createUserid" column="create_userid"/> <result property="createUserid" column="create_userid"/>
<result property="fpid" column="fpid"/>
<result property="bz" column="bz"/> <result property="bz" column="bz"/>
<result property="zhgj" column="zhgj"/> <result property="zhgj" column="zhgj"/>
<result property="state" column="state"/> <result property="state" column="state"/>
@ -30,7 +31,7 @@
</resultMap> </resultMap>
<sql id="selectByCustomerVo"> <sql id="selectByCustomerVo">
select id, name, sflx, lxdh, wx, dy, qt, schoolname, rs, sheng, shengid, shi, shiid, khly, create_userid, bz, zhgj, state, xfxm, xfjz, gbtime, create_time from by_customer select id, name, sflx, lxdh, wx, dy, qt, fpid, schoolname, rs, sheng, shengid, shi, shiid, khly, create_userid, bz, zhgj, state, xfxm, xfjz, gbtime, create_time from by_customer
</sql> </sql>
<select id="selectByCustomerList" parameterType="ByCustomer" resultMap="ByCustomerResult"> <select id="selectByCustomerList" parameterType="ByCustomer" resultMap="ByCustomerResult">
@ -49,7 +50,8 @@
<if test="shi != null and shi != ''">and shi = #{shi}</if> <if test="shi != null and shi != ''">and shi = #{shi}</if>
<if test="shiid != null and shiid != ''">and shiid = #{shiid}</if> <if test="shiid != null and shiid != ''">and shiid = #{shiid}</if>
<if test="khly != null and khly != ''">and khly = #{khly}</if> <if test="khly != null and khly != ''">and khly = #{khly}</if>
<if test="createUserid != null ">and create_userid = #{createUserid}</if> <if test="createUserid != null ">and create_userid = #{createUserid} or fpid = #{createUserid}</if>
<if test="fpid != null ">and fpid = #{fpid}</if>
<if test="bz != null and bz != ''">and bz = #{bz}</if> <if test="bz != null and bz != ''">and bz = #{bz}</if>
<if test="zhgj != null and zhgj != ''">and zhgj = #{zhgj}</if> <if test="zhgj != null and zhgj != ''">and zhgj = #{zhgj}</if>
<if test="state != null and state != ''">and state = #{state}</if> <if test="state != null and state != ''">and state = #{state}</if>
@ -83,6 +85,7 @@
<if test="shiid != null and shiid != ''">shiid,</if> <if test="shiid != null and shiid != ''">shiid,</if>
<if test="khly != null and khly != ''">khly,</if> <if test="khly != null and khly != ''">khly,</if>
<if test="createUserid != null ">create_userid,</if> <if test="createUserid != null ">create_userid,</if>
<if test="fpid != null ">fpid,</if>
<if test="bz != null and bz != ''">bz,</if> <if test="bz != null and bz != ''">bz,</if>
<if test="zhgj != null and zhgj != ''">zhgj,</if> <if test="zhgj != null and zhgj != ''">zhgj,</if>
<if test="state != null and state != ''">state,</if> <if test="state != null and state != ''">state,</if>
@ -107,6 +110,7 @@
<if test="shiid != null and shiid != ''">#{shiid},</if> <if test="shiid != null and shiid != ''">#{shiid},</if>
<if test="khly != null and khly != ''">#{khly},</if> <if test="khly != null and khly != ''">#{khly},</if>
<if test="createUserid != null ">#{createUserid},</if> <if test="createUserid != null ">#{createUserid},</if>
<if test="fpid != null ">#{fpid},</if>
<if test="bz != null and bz != ''">#{bz},</if> <if test="bz != null and bz != ''">#{bz},</if>
<if test="zhgj != null and zhgj != ''">#{zhgj},</if> <if test="zhgj != null and zhgj != ''">#{zhgj},</if>
<if test="state != null and state != ''">#{state},</if> <if test="state != null and state != ''">#{state},</if>
@ -134,6 +138,7 @@
<if test="shiid != null and shiid != ''">shiid = #{shiid},</if> <if test="shiid != null and shiid != ''">shiid = #{shiid},</if>
<if test="khly != null and khly != ''">khly = #{khly},</if> <if test="khly != null and khly != ''">khly = #{khly},</if>
<if test="createUserid != null ">create_userid = #{createUserid},</if> <if test="createUserid != null ">create_userid = #{createUserid},</if>
<if test="fpid != null ">fpid = #{fpid},</if>
<if test="bz != null and bz != ''">bz = #{bz},</if> <if test="bz != null and bz != ''">bz = #{bz},</if>
<if test="zhgj != null and zhgj != ''">zhgj = #{zhgj},</if> <if test="zhgj != null and zhgj != ''">zhgj = #{zhgj},</if>
<if test="state != null and state != ''">state = #{state},</if> <if test="state != null and state != ''">state = #{state},</if>

View File

@ -1,228 +1,232 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.system.mapper.SysUserMapper"> <mapper namespace="com.ruoyi.project.system.mapper.SysUserMapper">
<resultMap type="SysUser" id="SysUserResult"> <resultMap type="SysUser" id="SysUserResult">
<id property="userId" column="user_id" /> <id property="userId" column="user_id" />
<result property="deptId" column="dept_id" /> <result property="deptId" column="dept_id" />
<result property="userName" column="user_name" /> <result property="userName" column="user_name" />
<result property="nickName" column="nick_name" /> <result property="nickName" column="nick_name" />
<result property="email" column="email" /> <result property="email" column="email" />
<result property="phonenumber" column="phonenumber" /> <result property="phonenumber" column="phonenumber" />
<result property="sex" column="sex" /> <result property="sex" column="sex" />
<result property="avatar" column="avatar" /> <result property="avatar" column="avatar" />
<result property="password" column="password" /> <result property="password" column="password" />
<result property="status" column="status" /> <result property="status" column="status" />
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" /> <result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" /> <result property="loginDate" column="login_date" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<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" />
<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" />
</resultMap> </resultMap>
<resultMap id="deptResult" type="SysDept"> <resultMap id="deptResult" type="SysDept">
<id property="deptId" column="dept_id" /> <id property="deptId" column="dept_id" />
<result property="parentId" column="parent_id" /> <result property="parentId" column="parent_id" />
<result property="deptName" column="dept_name" /> <result property="deptName" column="dept_name" />
<result property="orderNum" column="order_num" /> <result property="orderNum" column="order_num" />
<result property="leader" column="leader" /> <result property="leader" column="leader" />
<result property="status" column="dept_status" /> <result property="status" column="dept_status" />
</resultMap> </resultMap>
<resultMap id="RoleResult" type="SysRole"> <resultMap id="RoleResult" type="SysRole">
<id property="roleId" column="role_id" /> <id property="roleId" column="role_id" />
<result property="roleName" column="role_name" /> <result property="roleName" column="role_name" />
<result property="roleKey" column="role_key" /> <result property="roleKey" column="role_key" />
<result property="roleSort" column="role_sort" /> <result property="roleSort" column="role_sort" />
<result property="dataScope" column="data_scope" /> <result property="dataScope" column="data_scope" />
<result property="status" column="role_status" /> <result property="status" column="role_status" />
</resultMap> </resultMap>
<select id="countUserSchoolAdminRoleByDeptId" resultType="Integer"> <select id="countUserSchoolAdminRoleByDeptId" resultType="Integer">
select count(1) from sys_user u left join sys_user_role r on u.user_id=r.user_id select count(1) from sys_user u left join sys_user_role r on u.user_id=r.user_id
where dept_id=#{deptId} and role_id=#{roleId} and u.status='0' and u.del_flag = '0' where dept_id=#{deptId} and role_id=#{roleId} and u.status='0' and u.del_flag = '0'
</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 r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
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
</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 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'
<if test="userName != null and userName != ''"> <if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%') AND u.user_name like concat('%', #{userName}, '%')
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
AND u.status = #{status} AND u.status = #{status}
</if> </if>
<if test="phonenumber != null and phonenumber != ''"> <if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%') AND u.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(u.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(u.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 (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET (#{deptId},ancestors) ))
</if> </if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${dataScope} ${dataScope}
</select> </select>
<select id="selectUserListAll" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserListAll" 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'
<if test="userName != null and userName != ''"> <if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%') AND u.user_name like concat('%', #{userName}, '%')
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
AND u.status = #{status} AND u.status = #{status}
</if> </if>
<if test="phonenumber != null and phonenumber != ''"> <if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%') AND u.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(u.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(u.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 (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET (#{deptId},ancestors) ))
</if> </if>
</select> </select>
<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 u.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 u.user_id = #{userId}
</select> </select>
<select id="selectUserListByRoleId" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserListByRoleId" 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 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 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
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != ''"> <if test="userId != null and userId != ''">
and r.role_id = #{userId} and r.role_id = #{userId}
</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 (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET (#{deptId},ancestors) ))
</if> </if>
</select> </select>
<select id="checkUserNameUnique" parameterType="String" resultType="int"> <select id="selectUserOnlyByRoleId" parameterType="Long" resultMap="SysUserResult">
select count(1) from sys_user where user_name = #{userName} select * FROM sys_user where del_flag = '0' and user_id in (select user_id from sys_user_role where role_id = #{roleId});
</select> </select>
<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult"> <select id="checkUserNameUnique" parameterType="String" resultType="int">
select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} select count(1) from sys_user where user_name = #{userName}
</select> </select>
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult"> <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
select user_id, email from sys_user where email = #{email} select user_id, phonenumber from sys_user where phonenumber = #{phonenumber}
</select> </select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
insert into sys_user( select user_id, email from sys_user where email = #{email}
<if test="userId != null and userId != 0">user_id,</if> </select>
<if test="deptId != null and deptId != 0">dept_id,</if>
<if test="userName != null and userName != ''">user_name,</if> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
<if test="nickName != null and nickName != ''">nick_name,</if> insert into sys_user(
<if test="email != null and email != ''">email,</if> <if test="userId != null and userId != 0">user_id,</if>
<if test="avatar != null and avatar != ''">avatar,</if> <if test="deptId != null and deptId != 0">dept_id,</if>
<if test="phonenumber != null and phonenumber != ''">phonenumber,</if> <if test="userName != null and userName != ''">user_name,</if>
<if test="sex != null and sex != ''">sex,</if> <if test="nickName != null and nickName != ''">nick_name,</if>
<if test="password != null and password != ''">password,</if> <if test="email != null and email != ''">email,</if>
<if test="status != null and status != ''">status,</if> <if test="avatar != null and avatar != ''">avatar,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="sex != null and sex != ''">sex,</if>
create_time <if test="password != null and password != ''">password,</if>
)values( <if test="status != null and status != ''">status,</if>
<if test="userId != null and userId != ''">#{userId},</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="deptId != null and deptId != ''">#{deptId},</if> <if test="remark != null and remark != ''">remark,</if>
<if test="userName != null and userName != ''">#{userName},</if> create_time
<if test="nickName != null and nickName != ''">#{nickName},</if> )values(
<if test="email != null and email != ''">#{email},</if> <if test="userId != null and userId != ''">#{userId},</if>
<if test="avatar != null and avatar != ''">#{avatar},</if> <if test="deptId != null and deptId != ''">#{deptId},</if>
<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if> <if test="userName != null and userName != ''">#{userName},</if>
<if test="sex != null and sex != ''">#{sex},</if> <if test="nickName != null and nickName != ''">#{nickName},</if>
<if test="password != null and password != ''">#{password},</if> <if test="email != null and email != ''">#{email},</if>
<if test="status != null and status != ''">#{status},</if> <if test="avatar != null and avatar != ''">#{avatar},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="sex != null and sex != ''">#{sex},</if>
sysdate() <if test="password != null and password != ''">#{password},</if>
) <if test="status != null and status != ''">#{status},</if>
</insert> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<update id="updateUser" parameterType="SysUser"> sysdate()
update sys_user )
<set> </insert>
<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if> <update id="updateUser" parameterType="SysUser">
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if> update sys_user
<if test="email != null and email != ''">email = #{email},</if> <set>
<if test="phonenumber != null and phonenumber != ''">phonenumber = #{phonenumber},</if> <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
<if test="sex != null and sex != ''">sex = #{sex},</if> <if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="avatar != null and avatar != ''">avatar = #{avatar},</if> <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="password != null and password != ''">password = #{password},</if> <if test="email != null and email != ''">email = #{email},</if>
<if test="status != null and status != ''">status = #{status},</if> <if test="phonenumber != null and phonenumber != ''">phonenumber = #{phonenumber},</if>
<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if> <if test="sex != null and sex != ''">sex = #{sex},</if>
<if test="loginDate != null">login_date = #{loginDate},</if> <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="password != null and password != ''">password = #{password},</if>
<if test="remark != null">remark = #{remark},</if> <if test="status != null and status != ''">status = #{status},</if>
update_time = sysdate() <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
</set> <if test="loginDate != null">login_date = #{loginDate},</if>
where user_id = #{userId} <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
</update> <if test="remark != null">remark = #{remark},</if>
update_time = sysdate()
<update id="updateUserStatus" parameterType="SysUser"> </set>
update sys_user set status = #{status} where user_id = #{userId} where user_id = #{userId}
</update> </update>
<update id="updateUserAvatar" parameterType="SysUser"> <update id="updateUserStatus" parameterType="SysUser">
update sys_user set avatar = #{avatar} where user_name = #{userName} update sys_user set status = #{status} where user_id = #{userId}
</update> </update>
<update id="resetUserPwd" parameterType="SysUser"> <update id="updateUserAvatar" parameterType="SysUser">
update sys_user set password = #{password} where user_name = #{userName} update sys_user set avatar = #{avatar} where user_name = #{userName}
</update> </update>
<delete id="deleteUserById" parameterType="Long"> <update id="resetUserPwd" parameterType="SysUser">
delete from sys_user where user_id = #{userId} update sys_user set password = #{password} where user_name = #{userName}
</delete> </update>
<delete id="deleteUserByIds" parameterType="Long"> <delete id="deleteUserById" parameterType="Long">
update sys_user set del_flag = '2' where user_id in delete from sys_user where user_id = #{userId}
<foreach collection="array" item="userId" open="(" separator="," close=")"> </delete>
#{userId}
</foreach> <delete id="deleteUserByIds" parameterType="Long">
</delete> update sys_user set del_flag = '2' where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</delete>
</mapper> </mapper>