APP修改管理员 新增店铺运维人员角色控制
This commit is contained in:
parent
0ac82d9da0
commit
8174f55648
|
@ -14,5 +14,7 @@ public class RoleConstants {
|
||||||
public static final String MCH = "mch";
|
public static final String MCH = "mch";
|
||||||
// 运维人员
|
// 运维人员
|
||||||
public static final String STAFF = "staff";
|
public static final String STAFF = "staff";
|
||||||
|
// APP 管理员
|
||||||
|
public static final String APP_ADMIN = "app_admin";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,14 @@ import com.ruoyi.bst.app.domain.vo.AppAllVO;
|
||||||
import com.ruoyi.bst.app.mapper.AppMapper;
|
import com.ruoyi.bst.app.mapper.AppMapper;
|
||||||
import com.ruoyi.bst.app.service.AppService;
|
import com.ruoyi.bst.app.service.AppService;
|
||||||
import com.ruoyi.common.constant.CacheConstants;
|
import com.ruoyi.common.constant.CacheConstants;
|
||||||
|
import com.ruoyi.common.constant.RoleConstants;
|
||||||
|
import com.ruoyi.common.core.domain.entity.Role;
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.collection.CollectionUtils;
|
import com.ruoyi.common.utils.collection.CollectionUtils;
|
||||||
|
import com.ruoyi.system.role.mapper.RoleMapper;
|
||||||
|
import com.ruoyi.system.role.service.RoleService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
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.support.TransactionTemplate;
|
import org.springframework.transaction.support.TransactionTemplate;
|
||||||
|
@ -24,8 +29,8 @@ import java.util.List;
|
||||||
* @date 2025-01-08
|
* @date 2025-01-08
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class AppServiceImpl implements AppService
|
@Slf4j
|
||||||
{
|
public class AppServiceImpl implements AppService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private AppMapper appMapper;
|
private AppMapper appMapper;
|
||||||
|
|
||||||
|
@ -34,6 +39,12 @@ public class AppServiceImpl implements AppService
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TransactionTemplate transactionTemplate;
|
private TransactionTemplate transactionTemplate;
|
||||||
|
@Autowired
|
||||||
|
private RoleService roleService;
|
||||||
|
@Autowired
|
||||||
|
private RoleMapper roleMapper;
|
||||||
|
@Autowired
|
||||||
|
private AppService appService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询APP信息
|
* 查询APP信息
|
||||||
|
@ -42,8 +53,7 @@ public class AppServiceImpl implements AppService
|
||||||
* @return APP信息
|
* @return APP信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AppVO selectAppById(Long id)
|
public AppVO selectAppById(Long id) {
|
||||||
{
|
|
||||||
return appMapper.selectAppById(id);
|
return appMapper.selectAppById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,8 +64,7 @@ public class AppServiceImpl implements AppService
|
||||||
* @return APP信息
|
* @return APP信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<AppVO> selectAppList(AppQuery app)
|
public List<AppVO> selectAppList(AppQuery app) {
|
||||||
{
|
|
||||||
return appMapper.selectAppList(app);
|
return appMapper.selectAppList(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,12 +75,14 @@ public class AppServiceImpl implements AppService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int insertApp(App app)
|
public int insertApp(App app) {
|
||||||
{
|
|
||||||
Integer result = transactionTemplate.execute(status -> {
|
Integer result = transactionTemplate.execute(status -> {
|
||||||
app.setCreateTime(DateUtils.getNowDate());
|
app.setCreateTime(DateUtils.getNowDate());
|
||||||
int insert = appMapper.insertApp(app);
|
int insert = appMapper.insertApp(app);
|
||||||
if (insert > 0) {
|
if (insert > 0) {
|
||||||
|
// 尝试修改用户角色
|
||||||
|
this.tryUpdateUserRole(app);
|
||||||
|
|
||||||
clearCache();
|
clearCache();
|
||||||
}
|
}
|
||||||
return insert;
|
return insert;
|
||||||
|
@ -79,6 +90,19 @@ public class AppServiceImpl implements AppService
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 尝试修改用户角色
|
||||||
|
*
|
||||||
|
* @param app
|
||||||
|
*/
|
||||||
|
private void tryUpdateUserRole(App app) {
|
||||||
|
try {
|
||||||
|
roleService.insertAuthUsers(RoleConstants.APP_ADMIN, app.getOwnerIds());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("尝试修改ID为{}的用户角色失败:{}", app.getOwnerIds(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改APP信息
|
* 修改APP信息
|
||||||
*
|
*
|
||||||
|
@ -86,11 +110,20 @@ public class AppServiceImpl implements AppService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int updateApp(App app)
|
public int updateApp(App app) {
|
||||||
{
|
|
||||||
Integer result = transactionTemplate.execute(status -> {
|
Integer result = transactionTemplate.execute(status -> {
|
||||||
|
|
||||||
|
// 清空当前APP管理员角色信息
|
||||||
|
Role role = roleMapper.selectRoleByKey(RoleConstants.APP_ADMIN);
|
||||||
|
AppVO vo = appService.selectAppById(app.getId());
|
||||||
|
roleService.deleteAuthUsers(role.getRoleId(), vo.getOwnerIds());
|
||||||
|
|
||||||
|
// 更新APP信息
|
||||||
int update = appMapper.updateApp(app);
|
int update = appMapper.updateApp(app);
|
||||||
|
|
||||||
if (update > 0) {
|
if (update > 0) {
|
||||||
|
// 尝试修改用户角色
|
||||||
|
this.tryUpdateUserRole(app);
|
||||||
clearCache();
|
clearCache();
|
||||||
}
|
}
|
||||||
return update;
|
return update;
|
||||||
|
@ -105,8 +138,7 @@ public class AppServiceImpl implements AppService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteAppByIds(Long[] ids)
|
public int deleteAppByIds(Long[] ids) {
|
||||||
{
|
|
||||||
Integer result = transactionTemplate.execute(status -> {
|
Integer result = transactionTemplate.execute(status -> {
|
||||||
int delete = appMapper.deleteAppByIds(ids);
|
int delete = appMapper.deleteAppByIds(ids);
|
||||||
if (delete > 0) {
|
if (delete > 0) {
|
||||||
|
@ -124,8 +156,7 @@ public class AppServiceImpl implements AppService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteAppById(Long id)
|
public int deleteAppById(Long id) {
|
||||||
{
|
|
||||||
Integer result = transactionTemplate.execute(status -> {
|
Integer result = transactionTemplate.execute(status -> {
|
||||||
int delete = appMapper.deleteAppById(id);
|
int delete = appMapper.deleteAppById(id);
|
||||||
if (delete > 0) {
|
if (delete > 0) {
|
||||||
|
|
|
@ -27,8 +27,7 @@ import org.springframework.transaction.support.TransactionTemplate;
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class StoreStaffServiceImpl implements StoreStaffService
|
public class StoreStaffServiceImpl implements StoreStaffService {
|
||||||
{
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private StoreStaffMapper storeStaffMapper;
|
private StoreStaffMapper storeStaffMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -45,8 +44,7 @@ public class StoreStaffServiceImpl implements StoreStaffService
|
||||||
* @return 员工运维
|
* @return 员工运维
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StoreStaffVO selectStoreStaffById(Long id,boolean scope)
|
public StoreStaffVO selectStoreStaffById(Long id, boolean scope) {
|
||||||
{
|
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -70,8 +68,7 @@ public class StoreStaffServiceImpl implements StoreStaffService
|
||||||
* @return 员工运维
|
* @return 员工运维
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<StoreStaffVO> selectStoreStaffList(StoreStaffQuery storeStaff)
|
public List<StoreStaffVO> selectStoreStaffList(StoreStaffQuery storeStaff) {
|
||||||
{
|
|
||||||
return storeStaffMapper.selectStoreStaffList(storeStaff);
|
return storeStaffMapper.selectStoreStaffList(storeStaff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,8 +79,7 @@ public class StoreStaffServiceImpl implements StoreStaffService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int insertStoreStaff(StoreStaff storeStaff)
|
public int insertStoreStaff(StoreStaff storeStaff) {
|
||||||
{
|
|
||||||
storeStaff.setCreateTime(DateUtils.getNowDate());
|
storeStaff.setCreateTime(DateUtils.getNowDate());
|
||||||
Integer result = transactionTemplate.execute(status -> {
|
Integer result = transactionTemplate.execute(status -> {
|
||||||
int rows = storeStaffMapper.insertStoreStaff(storeStaff);
|
int rows = storeStaffMapper.insertStoreStaff(storeStaff);
|
||||||
|
@ -93,7 +89,7 @@ public class StoreStaffServiceImpl implements StoreStaffService
|
||||||
this.tryUpdateUserRole(storeStaff);
|
this.tryUpdateUserRole(storeStaff);
|
||||||
|
|
||||||
// 后校验
|
// 后校验
|
||||||
// storeStaffValidator.afterCheck(storeStaff.getId());
|
storeStaffValidator.afterCheck(storeStaff.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
return rows;
|
return rows;
|
||||||
|
@ -122,9 +118,22 @@ public class StoreStaffServiceImpl implements StoreStaffService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int updateStoreStaff(StoreStaff storeStaff)
|
public int updateStoreStaff(StoreStaff storeStaff) {
|
||||||
{
|
Integer result = transactionTemplate.execute(status -> {
|
||||||
return storeStaffMapper.updateStoreStaff(storeStaff);
|
int rows = storeStaffMapper.updateStoreStaff(storeStaff);
|
||||||
|
|
||||||
|
if (rows > 0) {
|
||||||
|
// 尝试修改用户角色
|
||||||
|
this.tryUpdateUserRole(storeStaff);
|
||||||
|
|
||||||
|
// 后校验
|
||||||
|
storeStaffValidator.afterCheck(storeStaff.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
return rows;
|
||||||
|
});
|
||||||
|
|
||||||
|
return result == null ? 0 : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -134,8 +143,7 @@ public class StoreStaffServiceImpl implements StoreStaffService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteStoreStaffByIds(Long[] ids)
|
public int deleteStoreStaffByIds(Long[] ids) {
|
||||||
{
|
|
||||||
return storeStaffMapper.deleteStoreStaffByIds(ids);
|
return storeStaffMapper.deleteStoreStaffByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,8 +154,7 @@ public class StoreStaffServiceImpl implements StoreStaffService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteStoreStaffById(Long id)
|
public int deleteStoreStaffById(Long id) {
|
||||||
{
|
|
||||||
return storeStaffMapper.deleteStoreStaffById(id);
|
return storeStaffMapper.deleteStoreStaffById(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class StoreStaffValidatorImpl implements StoreStaffValidator {
|
||||||
StoreStaffVO vo = storeStaffMapper.selectStoreStaffById(id);
|
StoreStaffVO vo = storeStaffMapper.selectStoreStaffById(id);
|
||||||
ServiceUtil.assertion(vo == null, "ID为%s的运维员工数据不存在", id);
|
ServiceUtil.assertion(vo == null, "ID为%s的运维员工数据不存在", id);
|
||||||
|
|
||||||
// 校验用户是否重复绑定到一个运营区上
|
// 校验用户是否重复绑定到一个店铺上
|
||||||
this.checkRepeat(vo);
|
this.checkRepeat(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ public class StoreStaffValidatorImpl implements StoreStaffValidator {
|
||||||
query.setStoreId(vo.getStoreId());
|
query.setStoreId(vo.getStoreId());
|
||||||
query.setExcludeId(vo.getId());
|
query.setExcludeId(vo.getId());
|
||||||
int count = storeStaffMapper.selectCount(query);
|
int count = storeStaffMapper.selectCount(query);
|
||||||
ServiceUtil.assertion(count > 0, "用户%s已是%s的运维人员,请勿重复操作", vo.getUserId(), vo.getStoreId());
|
ServiceUtil.assertion(count > 0, "用户%s已是ID为%s的店铺运维人员,请勿重复操作", vo.getUserId(), vo.getStoreId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canView(List<Long> ids) {
|
private boolean canView(List<Long> ids) {
|
||||||
|
|
|
@ -161,7 +161,7 @@ public interface RoleService
|
||||||
* @param userIds 需要取消授权的用户数据ID
|
* @param userIds 需要取消授权的用户数据ID
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteAuthUsers(Long roleId, Long[] userIds);
|
public int deleteAuthUsers(Long roleId,List<Long> userIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量选择授权用户角色
|
* 批量选择授权用户角色
|
||||||
|
|
|
@ -397,7 +397,7 @@ public class RoleServiceImpl implements RoleService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteAuthUsers(Long roleId, Long[] userIds)
|
public int deleteAuthUsers(Long roleId, List<Long> userIds)
|
||||||
{
|
{
|
||||||
return userRoleMapper.deleteUserRoleInfos(roleId, userIds);
|
return userRoleMapper.deleteUserRoleInfos(roleId, userIds);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,5 +58,5 @@ public interface UserRoleMapper
|
||||||
* @param userIds 需要删除的用户数据ID
|
* @param userIds 需要删除的用户数据ID
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds);
|
public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") List<Long> userIds);
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,7 +234,7 @@ public class SysRoleController extends BaseController
|
||||||
@PreAuthorize("@ss.hasPermi('system:role:edit')")
|
@PreAuthorize("@ss.hasPermi('system:role:edit')")
|
||||||
@Log(title = "角色管理", businessType = BusinessType.GRANT)
|
@Log(title = "角色管理", businessType = BusinessType.GRANT)
|
||||||
@PutMapping("/authUser/cancelAll")
|
@PutMapping("/authUser/cancelAll")
|
||||||
public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds)
|
public AjaxResult cancelAuthUserAll(Long roleId, List<Long> userIds)
|
||||||
{
|
{
|
||||||
return toAjax(roleService.deleteAuthUsers(roleId, userIds));
|
return toAjax(roleService.deleteAuthUsers(roleId, userIds));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user