浏览代码

Merge branch 'huangyuan-user' of lift-manager/lift-server into develop

huangyuan 5 年之前
父节点
当前提交
0fbaaad93d
共有 15 个文件被更改,包括 336 次插入29 次删除
  1. 1 1
      lift-common/src/main/java/cn.com.ty.lift.common/constants/ApiConstants.java
  2. 1 1
      lift-common/src/main/java/cn.com.ty.lift.common/constants/CommonEnum.java
  3. 79 0
      lift-common/src/main/java/cn.com.ty.lift.common/constants/PushMessageConstants.java
  4. 43 0
      lift-common/src/main/java/cn.com.ty.lift.common/model/PushUserInfo.java
  5. 1 1
      lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/GlobalSetService.java
  6. 2 2
      lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/GlobalSetServiceImpl.java
  7. 16 4
      lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/MtCompanyAttestationServiceImpl.java
  8. 43 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/mapper/IPushUserMapper.java
  9. 1 1
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IRoleMenuService.java
  10. 3 3
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IRoleService.java
  11. 8 2
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/LoginService.java
  12. 2 2
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/MenuService.java
  13. 101 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/PushUserService.java
  14. 2 2
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleMenuService.java
  15. 33 10
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleService.java

+ 1 - 1
lift-common/src/main/java/cn.com.ty.lift.common/constants/ApiConstants.java

