FleetDriverMsgServiceImpl.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. package com.ruoyi.basicData.service.impl;
  2. import com.ruoyi.basicData.domain.FleetDriverMsg;
  3. import com.ruoyi.basicData.domain.TCorps;
  4. import com.ruoyi.basicData.mapper.FleetDriverMsgMapper;
  5. import com.ruoyi.basicData.mapper.TCorpsMapper;
  6. import com.ruoyi.basicData.service.IFleetDriverMsgService;
  7. import com.ruoyi.common.core.domain.AjaxResult;
  8. import com.ruoyi.common.core.domain.entity.SysRole;
  9. import com.ruoyi.common.core.domain.entity.SysUser;
  10. import com.ruoyi.common.utils.DateUtils;
  11. import com.ruoyi.common.utils.SecurityUtils;
  12. import com.ruoyi.common.utils.StringUtils;
  13. import com.ruoyi.orderPlan.domain.Ftmsorderbillscars;
  14. import com.ruoyi.orderPlan.mapper.FtmsorderbillscarsMapper;
  15. import com.ruoyi.system.domain.SysUserRole;
  16. import com.ruoyi.system.mapper.SysRoleMapper;
  17. import com.ruoyi.system.mapper.SysUserMapper;
  18. import com.ruoyi.system.mapper.SysUserPostMapper;
  19. import com.ruoyi.system.mapper.SysUserRoleMapper;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  24. import java.util.ArrayList;
  25. import java.util.Date;
  26. import java.util.List;
  27. import java.util.Map;
  28. /**
  29. * 【司机】Service业务层处理
  30. *
  31. * @author ruoyi
  32. * @date 2021-03-04
  33. */
  34. @Service
  35. public class FleetDriverMsgServiceImpl implements IFleetDriverMsgService {
  36. @Autowired
  37. private TCorpsMapper corpsMapper;
  38. @Autowired
  39. private FleetDriverMsgMapper fleetDriverMsgMapper;
  40. @Autowired
  41. private SysRoleMapper roleMapper;
  42. @Autowired
  43. private FtmsorderbillscarsMapper ftmsorderbillscarsMapper;
  44. @Autowired
  45. private SysUserMapper userMapper;
  46. @Autowired
  47. private SysUserPostMapper userPostMapper;
  48. @Autowired
  49. private SysUserRoleMapper userRoleMapper;
  50. /**
  51. * 查询【司机】
  52. *
  53. * @param id 【司机】ID
  54. * @return 【司机】
  55. */
  56. @Override
  57. public TCorps selectFleetDriverMsgById(Long id) {
  58. return corpsMapper.selectTCorpsById(id);
  59. }
  60. /**
  61. * 查询【司机】列表
  62. *
  63. * @param fleetDriverMsg 【司机】
  64. * @return 【司机】
  65. */
  66. @Override
  67. public List<FleetDriverMsg> selectFleetDriverMsgList(FleetDriverMsg fleetDriverMsg) {
  68. return fleetDriverMsgMapper.selectFleetDriverMsgList(fleetDriverMsg);
  69. }
  70. @Override
  71. public List<Map<String, Object>> selectFleetDriverMsgListMap(FleetDriverMsg fleetDriverMsg) {
  72. return fleetDriverMsgMapper.selectFleetDriverMsgListMap(fleetDriverMsg);
  73. }
  74. /**
  75. * 新增【司机】
  76. *
  77. * @param tCorps 【司机】
  78. * @return 结果
  79. */
  80. @Override
  81. @Transactional
  82. public AjaxResult insertFleetDriverMsg(TCorps tCorps) {
  83. // 检验必填
  84. if (StringUtils.isNull(tCorps.getfPid()) ||
  85. StringUtils.isNull(tCorps.getfName())) {
  86. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  87. return AjaxResult.error("请填写必输项");
  88. }
  89. String typeValue = "[\"102\"]";
  90. tCorps.setfTypeid(typeValue);
  91. tCorps.setfTypename("司机");
  92. tCorps.setfStatus("0");
  93. if (null != tCorps.getfId()) {
  94. updateDriverPhone(tCorps);
  95. tCorps.setUpdateTime(new Date());
  96. tCorps.setUpdateBy(SecurityUtils.getUsername());
  97. corpsMapper.updateTCorps(tCorps);
  98. return AjaxResult.success();
  99. } else {
  100. SysUser sysUser = new SysUser();
  101. sysUser.setPhonenumber(tCorps.getfTel());
  102. sysUser.setUserName(tCorps.getLoginAccount());
  103. SysUser userPhone = userMapper.checkPhoneUnique(sysUser.getPhonenumber());
  104. if (userMapper.checkUserNameUnique(sysUser.getUserName()) > 1) {
  105. return AjaxResult.error("新增用户'" + sysUser.getUserName() + "'失败,登录账号已存在");
  106. } else if (StringUtils.isNotNull(userPhone) && "T".equals(userPhone.getRelatedNo())) {
  107. return AjaxResult.error("新增用户'" + sysUser.getUserName() + "'失败,手机号码已存在");
  108. }
  109. long userId = 0L;
  110. // 查询是否有用户提前关注小程序
  111. SysUser user = userMapper.selectUserByTel(tCorps.getfTel());
  112. if (StringUtils.isNotNull(user)) {
  113. // 该用户提前关注小程序了
  114. user.setRelatedNo("T");
  115. user.setUserSystem("2");
  116. user.setNickName(tCorps.getfName());
  117. user.setUpdateTime(new Date());
  118. user.setStatus("1");
  119. user.setUpdateBy(SecurityUtils.getUsername());
  120. user.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  121. userMapper.updateUser(user);
  122. userId = user.getUserId();
  123. } else {
  124. // 添加用户表
  125. SysUser use = new SysUser();
  126. use.setUserSystem("2");
  127. use.setStatus("1");
  128. use.setUserName(tCorps.getfTel());
  129. use.setNickName(tCorps.getfTel());
  130. use.setPhonenumber(tCorps.getfTel());
  131. //sysUser.setEmail(fleetDriverMsg.get);
  132. use.setUserType("11");
  133. use.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  134. // 新增用户信息
  135. userMapper.insertUser(use);
  136. userId = use.getUserId();
  137. }
  138. // 新增用户与角色管理
  139. // 查询是否存在车队 角色
  140. SysRole role = roleMapper.selectRoleByName("司机");
  141. if (StringUtils.isNull(role)) {
  142. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  143. return AjaxResult.error("未找到司机角色,请创建司机角色后提交");
  144. }
  145. // 创建用户与角色关联
  146. List<SysUserRole> list = new ArrayList<SysUserRole>();
  147. SysUserRole sysUserRole = new SysUserRole();
  148. sysUserRole.setRoleId(role.getRoleId());
  149. sysUserRole.setUserId(userId);
  150. list.add(sysUserRole);
  151. userRoleMapper.batchUserRole(list);
  152. tCorps.setCreateTime(new Date());
  153. tCorps.setCreateBy(SecurityUtils.getUsername());
  154. corpsMapper.insertTCorps(tCorps);
  155. return AjaxResult.success();
  156. }
  157. }
  158. @Transactional
  159. public void updateDriverPhone(TCorps tCorps) {
  160. TCorps corps = corpsMapper.selectTCorpsById(tCorps.getfId());
  161. SysUser sysUser = userMapper.selectUserByTel(corps.getfTel());
  162. if (StringUtils.isNotNull(sysUser)) {
  163. boolean updateStatus = false;
  164. // 跟新用户手机号以及姓名
  165. if (!sysUser.getPhonenumber().equals(tCorps.getfTel())) {
  166. updateStatus = true;
  167. sysUser.setPhonenumber(tCorps.getfTel());
  168. }
  169. if (!sysUser.getNickName().equals(tCorps.getfTel())) {
  170. updateStatus = true;
  171. sysUser.setNickName(tCorps.getfTel());
  172. }
  173. if (updateStatus) {
  174. sysUser.setUpdateTime(new Date());
  175. sysUser.setUpdateBy(SecurityUtils.getUsername());
  176. userMapper.updateUser(sysUser);
  177. }
  178. }
  179. // 更新司机表手机号以及姓名
  180. ftmsorderbillscarsMapper.updateftmsorderbillscarsDriverNamePhone();
  181. }
  182. /**
  183. * 修改【司机】
  184. *
  185. * @param fleetDriverMsg 【司机】
  186. * @return 结果
  187. */
  188. @Override
  189. public int updateFleetDriverMsg(FleetDriverMsg fleetDriverMsg) {
  190. fleetDriverMsg.setUpdateTime(DateUtils.getNowDate());
  191. return fleetDriverMsgMapper.updateFleetDriverMsg(fleetDriverMsg);
  192. }
  193. /**
  194. * 批量删除【司机】
  195. *
  196. * @param ids 需要删除的【司机】ID
  197. * @return 结果
  198. */
  199. @Override
  200. @Transactional
  201. public AjaxResult deleteFleetDriverMsgByIds(Long[] ids) {
  202. int line = 0;
  203. for (Long id : ids) {
  204. line++;
  205. TCorps corps = corpsMapper.selectTCorpsById(id);
  206. Ftmsorderbillscars ftmsorderbillscars = new Ftmsorderbillscars();
  207. ftmsorderbillscars.setDriverTel(corps.getfTel());
  208. ftmsorderbillscars.setDriverName(corps.getfName());
  209. if (ftmsorderbillscarsMapper.selectftmsorderbillscarsCount(ftmsorderbillscars) > 0) {
  210. return AjaxResult.error("第" + line + "行数据已被使用无法删除");
  211. }
  212. corpsMapper.deleteTCorpsById(id);
  213. SysUser sysUser = userMapper.selectUserByUserName(corps.getfTel());
  214. userMapper.deleteUserById(sysUser.getUserId());
  215. userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId());
  216. }
  217. return AjaxResult.success();
  218. }
  219. /**
  220. * 删除【司机】信息
  221. *
  222. * @param id 【司机】ID
  223. * @return 结果
  224. */
  225. @Override
  226. @Transactional
  227. public int deleteFleetDriverMsgById(Long id) {
  228. TCorps corps = corpsMapper.selectTCorpsById(id);
  229. SysUser sysUser = userMapper.selectUserByUserName(corps.getfTel());
  230. userMapper.deleteUserById(sysUser.getUserId());
  231. userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId());
  232. return corpsMapper.deleteTCorpsById(id);
  233. }
  234. /**
  235. * 下拉框查询【司机】id、name列表
  236. *
  237. * @param tCorps 条件
  238. * @return 结果
  239. */
  240. @Override
  241. public List<TCorps> selectFleetDriverMsgIdNameList(TCorps tCorps) {
  242. return corpsMapper.selectTCorpsList(tCorps);
  243. }
  244. }