TenantService.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. package com.jsh.erp.service;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.jsh.erp.constants.BusinessConstants;
  4. import com.jsh.erp.datasource.entities.Tenant;
  5. import com.jsh.erp.datasource.entities.TenantEx;
  6. import com.jsh.erp.datasource.entities.TenantExample;
  7. import com.jsh.erp.datasource.entities.UserEx;
  8. import com.jsh.erp.datasource.mappers.TenantMapper;
  9. import com.jsh.erp.datasource.mappers.TenantMapperEx;
  10. import com.jsh.erp.datasource.mappers.UserBusinessMapperEx;
  11. import com.jsh.erp.datasource.mappers.UserMapperEx;
  12. import com.jsh.erp.exception.JshException;
  13. import com.jsh.erp.utils.PageUtils;
  14. import com.jsh.erp.utils.StringUtil;
  15. import com.jsh.erp.utils.Tools;
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18. import org.springframework.beans.factory.annotation.Value;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import org.springframework.web.context.request.RequestContextHolder;
  22. import org.springframework.web.context.request.ServletRequestAttributes;
  23. import javax.annotation.Resource;
  24. import javax.servlet.http.HttpServletRequest;
  25. import java.util.List;
  26. @Service
  27. public class TenantService {
  28. private Logger logger = LoggerFactory.getLogger(TenantService.class);
  29. @Resource
  30. private TenantMapper tenantMapper;
  31. @Resource
  32. private TenantMapperEx tenantMapperEx;
  33. @Resource
  34. private UserMapperEx userMapperEx;
  35. @Resource
  36. private UserBusinessMapperEx userBusinessMapperEx;
  37. @Resource
  38. private UserService userService;
  39. @Resource
  40. private LogService logService;
  41. @Value("${manage.roleId}")
  42. private Integer manageRoleId;
  43. public Tenant getTenant(long id)throws Exception {
  44. Tenant result=null;
  45. try{
  46. result=tenantMapper.selectByPrimaryKey(id);
  47. }catch(Exception e){
  48. JshException.readFail(logger, e);
  49. }
  50. return result;
  51. }
  52. public List<Tenant> getTenant()throws Exception {
  53. TenantExample example = new TenantExample();
  54. example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
  55. List<Tenant> list=null;
  56. try{
  57. list=tenantMapper.selectByExample(example);
  58. }catch(Exception e){
  59. JshException.readFail(logger, e);
  60. }
  61. return list;
  62. }
  63. public List<TenantEx> select(String loginName, String type, String enabled, String remark)throws Exception {
  64. List<TenantEx> list = null;
  65. try{
  66. if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) {
  67. PageUtils.startPage();
  68. list = tenantMapperEx.selectByConditionTenant(loginName, type, enabled, remark);
  69. if (null != list) {
  70. for (TenantEx tenantEx : list) {
  71. tenantEx.setCreateTimeStr(Tools.getCenternTime(tenantEx.getCreateTime()));
  72. tenantEx.setExpireTimeStr(Tools.getCenternTime(tenantEx.getExpireTime()));
  73. }
  74. }
  75. }
  76. } catch(Exception e){
  77. JshException.readFail(logger, e);
  78. }
  79. return list;
  80. }
  81. @Transactional(value = "transactionManager", rollbackFor = Exception.class)
  82. public int insertTenant(JSONObject obj, HttpServletRequest request)throws Exception {
  83. UserEx ue = JSONObject.parseObject(obj.toJSONString(), UserEx.class);
  84. int result = 0;
  85. try{
  86. ue.setUsername(ue.getLoginName());
  87. userService.checkLoginName(ue); //检查登录名
  88. userService.registerUser(ue,manageRoleId,request);
  89. result = 1;
  90. } catch(Exception e){
  91. JshException.writeFail(logger, e);
  92. }
  93. return result;
  94. }
  95. @Transactional(value = "transactionManager", rollbackFor = Exception.class)
  96. public int updateTenant(JSONObject obj, HttpServletRequest request)throws Exception {
  97. Tenant tenant = JSONObject.parseObject(obj.toJSONString(), Tenant.class);
  98. int result=0;
  99. try{
  100. if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) {
  101. //如果租户下的用户限制数量为1,则将该租户之外的用户全部禁用
  102. if (1 == tenant.getUserNumLimit()) {
  103. userMapperEx.disableUserByLimit(tenant.getTenantId());
  104. }
  105. result = tenantMapper.updateByPrimaryKeySelective(tenant);
  106. //更新租户对应的角色
  107. if(obj.get("roleId")!=null) {
  108. String ubValue = "[" + obj.getString("roleId") + "]";
  109. userBusinessMapperEx.updateValueByTypeAndKeyId("UserRole", tenant.getTenantId().toString(), ubValue);
  110. }
  111. }
  112. }catch(Exception e){
  113. JshException.writeFail(logger, e);
  114. }
  115. return result;
  116. }
  117. @Transactional(value = "transactionManager", rollbackFor = Exception.class)
  118. public int deleteTenant(Long id, HttpServletRequest request)throws Exception {
  119. int result=0;
  120. try{
  121. if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) {
  122. result = tenantMapper.deleteByPrimaryKey(id);
  123. }
  124. }catch(Exception e){
  125. JshException.writeFail(logger, e);
  126. }
  127. return result;
  128. }
  129. @Transactional(value = "transactionManager", rollbackFor = Exception.class)
  130. public int batchDeleteTenant(String ids, HttpServletRequest request)throws Exception {
  131. List<Long> idList = StringUtil.strToLongList(ids);
  132. TenantExample example = new TenantExample();
  133. example.createCriteria().andIdIn(idList);
  134. int result=0;
  135. try{
  136. if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) {
  137. result = tenantMapper.deleteByExample(example);
  138. }
  139. }catch(Exception e){
  140. JshException.writeFail(logger, e);
  141. }
  142. return result;
  143. }
  144. public int checkIsNameExist(Long id, String name)throws Exception {
  145. TenantExample example = new TenantExample();
  146. example.createCriteria().andIdNotEqualTo(id).andLoginNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
  147. List<Tenant> list=null;
  148. try{
  149. list= tenantMapper.selectByExample(example);
  150. }catch(Exception e){
  151. JshException.readFail(logger, e);
  152. }
  153. return list==null?0:list.size();
  154. }
  155. public Tenant getTenantByTenantId(long tenantId) {
  156. Tenant tenant = new Tenant();
  157. TenantExample example = new TenantExample();
  158. example.createCriteria().andTenantIdEqualTo(tenantId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
  159. List<Tenant> list = tenantMapper.selectByExample(example);
  160. if(list.size()>0) {
  161. tenant = list.get(0);
  162. }
  163. return tenant;
  164. }
  165. public int batchSetStatus(Boolean status, String ids)throws Exception {
  166. int result=0;
  167. try{
  168. if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) {
  169. String statusStr = "";
  170. if (status) {
  171. statusStr = "批量启用";
  172. } else {
  173. statusStr = "批量禁用";
  174. }
  175. logService.insertLog("用户",
  176. new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(ids).append("-").append(statusStr).toString(),
  177. ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest());
  178. List<Long> idList = StringUtil.strToLongList(ids);
  179. Tenant tenant = new Tenant();
  180. tenant.setEnabled(status);
  181. TenantExample example = new TenantExample();
  182. example.createCriteria().andIdIn(idList);
  183. result = tenantMapper.updateByExampleSelective(tenant, example);
  184. }
  185. }catch(Exception e){
  186. JshException.writeFail(logger, e);
  187. }
  188. return result;
  189. }
  190. }