@@ -219,7 +219,7 @@ public class ApiConstants {
     /**
     /**
      * 常见问题常量
      * 常见问题常量
      */
      */
-    public interface GlobalSetConstants{
+    public interface GlobalSetConstants {
         /**
         /**
          * 全局设置值:是
          * 全局设置值:是
          */
          */

+ 1 - 1
lift-common/src/main/java/cn.com.ty.lift.common/constants/CommonEnum.java

@@ -224,7 +224,7 @@ public class CommonEnum {
         MTWORK("维保工", "ROLEMTWORK"),
         MTWORK("维保工", "ROLEMTWORK"),
         CLERK("文员", "CLERK"),
         CLERK("文员", "CLERK"),
         REGION_DIRECTOR("区域主管", "REGION_DIRECTOR"),
         REGION_DIRECTOR("区域主管", "REGION_DIRECTOR"),
-        HIGH_DIRECTOR("高级主管", "HIGH_DIRECTOR"),
+        HIGH_DIRECTOR("总经理", "HIGH_DIRECTOR"),
         ENTERPRISE_ADMIN("企业管理员", "ENTERPRISE_ADMIN");
         ENTERPRISE_ADMIN("企业管理员", "ENTERPRISE_ADMIN");
 
 
         /**
         /**

+ 79 - 0
lift-common/src/main/java/cn.com.ty.lift.common/constants/PushMessageConstants.java

@@ -0,0 +1,79 @@
+package cn.com.ty.lift.common.constants;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @author huangyuan
+ * @date 2020/4/17
+ * @description 推送消息常量
+ */
+public class PushMessageConstants {
+
+    /**
+     * 推送值对应角色编码集合
+     */
+    public static HashMap<Integer, String[]> PUSH_VALUE_TO_ROLE_CODE;
+
+    /**
+     * 角色编码数组
+     */
+    public static final String[] ROLE_CODE_ARRAY = {
+            //企业管理员
+            CommonEnum.DefaultRole.ENTERPRISE_ADMIN.getCode(),
+            //高级主管
+            CommonEnum.DefaultRole.HIGH_DIRECTOR.getCode(),
+            //区域主管
+            CommonEnum.DefaultRole.REGION_DIRECTOR.getCode(),
+            //文员
+            CommonEnum.DefaultRole.CLERK.getCode(),
+            //维保工
+            CommonEnum.DefaultRole.MTWORK.getCode()
+    };
+
+    /**
+     * 企业管理员
+     */
+    public static final int PUSH_ONE = 1;
+    /**
+     * 企业管理员 + 高级主管
+     */
+    public static final int PUSH_TWO = 2;
+    /**
+     * 企业管理员 + 高级主管 + 区域主管
+     */
+    public static final int PUSH_THREE = 3;
+    /**
+     * 企业管理员 + 高级主管 + 区域主管 + 文员
+     */
+    public static final int PUSH_FOUR = 4;
+    /**
+     * 企业管理员 + 高级主管 + 区域主管 + 文员 + 维保工
+     */
+    public static final int PUSH_FIVE = 5;
+
+    /**
+     * 推送情形数组
+     */
+    public static final int[] PUSH_SITUATION_ARRAY = {
+            PUSH_ONE,
+            PUSH_TWO,
+            PUSH_THREE,
+            PUSH_FOUR,
+            PUSH_FIVE
+    };
+
+    static {
+        //初始化map
+        PUSH_VALUE_TO_ROLE_CODE = new HashMap<>();
+        //角色编码集合
+        List<String> roleCodes = new LinkedList<>();
+        //推送情形对应角色编码数组
+        for (int i = 0; i < PUSH_SITUATION_ARRAY.length; i++) {
+            roleCodes.add(ROLE_CODE_ARRAY[i]);
+            PUSH_VALUE_TO_ROLE_CODE.put(PUSH_SITUATION_ARRAY[i], roleCodes.toArray(new String[i + 1]));
+        }
+    }
+
+}

+ 43 - 0
lift-common/src/main/java/cn.com.ty.lift.common/model/PushUserInfo.java

@@ -0,0 +1,43 @@
+package cn.com.ty.lift.common.model;
+
+import lombok.Data;
+
+/**
+ * @author huangyuan
+ * @date 2020/4/17
+ * @description 推送模块用户信息
+ */
+@Data
+public class PushUserInfo {
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 用户名
+     */
+    private String userName;
+
+    /**
+     * 用户手机号
+     */
+    private String mobile;
+
+    /**
+     * 设备型号
+     */
+    private Integer deviceModel;
+
+    /**
+     * 设备标识
+     */
+    private String deviceFlag;
+
+    /**
+     * 角色名称
+     */
+    private String roleName;
+
+}

+ 1 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/GlobalSetService.java

@@ -19,5 +19,5 @@ public interface GlobalSetService extends IService<GlobalSet> {
      * @param
      * @param
      * @return
      * @return
      */
      */
-    void teamInitSetting(Long companyId);
+    boolean teamInitSetting(Long companyId);
 }
 }

+ 2 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/GlobalSetServiceImpl.java

@@ -22,7 +22,7 @@ import java.util.List;
 public class GlobalSetServiceImpl extends ServiceImpl<GlobalSetMapper, GlobalSet> implements GlobalSetService {
 public class GlobalSetServiceImpl extends ServiceImpl<GlobalSetMapper, GlobalSet> implements GlobalSetService {
 
 
     @Override
     @Override
-    public void teamInitSetting(Long companyId) {
+    public boolean teamInitSetting(Long companyId) {
         List<GlobalSet> globalSetList = new ArrayList<>();
         List<GlobalSet> globalSetList = new ArrayList<>();
         //初始化默认值
         //初始化默认值
         /**
         /**
@@ -95,6 +95,6 @@ public class GlobalSetServiceImpl extends ServiceImpl<GlobalSetMapper, GlobalSet
         globalSetList.add(new GlobalSet(companyId,
         globalSetList.add(new GlobalSet(companyId,
                 ApiConstants.GlobalSetConstants.CLERK_ADD,
                 ApiConstants.GlobalSetConstants.CLERK_ADD,
                 ApiConstants.GlobalSetConstants.ADD_AUTHORITY));
                 ApiConstants.GlobalSetConstants.ADD_AUTHORITY));
-        this.saveBatch(globalSetList);
+        return this.saveBatch(globalSetList);
     }
     }
 }
 }

+ 16 - 4
lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/MtCompanyAttestationServiceImpl.java

@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -120,14 +121,25 @@ public class MtCompanyAttestationServiceImpl extends ServiceImpl<MtCompanyAttest
         maintenanceCompany.setLimitedNum(companyAttestationRequest.getLimitedNum());
         maintenanceCompany.setLimitedNum(companyAttestationRequest.getLimitedNum());
         //3.设置用户是否是vip用户
         //3.设置用户是否是vip用户
         maintenanceCompany.setVipFlag(companyAttestationRequest.getVipFlag());
         maintenanceCompany.setVipFlag(companyAttestationRequest.getVipFlag());
-        this.updateById(mtCompanyAttestation);
+        if (!this.updateById(mtCompanyAttestation)) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "操作失败");
+        }
         //4.给企业分配默认角色,并绑定角色默认菜单
         //4.给企业分配默认角色,并绑定角色默认菜单
-        roleService.saveDefaultMessage(companyId);
+        if (!roleService.saveDefaultMessage(companyId)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "操作失败");
+        }
         //5.保存给企业分配的菜单
         //5.保存给企业分配的菜单
         menuService.companyMenu(new MenuRequest(companyId, companyAttestationRequest.getMenuIds()));
         menuService.companyMenu(new MenuRequest(companyId, companyAttestationRequest.getMenuIds()));
         //6.生成企业设置数据
         //6.生成企业设置数据
-        globalSetService.teamInitSetting(companyId);
-        maintenanceCompanyService.updateById(maintenanceCompany);
+        if (!globalSetService.teamInitSetting(companyId)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "操作失败");
+        }
+        if (!maintenanceCompanyService.updateById(maintenanceCompany)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "操作失败");
+        }
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "操作成功");
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "操作成功");
     }
     }
 
 

+ 43 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/mapper/IPushUserMapper.java

@@ -0,0 +1,43 @@
+package cn.com.ty.lift.system.user.dao.mapper;
+
+import cn.com.ty.lift.common.model.PushUserInfo;
+import cn.com.xwy.boot.mybatis.MyBatisMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 专家表 Mapper 接口
+ * </p>
+ *
+ * @author huangyuan
+ * @since 2020-04-17
+ */
+@MyBatisMapper
+public interface IPushUserMapper extends BaseMapper<PushUserInfo> {
+
+    /**
+     * 获取要推送的用户信息
+     *
+     * @param companyId 当前公司id
+     * @param roleCodes 角色编码集合
+     * @return 用户信息
+     * @description 获取要推送的用户信息
+     * @date 2020/4/17 2:03 下午
+     */
+    @Select("select ui.user_id as userId, "
+            + "ui.name as userName, "
+            + "ua.mobile as mobile, "
+            + "ua.device_model as deviceModel, "
+            + "ua.device_flag as deviceFlag, "
+            + "r.name as roleName from "
+            + "user_account ua "
+            + "left join user_info ui on ua.user_id = ui.user_id "
+            + "left join user_role ur on ua.user_id = ur.user_id "
+            + "left join role r on r.id = ur.role_id"
+            + "where r.code in#{roleCodes} "
+            + "and ur.company_id=#{companyId}")
+    List<PushUserInfo> getPushUserInfo(Long companyId, List<String> roleCodes);
+}

+ 1 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IRoleMenuService.java

@@ -26,7 +26,7 @@ public interface IRoleMenuService extends IService<RoleMenu> {
      * @description 删除角色菜单关联信息
      * @description 删除角色菜单关联信息
      * @date 2019/11/27 10:03 AM
      * @date 2019/11/27 10:03 AM
      */
      */
-    void deleteRoleMenu(Long roleId);
+    int deleteRoleMenu(Long roleId);
 
 
     /**
     /**
      * @param
      * @param

+ 3 - 3
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IRoleService.java

@@ -67,10 +67,10 @@ public interface IRoleService extends IService<Role> {
     /***
     /***
      * @description 给其分配默认角色
      * @description 给其分配默认角色
      * @date 2019-12-12 16:38
      * @date 2019-12-12 16:38
-     * @param
-     * @return
+     * @param companyId 公司id
+     * @return 是否成功
      */
      */
-    void saveDefaultMessage(Long companyId);
+    boolean saveDefaultMessage(Long companyId);
 
 
     /**
     /**
      * @param
      * @param

+ 8 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/LoginService.java

@@ -147,13 +147,15 @@ public class LoginService implements ILoginService {
         //设置token信息
         //设置token信息
         userResponse.setToken(userRequest.getToken());
         userResponse.setToken(userRequest.getToken());
         //校验用户信息,并设置用户信息
         //校验用户信息,并设置用户信息
-        RestResponse restResponse = checkAndSetChangeInfo(userRequest,userResponse);
+        RestResponse restResponse = checkAndSetChangeInfo(userRequest, userResponse);
         //如果校验信息不为空返回校验信息
         //如果校验信息不为空返回校验信息
         if (restResponse != null) {
         if (restResponse != null) {
             return restResponse;
             return restResponse;
         }
         }
         //更新redis中的信息数据
         //更新redis中的信息数据
         updateUserInfoInRedis(userResponse);
         updateUserInfoInRedis(userResponse);
+        //在session中设置切换团队后的公司id
+        request.getSession().setAttribute(ApiConstants.CURRENT_COMPANY_ID, userRequest.getCompanyId());
         return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "切换团队成功");
         return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "切换团队成功");
     }
     }
 
 
@@ -197,8 +199,12 @@ public class LoginService implements ILoginService {
     private UserResponse initLoginInfo(HttpServletRequest request, Long userId) {
     private UserResponse initLoginInfo(HttpServletRequest request, Long userId) {
         //获取用户信息
         //获取用户信息
         UserResponse userResponse = userService.getLoginUserInfo(userId);
         UserResponse userResponse = userService.getLoginUserInfo(userId);
-        //将用户手机号放入session中
+        //将当前用户id放入session中
         request.getSession().setAttribute(ApiConstants.CURRENT_USER_ID, userResponse.getUserId());
         request.getSession().setAttribute(ApiConstants.CURRENT_USER_ID, userResponse.getUserId());
+        //将当前公司id放入session中
+        if (userResponse.getMaintenanceCompany() != null) {
+            request.getSession().setAttribute(ApiConstants.CURRENT_COMPANY_ID, userResponse.getMaintenanceCompany().getId());
+        }
         //封装登录用户信息
         //封装登录用户信息
         Map<String, Object> currentUserInfoMap = getUserInfoMap(userResponse);
         Map<String, Object> currentUserInfoMap = getUserInfoMap(userResponse);
         String mobileUserInfo = userResponse.getMobile()
         String mobileUserInfo = userResponse.getMobile()

+ 2 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/MenuService.java

@@ -105,13 +105,13 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> implements IMenuS
                 .eq("company_id", companyId)
                 .eq("company_id", companyId)
         );
         );
         List<Long> companyMenuIds = ProjectUtils.getAttrList(needDeleteCompanyMenuList, "id", null);
         List<Long> companyMenuIds = ProjectUtils.getAttrList(needDeleteCompanyMenuList, "id", null);
-        if (companyMenuIds != null && companyMenuIds.size() > 0) {
+        if (companyMenuIds.size() > 0) {
             companyMenuService.removeByIds(companyMenuIds);
             companyMenuService.removeByIds(companyMenuIds);
         }
         }
         //获取菜单id列表
         //获取菜单id列表
         List<Long> menuIdList = ProjectUtils.getLongIdFromIds(menuRequest.getMenuIds());
         List<Long> menuIdList = ProjectUtils.getLongIdFromIds(menuRequest.getMenuIds());
         List<CompanyMenu> needSaveCompanyMenuList = new ArrayList<>();
         List<CompanyMenu> needSaveCompanyMenuList = new ArrayList<>();
-        if (menuIdList != null && menuIdList.size() > 0) {
+        if (menuIdList.size() > 0) {
             for (Long menuId : menuIdList) {
             for (Long menuId : menuIdList) {
                 CompanyMenu companyMenu = new CompanyMenu();
                 CompanyMenu companyMenu = new CompanyMenu();
                 companyMenu.setCompanyId(companyId);
                 companyMenu.setCompanyId(companyId);

+ 101 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/PushUserService.java

@@ -0,0 +1,101 @@
+package cn.com.ty.lift.system.user.service.impl;
+
+import cn.com.ty.lift.common.constants.ApiConstants;
+import cn.com.ty.lift.common.constants.PushMessageConstants;
+import cn.com.ty.lift.common.model.PushUserInfo;
+import cn.com.ty.lift.system.user.dao.mapper.IPushUserMapper;
+import cn.com.xwy.boot.service.impl.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author huangyuan
+ * @date 2020/4/17
+ * @description
+ */
+@Service
+public class PushUserService extends BaseServiceImpl<IPushUserMapper, PushUserInfo> {
+
+    /**
+     * @param pushSituation 推送情形:1 2 3 4 5
+     *                      :1 企业管理员
+     *                      :2 企业管理员 + 总经理
+     *                      :3 企业管理员 + 总经理 + 区域主管
+     *                      :4 企业管理员 + 总经理 + 区域主管 + 文员
+     *                      :5 企业管理员 + 总经理 + 区域主管 + 文员 + 维保工
+     * @return 要推送给的用户信息
+     * @description 通过推送情形获取对应用户信息
+     * @date 2020/4/17 11:14 上午
+     */
+    public List<PushUserInfo> getPushUserInfo(int pushSituation) {
+        String [] roleCodes = PushMessageConstants.PUSH_VALUE_TO_ROLE_CODE.get(pushSituation);
+        if(roleCodes != null && roleCodes.length > 0) {
+            return getPushUserInfo(Arrays.asList(roleCodes));
+        }
+        return null;
+    }
+
+    /**
+     * @param roleCodes 角色编码集合
+     * @return 要推送的用户信息
+     * @description
+     * @date 2020/4/17 3:38 下午
+     */
+    public List<PushUserInfo> getPushUserInfo(List<String> roleCodes) {
+        //获取当前公司id
+        Long companyId = getCurrentCompanyId();
+        return this.baseMapper.getPushUserInfo(companyId, roleCodes);
+    }
+
+    /**
+     * @return 当前用户id
+     * @description 获取当前用户id
+     * @date 2020/4/17 10:06 上午
+     */
+    private Long getCurrentUserId() {
+        return getAttributeFromSession(ApiConstants.CURRENT_USER_ID);
+    }
+
+
+    /**
+     * @return 当前公司id
+     * @description 获取当前公司id
+     * @date 2020/4/17 10:09 上午
+     */
+    private Long getCurrentCompanyId() {
+        return getAttributeFromSession(ApiConstants.CURRENT_COMPANY_ID);
+    }
+
+    /**
+     * @param attributeName 属性名
+     * @return 属性值
+     * @description 从session中获取
+     * @date 2020/4/17 10:09 上午
+     */
+    private Long getAttributeFromSession(String attributeName) {
+        HttpSession session = getHttpSession();
+        if (session != null) {
+            return (Long) session.getAttribute(attributeName);
+        }
+        return null;
+    }
+
+    /**
+     * @return session
+     * @description 获取session
+     * @date 2020/4/17 10:06 上午
+     */
+    private HttpSession getHttpSession() {
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(
+                RequestContextHolder.getRequestAttributes())).getRequest();
+        return request.getSession();
+    }
+
+}

+ 2 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleMenuService.java

@@ -47,8 +47,8 @@ public class RoleMenuService extends ServiceImpl<RoleMenuMapper, RoleMenu> imple
     }
     }
 
 
     @Override
     @Override
-    public void deleteRoleMenu(Long roleId) {
-        roleMenuMapper.deleteByRoleId(roleId);
+    public int deleteRoleMenu(Long roleId) {
+        return roleMenuMapper.deleteByRoleId(roleId);
     }
     }
 
 
     @Override
     @Override

+ 33 - 10
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleService.java

@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.*;
@@ -78,9 +79,14 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
         Role role = new Role(roleRequest);
         Role role = new Role(roleRequest);
         role.setCreateTime(new Date());
         role.setCreateTime(new Date());
         //保存角色信息
         //保存角色信息
-        roleMapper.insert(role);
+        if (roleMapper.insert(role) == 0) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "保存角色信息失败");
+        }
         //保存角色菜单关联关系
         //保存角色菜单关联关系
-        roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds()); 
+        if (roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds())) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "保存角色信息失败");
+        }
         return RestResponse.success(role, ApiConstants.RESULT_SUCCESS, "保存角色信息成功");
         return RestResponse.success(role, ApiConstants.RESULT_SUCCESS, "保存角色信息成功");
     }
     }
 
 
