CmSpController.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. package com.caimei.modules.user.web;
  2. import com.caimei.constants.ServiceProviderStatus;
  3. import com.caimei.constants.UserIdentity;
  4. import com.caimei.constants.UserType;
  5. import com.caimei.modules.sys.utils.ValidateUtils;
  6. import com.caimei.modules.user.aop.OperationLogAnnotation;
  7. import com.caimei.modules.user.dao.CmSpDao;
  8. import com.caimei.modules.user.entity.CmMessage;
  9. import com.caimei.modules.user.entity.CmUser;
  10. import com.caimei.modules.user.entity.NewCmSp;
  11. import com.caimei.modules.user.service.CmMessageService;
  12. import com.caimei.modules.user.service.CmSpService;
  13. import com.caimei.modules.user.service.CmUserService;
  14. import com.caimei.utils.AppKeys;
  15. import com.caimei.utils.DateUtils;
  16. import com.caimei.utils.MD5Util;
  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 org.apache.commons.collections.CollectionUtils;
  24. import org.apache.shiro.authz.annotation.RequiresPermissions;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Controller;
  27. import org.springframework.ui.Model;
  28. import org.springframework.web.bind.annotation.ModelAttribute;
  29. import org.springframework.web.bind.annotation.RequestMapping;
  30. import org.springframework.web.bind.annotation.RequestParam;
  31. import org.springframework.web.bind.annotation.ResponseBody;
  32. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  33. import javax.annotation.Resource;
  34. import javax.servlet.http.HttpServletRequest;
  35. import javax.servlet.http.HttpServletResponse;
  36. import java.text.SimpleDateFormat;
  37. import java.util.Date;
  38. import java.util.HashMap;
  39. import java.util.List;
  40. import java.util.Map;
  41. /**
  42. * 用户模块重构-协销人员管理Controller
  43. *
  44. * @author liwentao
  45. * @version 2018-05-21
  46. */
  47. @Controller
  48. @RequestMapping(value = "${adminPath}/user/cmSp")
  49. public class CmSpController extends BaseController {
  50. @Autowired
  51. private CmSpService cmSpService;
  52. @Resource
  53. private CmMessageService cmMessageService;
  54. @Autowired
  55. private CmUserService cmUserService;
  56. @Autowired
  57. private CmSpDao cmSpDao;
  58. @ModelAttribute
  59. public NewCmSp get(@RequestParam(required = false) String id) {
  60. NewCmSp entity = null;
  61. if (StringUtils.isNotBlank(id)) {
  62. entity = cmSpService.get(id);
  63. }
  64. if (entity == null) {
  65. entity = new NewCmSp();
  66. }
  67. return entity;
  68. }
  69. /**
  70. * 会所更换协销展示列表
  71. *
  72. * @param newCmSp
  73. * @param request
  74. * @param response
  75. * @param model
  76. * @return
  77. */
  78. @RequestMapping(value = "showSelectSP")
  79. public String showSelectSP(NewCmSp newCmSp, HttpServletRequest request, HttpServletResponse response, Model model) {
  80. newCmSp.setStatus(90);
  81. Page<NewCmSp> page = newCmSp.setPage(new Page<NewCmSp>(request, response));
  82. page.setPageSize(10);
  83. page.setList(cmSpDao.findSelectList(newCmSp));
  84. model.addAttribute("page", page);
  85. return "modules/user/cmSpSelect";
  86. }
  87. @RequiresPermissions("user:cmSp:view")
  88. @RequestMapping(value = {"list", ""})
  89. public String list(NewCmSp newCmSp, HttpServletRequest request, HttpServletResponse response, Model model) {
  90. Page<NewCmSp> page = cmSpService.findPage(new Page<NewCmSp>(request, response), newCmSp);
  91. if (CollectionUtils.isEmpty(cmSpService.findSpManager())) {
  92. model.addAttribute("hasManager", "0");
  93. } else {
  94. model.addAttribute("hasManager", "1");
  95. }
  96. model.addAttribute("page", page);
  97. return "modules/user/cmSpList";
  98. }
  99. @RequiresPermissions("user:cmSp:view")
  100. @RequestMapping(value = "form")
  101. public String form(NewCmSp newCmSp, Model model) {
  102. if (cmSpService.findSpManager() == null) {
  103. model.addAttribute("hasManager", 0);
  104. } else {
  105. model.addAttribute("hasManager", 1);
  106. }
  107. return "modules/user/cmSpForm";
  108. }
  109. @RequiresPermissions("user:cmSp:view")
  110. @RequestMapping(value = "edit")
  111. public String edit(NewCmSp newCmSp, Model model) {
  112. Map<String, String> positionMap = new HashMap<>();
  113. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  114. if (CollectionUtils.isEmpty(cmSpService.findSpManager()) || cmUser.getRegisterUserTypeID().equals(UserType.SERVICEPROVIDER.getCode() + "")) {
  115. model.addAttribute("hasManager", 0);
  116. positionMap.put("1", UserType.SERVICEPROVIDER.getDesc());
  117. } else {
  118. model.addAttribute("hasManager", 1);
  119. }
  120. if (cmUser.getRegisterUserTypeID().equals(UserType.SERVICEPROVIDER.getCode() + "")) {
  121. newCmSp.setPosition("1");
  122. }
  123. if (cmUser.getRegisterUserTypeID().equals(UserType.SERVICEEMPLOYEE.getCode() + "")) {
  124. newCmSp.setPosition("0");
  125. }
  126. model.addAttribute("newCmSp", newCmSp);
  127. positionMap.put("0", UserType.SERVICEEMPLOYEE.getDesc());
  128. model.addAttribute("positionMap", positionMap);
  129. return "modules/user/cmSpEdit";
  130. }
  131. @RequiresPermissions("user:cmSp:edit")
  132. @RequestMapping(value = "save")
  133. public String save(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  134. if (!beanValidator(model, newCmSp)) {
  135. return form(newCmSp, model);
  136. }
  137. List<NewCmSp> spManager = cmSpService.findSpManager();
  138. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  139. //身份判断 防止出现多个协销经理
  140. if ("1".equals(newCmSp.getPosition())) {
  141. // 已经存在协销经理了
  142. if ((spManager.size() == 1) && (spManager.get(0).getUserID() != newCmSp.getUserID())) {
  143. addMessage(model, "已经存在协销经理了");
  144. return form(newCmSp, model);
  145. }
  146. cmUser.setRegisterUserTypeID(UserType.SERVICEPROVIDER.getCode() + ""); // 设置为协销经理
  147. }
  148. if ("0".equals(newCmSp.getPosition())) {
  149. cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + ""); // 设置为协销员工
  150. }
  151. cmUser.setMobile(newCmSp.getContractMobile());
  152. // 目前只允许有一个协销经理的逻辑还存在问题
  153. // if ("1".equals(newCmSp.getPosition()) && newCmSp.getServiceProviderID() != null) { // 把协销员工修改职位变成协销经理 更新所有协销用的协销经理
  154. // cmSpService.updateSpManager(newCmSp.getServiceProviderID());
  155. // newCmSp.setMainServiceProviderID(newCmSp.getServiceProviderID());
  156. // }
  157. cmSpService.save(newCmSp);
  158. cmUserService.update(cmUser);
  159. addMessage(redirectAttributes, "保存协销人员管理成功");
  160. return "redirect:" + Global.getAdminPath() + "/user/cmSp/?repage";
  161. }
  162. /**
  163. * @param linkMan
  164. * @param mobile
  165. * @param password
  166. * @param passWordConfirm
  167. * @param duty 职位 0=协销员工 1=协销经理
  168. * @param model
  169. * @param redirectAttributes
  170. * @return
  171. */
  172. @RequiresPermissions("user:cmSp:edit")
  173. @RequestMapping(value = "create")
  174. @ResponseBody
  175. public Map<String, Object> create(String linkMan, String mobile, String password, String passWordConfirm, String duty, Model model, RedirectAttributes redirectAttributes) {
  176. Map<String, Object> map = new HashMap<>();
  177. String result;
  178. if (!ValidateUtils.validateMobile(mobile)) {
  179. map.put("msg", "手机号码错误");
  180. map.put("success", false);
  181. return map;
  182. }
  183. if (cmUserService.findUserByMobile(mobile) != null) {
  184. map.put("msg", "手机号码已经被使用");
  185. map.put("success", false);
  186. return map;
  187. }
  188. result = ValidateUtils.validatePassWord(password);
  189. if (result != null) {
  190. map.put("msg", result);
  191. map.put("success", false);
  192. return map;
  193. }
  194. result = ValidateUtils.validatePassWordConfirm(password, passWordConfirm);
  195. if (result != null) {
  196. map.put("msg", result);
  197. map.put("success", false);
  198. return map;
  199. }
  200. if ("1".equals(duty) && CollectionUtils.isNotEmpty(cmSpService.findSpManager())) {
  201. map.put("msg", "已经存在协销经理了");
  202. map.put("success", false);
  203. return map;
  204. }
  205. NewCmSp cmSp = new NewCmSp();
  206. CmUser cmUser = new CmUser();
  207. cmSp.setLinkMan(linkMan);
  208. cmSp.setContractMobile(mobile);
  209. if ("1".equals(duty)) {
  210. cmSp.setDuty(UserType.SERVICEPROVIDER.getDesc());
  211. cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + "");
  212. } else {
  213. cmSp.setDuty(UserType.SERVICEEMPLOYEE.getDesc());
  214. cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + "");
  215. }
  216. cmSp.setStatus(ServiceProviderStatus.WAIT_CHECK_DATA.getCode());
  217. cmSp.setAddTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
  218. if ("0".equals(duty)) cmSp.setMainServiceProviderID(1304); // 默认的协销经理 1304 王小萌
  219. cmSpService.save(cmSp);
  220. // 目前只允许有一个协销经理的逻辑还存在问题
  221. // if ("1".equals(duty) && cmSp.getServiceProviderID() != null) {
  222. // cmSpService.updateSpManager(cmSp.getServiceProviderID()); //如果添加的协销人员是协销经理 那么所有的协销员工的经理指向当前的这个协销经理
  223. // }
  224. try {
  225. cmUser.setPassword(MD5Utils.MD5(password));
  226. } catch (Exception e) {
  227. e.printStackTrace();
  228. }
  229. cmUser.setMobile(mobile);
  230. cmUser.setUserIdentity(UserIdentity.MAKER.getCode());
  231. cmUser.setAuditStatus(AppKeys.FLAG_NO);
  232. cmUser.setRegisterTime(DateUtils.getDateTime());
  233. cmUser.setValidFlag(AppKeys.FLAG_NO); // 默认为冻结状态 需要审核
  234. cmUser.setServiceProviderStatus(ServiceProviderStatus.WAIT_CHECK_DATA.getCode() + "");
  235. cmUser.setUserPermission(1);
  236. cmUser.setRealName(linkMan);
  237. cmUser.setUserName(linkMan);
  238. cmUser.setName(linkMan);
  239. cmUserService.save(cmUser);
  240. cmSp.setUserID(cmUser.getUserID());
  241. cmSpService.update(cmSp);
  242. cmUser.setServiceProviderID(cmSp.getServiceProviderID() + "");
  243. cmUserService.update(cmUser);
  244. map.put("success", true);
  245. map.put("msg", "添加成功");
  246. return map;
  247. }
  248. @RequiresPermissions("user:cmSp:delete")
  249. @RequestMapping(value = "delete")
  250. public String delete(NewCmSp newCmSp, RedirectAttributes redirectAttributes) {
  251. cmSpService.delete(newCmSp);
  252. addMessage(redirectAttributes, "删除协销人员管理成功");
  253. return "redirect:" + Global.getAdminPath() + "/user/cmSp/?repage";
  254. }
  255. /**
  256. * 审核
  257. *
  258. * @param spID
  259. * @param auditNote
  260. * @param auditStatus 1为通过审核 0位审核驳回
  261. * @param position 职位 0=协销员工 1=协销经理
  262. * @return
  263. */
  264. @RequiresPermissions("user:cmSp:edit")
  265. @ResponseBody
  266. @RequestMapping(value = "auditSp")
  267. public Map<String, Object> auditSp(String spID, String auditNote, String auditStatus, String position) {
  268. NewCmSp cmSp = cmSpService.get(spID);
  269. CmUser cmUser = cmUserService.get(cmSp.getUserID() + "");
  270. Map<String, Object> map = Maps.newLinkedHashMap();
  271. if (cmUser == null) {
  272. map.put("success", false);
  273. map.put("msg", "用户信息异常");
  274. return map;
  275. }
  276. if ("1".equals(auditStatus)) {
  277. //审核通过
  278. cmSp.setAuditStatus(AppKeys.FLAG_YES);
  279. cmSp.setValidFlag(AppKeys.FLAG_YES);
  280. cmSp.setStatus(ServiceProviderStatus.ONLINE.getCode());
  281. if ("1".equals(position)) {
  282. cmUser.setRegisterUserTypeID(UserType.SERVICEPROVIDER.getCode() + "");
  283. } else {
  284. cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + "");
  285. }
  286. cmUser.setUserIdentity(UserIdentity.MAKER.getCode());
  287. cmUser.setAuditStatus(AppKeys.FLAG_YES);
  288. cmUser.setValidFlag(AppKeys.FLAG_YES);
  289. cmUser.setServiceProviderStatus(ServiceProviderStatus.ONLINE.getCode() + "");
  290. cmUser.setUserPermission(4);
  291. map.put("msg", "审核已经通过");
  292. } else {
  293. // 审核不通过
  294. cmSp.setAuditStatus(AppKeys.FLAG_NO);
  295. cmSp.setValidFlag(AppKeys.FLAG_NO);
  296. cmSp.setStatus(ServiceProviderStatus.CHECK_FAIL.getCode());
  297. cmUser.setAuditStatus(AppKeys.FLAG_NO);
  298. cmUser.setValidFlag(AppKeys.FLAG_NO);
  299. cmUser.setServiceProviderStatus(ServiceProviderStatus.CHECK_FAIL.getCode() + "");
  300. map.put("msg", "审核已经驳回");
  301. }
  302. cmSp.setAuditNote(auditNote);
  303. cmSp.setAddTime(DateUtils.getDateTime());
  304. cmUser.setAuditNote(auditNote);
  305. cmUser.setAuditTime(DateUtils.getDateTime());
  306. cmSpService.update(cmSp);
  307. cmUserService.update(cmUser);
  308. map.put("success", true);
  309. return map;
  310. }
  311. /**
  312. * 发送消息
  313. *
  314. * @param title
  315. * @param content
  316. * @param id
  317. * @param request
  318. * @param response
  319. * @return
  320. */
  321. @RequiresPermissions("user:cmSp:edit")
  322. @ResponseBody
  323. @RequestMapping(value = "sendMsg")
  324. public Map<String, Object> sendMsg(String title, String content, String id, HttpServletRequest request, HttpServletResponse response) {
  325. Map<String, Object> map = Maps.newLinkedHashMap();
  326. try {
  327. CmMessage cmMessage = new CmMessage();
  328. cmMessage.setAddTime(DateUtils.getDateTime());
  329. cmMessage.setContent(content);
  330. cmMessage.setTitle(title);
  331. cmMessage.setToUserID(Integer.parseInt(id));
  332. cmMessage.setMessageTypeID("1");
  333. cmMessage.setReadFlag("0");
  334. cmMessageService.save(cmMessage);
  335. map.put("errcode", 0);
  336. map.put("errmsg", "发送成功");
  337. } catch (Exception e) {
  338. logger.debug(e.toString(), e);
  339. map.put("errcode", 1);
  340. map.put("errmsg", "发送失败");
  341. }
  342. return map;
  343. }
  344. /**
  345. * 修改密码
  346. *
  347. * @param password
  348. * @param id
  349. * @param request
  350. * @param response
  351. * @return
  352. */
  353. @RequiresPermissions("user:cmSp:edit")
  354. @ResponseBody
  355. @RequestMapping(value = "updatePwd")
  356. public Map<String, Object> updatePwd(String password, String id, HttpServletRequest request, HttpServletResponse response) {
  357. Map<String, Object> map = Maps.newLinkedHashMap();
  358. try {
  359. NewCmSp newCmSp = cmSpService.get(id);
  360. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  361. cmUser.setPassword(MD5Util.md5ToHex(password));
  362. cmUserService.update(cmUser);
  363. // cmSpService.update(newCmSp);
  364. map.put("errcode", 0);
  365. map.put("errmsg", "修改成功");
  366. } catch (Exception e) {
  367. logger.debug(e.toString(), e);
  368. map.put("errcode", 1);
  369. map.put("errmsg", "修改失败");
  370. }
  371. return map;
  372. }
  373. /**
  374. * 协销上线
  375. *
  376. * @param newCmSp
  377. * @param model
  378. * @param redirectAttributes
  379. * @return
  380. */
  381. @RequestMapping(value = "onLine")
  382. @RequiresPermissions("user:cmSp:edit")
  383. public String onLine(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  384. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  385. if (cmUser == null) {
  386. addMessage(redirectAttributes, "上线失败,用户信息异常");
  387. return "redirect:" + Global.getAdminPath() + "/user/cmSp/?repage";
  388. } else {
  389. cmUser.setValidFlag(AppKeys.FLAG_YES);//解除冻结
  390. cmUser.setServiceProviderStatus(ServiceProviderStatus.ONLINE.getCode() + "");
  391. cmUser.setUserPermission(4);
  392. cmUserService.update(cmUser);
  393. }
  394. newCmSp.setStatus(ServiceProviderStatus.ONLINE.getCode());
  395. cmSpService.update(newCmSp);
  396. addMessage(redirectAttributes, "协销上线成功");
  397. return "redirect:" + Global.getAdminPath() + "/user/cmSp/?repage";
  398. }
  399. /**
  400. * 协销下线
  401. *
  402. * @param newCmSp
  403. * @param model
  404. * @param redirectAttributes
  405. * @return
  406. */
  407. @RequestMapping(value = "offLine")
  408. @RequiresPermissions("user:cmSp:edit")
  409. public String offLine(NewCmSp newCmSp, Model model, RedirectAttributes redirectAttributes) {
  410. CmUser cmUser = cmUserService.get(newCmSp.getUserID() + "");
  411. if (cmUser == null) {
  412. addMessage(redirectAttributes, "下线失败,用户信息异常");
  413. return "redirect:" + Global.getAdminPath() + "/user/cmSp/?repage";
  414. } else {
  415. cmUser.setValidFlag(AppKeys.FLAG_NO);//冻结
  416. cmUser.setServiceProviderStatus(ServiceProviderStatus.FREEZE.getCode() + "");
  417. cmUser.setUserPermission(1);
  418. cmUserService.update(cmUser);
  419. }
  420. newCmSp.setStatus(ServiceProviderStatus.FREEZE.getCode());
  421. cmSpService.update(newCmSp);
  422. addMessage(redirectAttributes, "协销下线成功");
  423. return "redirect:" + Global.getAdminPath() + "/user/cmSp/?repage";
  424. }
  425. /**
  426. * 添加Flash消息
  427. *
  428. * @param messages
  429. */
  430. protected void addMessage(RedirectAttributes redirectAttributes, String... messages) {
  431. StringBuilder sb = new StringBuilder();
  432. for (String message : messages) {
  433. sb.append(message).append(messages.length > 1 ? "<br/>" : "");
  434. }
  435. redirectAttributes.addFlashAttribute("message", sb.toString());
  436. }
  437. // @RequestMapping(value = "createSp")
  438. // @RequiresPermissions("user:cmSp:edit")
  439. // public String createSp(String linkMan, String mobile, String password, String passWordConfirm, String duty1) {
  440. // JsonForm jsonForm = null;
  441. // if (!ValidateUtils.validateMobile(mobile)) {
  442. // return "";
  443. // }
  444. // jsonForm = ValidateUtils.validatePassWord(password);
  445. // if (!jsonForm.isReturn_code()) {
  446. // jsonForm.getReturn_message();
  447. // }
  448. // jsonForm = ValidateUtils.validatePassWordConfirm(password, passWordConfirm);
  449. // if (!jsonForm.isReturn_code()) {
  450. // jsonForm.getReturn_message();
  451. // }
  452. // NewCmSp newCmSp = new NewCmSp();
  453. // newCmSp.setlinkMan(linkMan);
  454. // newCmSp.setContractMobile(mobile);
  455. // newCmSp.setduty11(duty1);
  456. // cmSpService.save(newCmSp);
  457. // CmUser cmUser = new CmUser();
  458. // cmUser.setMobile(mobile);
  459. // cmUser.setUserIdentity(UserIdentity.MAKER.getCode());
  460. // cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + "");
  461. // cmUser.setAuditStatus(AppKeys.FLAG_NO);
  462. // cmUser.setRegisterTime(DateUtils.getDateTime());
  463. // cmUser.setValidFlag(AppKeys.FLAG_NO); // 默认为冻结状态 需要审核
  464. // cmUser.setServiceProviderStatus(ServiceProviderStatus.WAIT_CHECK_DATA.getCode() + "");
  465. // cmUserService.save(cmUser);
  466. // newCmSp.setUserID(cmUser.getUserID());
  467. // cmSpService.update(newCmSp);
  468. // cmUser.setServiceProviderID(newCmSp.getServiceProviderID() + "");
  469. // cmUserService.update(cmUser);
  470. // try {
  471. // cmUser.setPassword(MD5Utils.MD5(password));
  472. // } catch (Exception e) {
  473. // e.printStackTrace();
  474. // }
  475. // return "modules/user/cmSpList";
  476. // }
  477. }