SpController.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. package com.caimei.modules.user.web.newUser;
  2. import com.caimei.constants.ServiceProviderStatus;
  3. import com.caimei.constants.UserIdentity;
  4. import com.caimei.constants.UserType;
  5. import com.caimei.modules.bulkpurchase.entity.CmClub;
  6. import com.caimei.modules.bulkpurchase.service.CmClubService;
  7. import com.caimei.modules.project.dao.ClubDao;
  8. import com.caimei.modules.project.dao.ServiceProviderDao;
  9. import com.caimei.modules.project.model.ClubModel;
  10. import com.caimei.modules.project.model.ServiceProviderModel;
  11. import com.caimei.modules.sys.utils.ValidateUtils;
  12. import com.caimei.modules.user.aop.OperationLogAnnotation;
  13. import com.caimei.modules.user.entity.*;
  14. import com.caimei.modules.user.service.*;
  15. import com.caimei.utils.AppKeys;
  16. import com.caimei.utils.DateUtils;
  17. import com.caimei.utils.MD5Utils;
  18. import com.google.common.collect.Maps;
  19. import com.thinkgem.jeesite.common.config.Global;
  20. import com.thinkgem.jeesite.common.persistence.Page;
  21. import com.thinkgem.jeesite.common.utils.StringUtils;
  22. import com.thinkgem.jeesite.common.web.BaseController;
  23. import com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm;
  24. import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
  25. import org.apache.commons.collections.CollectionUtils;
  26. import org.apache.shiro.authz.annotation.RequiresPermissions;
  27. import org.springframework.stereotype.Controller;
  28. import org.springframework.ui.Model;
  29. import org.springframework.web.bind.annotation.ModelAttribute;
  30. import org.springframework.web.bind.annotation.RequestMapping;
  31. import org.springframework.web.bind.annotation.RequestParam;
  32. import org.springframework.web.bind.annotation.ResponseBody;
  33. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  34. import javax.annotation.Resource;
  35. import javax.servlet.http.HttpServletRequest;
  36. import javax.servlet.http.HttpServletResponse;
  37. import java.text.SimpleDateFormat;
  38. import java.util.Date;
  39. import java.util.HashMap;
  40. import java.util.List;
  41. import java.util.Map;
  42. /**
  43. * Description
  44. *
  45. * @author : Charles
  46. * @date : 2020/4/12
  47. */
  48. @Controller
  49. @RequestMapping(value = "${adminPath}/new/user/cmSp")
  50. public class SpController extends BaseController {
  51. @Resource
  52. private CmSpService cmSpService;
  53. @Resource
  54. private CmUserService cmUserService;
  55. @Resource
  56. private ClubChangeSpReviewService clubChangeSpReviewService;
  57. @Resource
  58. private ServiceProviderDao serviceProviderDao;
  59. @Resource
  60. private CmClubService cmClubService;
  61. @Resource
  62. private ClubDao clubDao;
  63. @Resource
  64. private SysLogService sysLogService;
  65. @Resource
  66. private NewCmClubService newCmClubService;
  67. @ModelAttribute
  68. public NewCmSp get(@RequestParam(required = false) String id) {
  69. NewCmSp entity = null;
  70. if (StringUtils.isNotBlank(id)) {
  71. entity = cmSpService.get(id);
  72. }
  73. if (entity == null) {
  74. entity = new NewCmSp();
  75. }
  76. return entity;
  77. }
  78. /**
  79. * 机构更换协销审核列表
  80. *
  81. * @param clubChangeSp
  82. * @param request
  83. * @param response
  84. * @param model
  85. * @return
  86. */
  87. @RequiresPermissions("user:newCmClub:view")
  88. @RequestMapping("clubChangeSp")
  89. public String list(ClubChangeSp clubChangeSp, HttpServletRequest request, HttpServletResponse response, Model model) {
  90. Page<ClubChangeSp> page = clubChangeSpReviewService.findPage(new Page<ClubChangeSp>(request, response), clubChangeSp);
  91. model.addAttribute("page", page);
  92. return "modules/userNew/clubChangeSpList";
  93. }
  94. //保存 审核
  95. @RequiresPermissions("user:newCmClub:edit")
  96. @ResponseBody
  97. @RequestMapping(value = "saveReview")
  98. public Map<String, Object> saveReview(String reviewStatus, Integer clubChangeSpRecordID, Integer newSpID) {
  99. OperationalLogs sysLog = new OperationalLogs();
  100. Map<String, Object> map = Maps.newLinkedHashMap();
  101. try {
  102. Date currentTime = new Date();
  103. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HHmmss");
  104. String dateString = formatter.format(currentTime);
  105. ClubChangeSp clubChangeSp = new ClubChangeSp();
  106. //审核通过
  107. if (StringUtils.equals("pass", reviewStatus)) {
  108. ClubChangeSp cssp = clubChangeSpReviewService.getClubChangeSpById(clubChangeSpRecordID);
  109. if (null != cssp) {
  110. String ClubsNames = sysLogService.ClubsName(clubChangeSpRecordID);
  111. Integer oldserviceProviderId = cssp.getOldSpID();
  112. Integer clubId = cssp.getClubID();
  113. Integer oldSpID = cssp.getOldSpID();
  114. Integer newspId = cssp.getNewSpID();
  115. List<Integer> oldname = newCmClubService.ClubsIds(cssp);
  116. for (Integer i : oldname) {
  117. if (i == null) {
  118. newCmClubService.oldname(oldserviceProviderId, clubId, oldSpID, newspId);
  119. } else {
  120. newCmClubService.oldnames(clubId, oldSpID, newspId);
  121. newCmClubService.updateServiceProvider(clubId, oldSpID, newspId);
  122. }
  123. }
  124. // 查询serviceprovider协销表
  125. List<ServiceProviderModel> serviceprovider = serviceProviderDao.getServiceproviderById(cssp.getNewSpID());
  126. // 查询cm_bind表
  127. if (CollectionUtils.isNotEmpty(serviceprovider)) {
  128. ServiceProviderModel serviceProvider = serviceprovider.get(0);
  129. Integer userID = serviceProvider.getUserID();
  130. //fixme gclub -- club 更换协销
  131. CmClub club = cmClubService.get(cssp.getClubID().toString());
  132. club.setDefaultServiceProviderUpdTime(dateString);//协销修改时间
  133. club.setMainServiceProviderID(serviceProvider.getMainServiceProviderID());//协销经理
  134. club.setSpID(serviceProvider.getServiceProviderID());
  135. club.setScanFlag("2");
  136. club.setInviterName(serviceProvider.getName());
  137. cmClubService.save(club);
  138. // 更新通过状态
  139. clubChangeSp.setCheckTime(new Date());
  140. clubChangeSp.setCheckStatus("1");//审核通过
  141. clubChangeSp.setClubChangeSpRecordID(clubChangeSpRecordID);
  142. clubChangeSpReviewService.updateCheckStatusById(clubChangeSp);
  143. map.put("success", true);
  144. map.put("msg", "操作成功");
  145. String ClubsName = sysLogService.ClubsName(clubChangeSpRecordID);
  146. String jgName = sysLogService.JgName(clubChangeSpRecordID);
  147. String linkMans = sysLogService.ClubName(clubChangeSpRecordID);
  148. sysLog.setOperationtime(new Date());
  149. if (ClubsNames == null) {
  150. sysLog.setActioncontent("采美默认协销经理(官方账号)" + "更换为" + ClubsName);
  151. } else {
  152. sysLog.setActioncontent(ClubsNames + "更换为" + ClubsName);
  153. }
  154. sysLog.setOperationtype("更换协销");
  155. sysLog.setContact(linkMans);
  156. sysLog.setInstitutionName(jgName);
  157. SystemAuthorizingRealm.Principal principal = UserUtils.getPrincipal();
  158. String username = principal.getName();
  159. sysLog.setOperator(username);
  160. //调用service保存SysLog实体类到数据库
  161. if (!"".equals(sysLog.getActioncontent())) {
  162. if (sysLog.getInstitutionName() != null && sysLog.getContact() != null) {
  163. sysLogService.insert(sysLog);
  164. }
  165. }
  166. // 更换协销成功、添加机构更换协销记录
  167. if (null != serviceProvider.getServiceProviderID()) {
  168. sysLogService.insetProvider(serviceProvider.getServiceProviderID(), clubId, username);
  169. }
  170. } else {
  171. map.put("success", false);
  172. map.put("msg", "操作失败");
  173. logger.info("协销信息异常!!!");
  174. }
  175. } else {
  176. map.put("success", false);
  177. map.put("msg", "操作失败");
  178. logger.info("机构更换协销信息异常!!!");
  179. }
  180. }
  181. //审核未通过
  182. if (StringUtils.equals("fail", reviewStatus)) {
  183. clubChangeSp.setCheckTime(new Date());
  184. clubChangeSp.setCheckStatus("-1");//审核未通过
  185. clubChangeSp.setClubChangeSpRecordID(clubChangeSpRecordID);
  186. clubChangeSpReviewService.updateCheckStatusById(clubChangeSp);
  187. String jgName = sysLogService.JgName(clubChangeSpRecordID);
  188. String linkMans = sysLogService.ClubName(clubChangeSpRecordID);
  189. sysLog.setOperationtime(new Date());
  190. if (!"".equals(linkMans)) {
  191. sysLog.setActioncontent("审核不通过");
  192. }
  193. sysLog.setOperationtype("更换协销");
  194. sysLog.setContact(linkMans);
  195. sysLog.setInstitutionName(jgName);
  196. SystemAuthorizingRealm.Principal principal = UserUtils.getPrincipal();
  197. String username = principal.getName();
  198. sysLog.setOperator(username);
  199. //调用service保存SysLog实体类到数据库
  200. if (!"".equals(sysLog.getActioncontent())) {
  201. if (sysLog.getInstitutionName() != null && sysLog.getContact() != null) {
  202. sysLogService.insert(sysLog);
  203. }
  204. }
  205. map.put("success", true);
  206. map.put("msg", "操作成功");
  207. }
  208. } catch (Exception e) {
  209. logger.debug(e.toString(), e);
  210. map.put("success", false);
  211. map.put("msg", "操作失败");
  212. }
  213. return map;
  214. }
  215. /**
  216. * 协销管理
  217. *
  218. * @param newCmSp
  219. * @param request
  220. * @param response
  221. * @param model
  222. * @return
  223. */
  224. @RequiresPermissions("user:newCmClub:view")
  225. @RequestMapping(value = {"cmSpList", ""})
  226. public String list(NewCmSp newCmSp, HttpServletRequest request, HttpServletResponse response, Model model) {
  227. Page<NewCmSp> page = cmSpService.findPage(new Page<NewCmSp>(request, response), newCmSp);
  228. if (CollectionUtils.isEmpty(cmSpService.findSpManager())) {
  229. model.addAttribute("hasManager", "0");
  230. } else {
  231. model.addAttribute("hasManager", "1");
  232. }
  233. model.addAttribute("page", page);
  234. return "modules/userNew/cmSpList";
  235. }
  236. /**
  237. * 添加协销人员
  238. *
  239. * @param newCmSp
  240. * @param model
  241. * @return
  242. */
  243. @RequiresPermissions("user:newCmClub:view")
  244. @RequestMapping(value = "cmSpForm")
  245. public String form(NewCmSp newCmSp, Model model) {
  246. if (cmSpService.findSpManager() == null) {
  247. model.addAttribute("hasManager", 0);
  248. } else {
  249. model.addAttribute("hasManager", 1);
  250. }
  251. return "modules/userNew/cmSpForm";
  252. }
  253. /**
  254. * @param linkMan
  255. * @param mobile
  256. * @param password
  257. * @param passWordConfirm
  258. * @param duty 职位 0=协销员工 1=协销经理
  259. * @param model
  260. * @param redirectAttributes
  261. * @return
  262. */
  263. @RequiresPermissions("user:newCmClub:edit")
  264. @RequestMapping(value = "cmSpCreate")
  265. @ResponseBody
  266. public Map<String, Object> create(String linkMan, String mobile, String password, String passWordConfirm, String duty, Model model, RedirectAttributes redirectAttributes) {
  267. Map<String, Object> map = new HashMap<>();
  268. String result;
  269. if (!ValidateUtils.validateMobile(mobile)) {
  270. map.put("msg", "手机号码错误");
  271. map.put("success", false);
  272. return map;
  273. }
  274. if (cmUserService.findUserByMobile(mobile) != null) {
  275. map.put("msg", "手机号码已经被使用");
  276. map.put("success", false);
  277. return map;
  278. }
  279. result = ValidateUtils.validatePassWord(password);
  280. if (result != null) {
  281. map.put("msg", result);
  282. map.put("success", false);
  283. return map;
  284. }
  285. result = ValidateUtils.validatePassWordConfirm(password, passWordConfirm);
  286. if (result != null) {
  287. map.put("msg", result);
  288. map.put("success", false);
  289. return map;
  290. }
  291. if ("1".equals(duty) && CollectionUtils.isNotEmpty(cmSpService.findSpManager())) {
  292. map.put("msg", "已经存在协销经理了");
  293. map.put("success", false);
  294. return map;
  295. }
  296. NewCmSp cmSp = new NewCmSp();
  297. CmUser cmUser = new CmUser();
  298. cmSp.setLinkMan(linkMan);
  299. cmSp.setContractMobile(mobile);
  300. if ("1".equals(duty)) {
  301. cmSp.setDuty(com.caimei.constants.UserType.SERVICEPROVIDER.getDesc());
  302. cmUser.setRegisterUserTypeID(com.caimei.constants.UserType.SERVICEEMPLOYEE.getCode() + "");
  303. } else {
  304. cmSp.setDuty(com.caimei.constants.UserType.SERVICEEMPLOYEE.getDesc());
  305. cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + "");
  306. }
  307. cmSp.setStatus(ServiceProviderStatus.ONLINE.getCode());
  308. cmSp.setAddTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
  309. //审核通过
  310. cmSp.setAuditStatus(AppKeys.FLAG_YES);
  311. cmSp.setValidFlag(AppKeys.FLAG_YES);
  312. // 默认的协销经理 1304 王小萌
  313. if ("0".equals(duty)) {
  314. cmSp.setMainServiceProviderID(1304);
  315. }
  316. cmSpService.save(cmSp);
  317. try {
  318. cmUser.setPassword(MD5Utils.MD5(password));
  319. } catch (Exception e) {
  320. e.printStackTrace();
  321. }
  322. cmUser.setUserOrganizeID(0);
  323. cmUser.setMobile(mobile);
  324. cmUser.setUserIdentity(UserIdentity.MAKER.getCode());
  325. cmUser.setRegisterTime(DateUtils.getDateTime());
  326. cmUser.setServiceProviderStatus(ServiceProviderStatus.WAIT_CHECK_DATA.getCode() + "");
  327. cmUser.setRealName(linkMan);
  328. cmUser.setUserName(linkMan);
  329. cmUser.setName(linkMan);
  330. cmUser.setAuditStatus(AppKeys.FLAG_YES);
  331. cmUser.setValidFlag(AppKeys.FLAG_YES);
  332. cmUser.setServiceProviderStatus(ServiceProviderStatus.ONLINE.getCode() + "");
  333. cmUser.setAuditTime(DateUtils.getDateTime());
  334. cmUserService.save(cmUser);
  335. cmSp.setUserID(cmUser.getUserID());
  336. cmSpService.update(cmSp);
  337. cmUser.setServiceProviderID(cmSp.getServiceProviderID() + "");
  338. cmUserService.update(cmUser);
  339. map.put("success", true);
  340. map.put("msg", "添加成功");
  341. return map;
  342. }
  343. /**
  344. * 协销上线
  345. *
  346. * @param newCmSp
  347. * @param model
  348. * @param redirectAttributes
  349. * @return
  350. */
  351. @RequestMapping(value = "cmSpOnLine")
  352. @RequiresPermissions("user:newCmClub:edit")
  353. public String onLine(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  354. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  355. if (cmUser == null) {
  356. addMessage(redirectAttributes, "上线失败,用户信息异常");
  357. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/cmSpList/?repage";
  358. } else {
  359. //解除冻结
  360. cmUser.setValidFlag(AppKeys.FLAG_YES);
  361. cmUser.setServiceProviderStatus(ServiceProviderStatus.ONLINE.getCode() + "");
  362. cmUserService.update(cmUser);
  363. }
  364. newCmSp.setStatus(ServiceProviderStatus.ONLINE.getCode());
  365. cmSpService.update(newCmSp);
  366. addMessage(redirectAttributes, "协销上线成功");
  367. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/cmSpList/?repage";
  368. }
  369. /**
  370. * 协销下线
  371. *
  372. * @param newCmSp
  373. * @param model
  374. * @param redirectAttributes
  375. * @return
  376. */
  377. @RequestMapping(value = "cmSpOffLine")
  378. @RequiresPermissions("user:newCmClub:edit")
  379. public String offLine(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  380. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  381. if (cmUser == null) {
  382. addMessage(redirectAttributes, "下线失败,用户信息异常");
  383. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/cmSpList/?repage";
  384. } else {
  385. //冻结
  386. cmUser.setValidFlag(AppKeys.FLAG_NO);
  387. cmUser.setServiceProviderStatus(ServiceProviderStatus.FREEZE.getCode() + "");
  388. cmUserService.update(cmUser);
  389. }
  390. newCmSp.setStatus(ServiceProviderStatus.FREEZE.getCode());
  391. cmSpService.update(newCmSp);
  392. addMessage(redirectAttributes, "协销下线成功");
  393. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/cmSpList/?repage";
  394. }
  395. @RequiresPermissions("user:newCmClub:view")
  396. @RequestMapping(value = "cmSpEdit")
  397. public String edit(NewCmSp newCmSp, Model model) {
  398. Map<String, String> positionMap = new HashMap<>();
  399. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  400. if (CollectionUtils.isEmpty(cmSpService.findSpManager()) || cmUser.getRegisterUserTypeID().equals(UserType.SERVICEPROVIDER.getCode() + "")) {
  401. model.addAttribute("hasManager", 0);
  402. positionMap.put("1", UserType.SERVICEPROVIDER.getDesc());
  403. } else {
  404. model.addAttribute("hasManager", 1);
  405. }
  406. if (cmUser.getRegisterUserTypeID().equals(UserType.SERVICEPROVIDER.getCode() + "")) {
  407. newCmSp.setPosition("1");
  408. }
  409. if (cmUser.getRegisterUserTypeID().equals(UserType.SERVICEEMPLOYEE.getCode() + "")) {
  410. newCmSp.setPosition("0");
  411. }
  412. model.addAttribute("newCmSp", newCmSp);
  413. positionMap.put("0", UserType.SERVICEEMPLOYEE.getDesc());
  414. model.addAttribute("positionMap", positionMap);
  415. return "modules/userNew/cmSpEdit";
  416. }
  417. @RequiresPermissions("user:newCmClub:edit")
  418. @RequestMapping(value = "cmSpDelete")
  419. public String delete(NewCmSp newCmSp, RedirectAttributes redirectAttributes) {
  420. cmSpService.delete(newCmSp);
  421. addMessage(redirectAttributes, "删除协销人员管理成功");
  422. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/cmSpList/?repage";
  423. }
  424. @RequiresPermissions("user:newCmClub:edit")
  425. @RequestMapping(value = "cmSpSave")
  426. public String save(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  427. List<NewCmSp> spManager = cmSpService.findSpManager();
  428. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  429. //身份判断 防止出现多个协销经理
  430. if ("1".equals(newCmSp.getPosition())) {
  431. // 已经存在协销经理了
  432. if ((spManager.size() == 1) && (spManager.get(0).getUserID() != newCmSp.getUserID())) {
  433. addMessage(model, "已经存在协销经理了");
  434. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/cmSpList/?repage";
  435. }
  436. cmUser.setRegisterUserTypeID(UserType.SERVICEPROVIDER.getCode() + ""); // 设置为协销经理
  437. }
  438. if ("0".equals(newCmSp.getPosition())) {
  439. cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + ""); // 设置为协销员工
  440. }
  441. cmUser.setMobile(newCmSp.getContractMobile());
  442. cmSpService.save(newCmSp);
  443. cmUserService.update(cmUser);
  444. addMessage(redirectAttributes, "保存协销人员管理成功");
  445. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/cmSpList/?repage";
  446. }
  447. @RequestMapping(value = "leader")
  448. public String leader(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  449. newCmSp.setTeams(cmSpService.findTeam());
  450. NewCmSp manager = cmSpService.findSpManagerInfo();
  451. model.addAttribute("newCmSp", newCmSp);
  452. model.addAttribute("manager", manager);
  453. return "modules/userNew/cmSpTeamList";
  454. }
  455. @RequestMapping(value = "leader/save")
  456. public String leaderSave(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  457. if (null == newCmSp.getServiceProviderID()) {
  458. model.addAttribute("message", "请选择管理人员!");
  459. return "redirect:" + Global.getAdminPath() + "/new/user/cmSp/leader/?repage";
  460. }
  461. cmSpService.saveLeader(newCmSp.getServiceProviderID());
  462. addMessage(redirectAttributes, "保存大总管成功");
  463. return "redirect:" + Global.getAdminPath() + "/serviceteam/cmServiceteamRole/?repage";
  464. }
  465. }