@@ -93,11 +99,19 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
         role.setName(roleRequest.getName());
         role.setName(roleRequest.getName());
         role.setUpdateTime(new Date());
         role.setUpdateTime(new Date());
         //更新角色信息
         //更新角色信息
-        roleMapper.updateById(role);
+        if (roleMapper.updateById(role) == 0) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新角色信息失败");
+        }
         //删除角色原来关联的菜单信息
         //删除角色原来关联的菜单信息
-        roleMenuService.deleteRoleMenu(role.getId());
+        if (roleMenuService.deleteRoleMenu(role.getId()) == 0) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新角色信息失败");
+        }
         //保存角色关联的新的菜单信息
         //保存角色关联的新的菜单信息
-        roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds());
+        if (roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds())) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新角色信息失败");
+        }
         return RestResponse.success(role, ApiConstants.RESULT_SUCCESS, "更新角色信息成功");
         return RestResponse.success(role, ApiConstants.RESULT_SUCCESS, "更新角色信息成功");
     }
     }
 
 
@@ -114,7 +128,10 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
         }
         }
         Role role = roleMapper.selectById(roleId);
         Role role = roleMapper.selectById(roleId);
         role.setDeleteFlag(ApiConstants.DELETE_YES);
         role.setDeleteFlag(ApiConstants.DELETE_YES);
-        roleMapper.updateById(role);
+        int updateRoleFlag = roleMapper.updateById(role);
+        if (updateRoleFlag == 0) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "删除失败");
+        }
         //删除角色菜单关联信息
         //删除角色菜单关联信息
         roleMenuService.deleteRoleMenu(roleId);
         roleMenuService.deleteRoleMenu(roleId);
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "删除成功");
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "删除成功");
@@ -145,7 +162,7 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
 
 
     @Override
     @Override
     @Transactional
     @Transactional
-    public void saveDefaultMessage(Long companyId) {
+    public boolean saveDefaultMessage(Long companyId) {
         //默认角色列表
         //默认角色列表
         List<Role> defaultRoleList = new ArrayList<>();
         List<Role> defaultRoleList = new ArrayList<>();
         for (CommonEnum.DefaultRole defaultRole : DefaultMenuConstants.DEFAULT_ROLE) {
         for (CommonEnum.DefaultRole defaultRole : DefaultMenuConstants.DEFAULT_ROLE) {
@@ -155,7 +172,9 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
             defaultRoleList.add(newRole);
             defaultRoleList.add(newRole);
         }
         }
         //保存默认角色
         //保存默认角色
-        this.saveBatch(defaultRoleList);
+        if (!this.saveBatch(defaultRoleList)) {
+            return false;
+        }
         //关联关系列表
         //关联关系列表
         List<RoleMenu> needSaveRoleMenuList = new ArrayList<>();
         List<RoleMenu> needSaveRoleMenuList = new ArrayList<>();
         //生成角色菜单关联关系
         //生成角色菜单关联关系
@@ -169,7 +188,11 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
             }
             }
         }
         }
         //需要保存角色菜单信息
         //需要保存角色菜单信息
-        roleMenuService.saveBatch(needSaveRoleMenuList);
+        if (!roleMenuService.saveBatch(needSaveRoleMenuList)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return false;
+        }
+        return true;
     }
     }
 
 
     @Override
     @Override
@@ -184,7 +207,7 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
             Map<Long, UserRole> userIdToUserRole = ProjectUtils.attrToObjMap(userRoleList, "userId", null);
             Map<Long, UserRole> userIdToUserRole = ProjectUtils.attrToObjMap(userRoleList, "userId", null);
             //获取角色列表
             //获取角色列表
             List<Long> roleIdList = ProjectUtils.getAttrList(userRoleList, "roleId", null);
             List<Long> roleIdList = ProjectUtils.getAttrList(userRoleList, "roleId", null);
-            if(roleIdList != null && roleIdList.size() > 0){
+            if (roleIdList != null && roleIdList.size() > 0) {
                 List<Role> roleList = (List<Role>) this.listByIds(roleIdList);
                 List<Role> roleList = (List<Role>) this.listByIds(roleIdList);
                 Map<Long, Role> idToRole = ProjectUtils.attrToObjMap(roleList, "id", null);
                 Map<Long, Role> idToRole = ProjectUtils.attrToObjMap(roleList, "id", null);
                 for (Long userId : userIdList) {
                 for (Long userId : userIdList) {