AgencyController.java 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. package com.caimei.modules.user.web.newUser;
  2. import com.caimei.constants.ClubStatus;
  3. import com.caimei.dfs.image.beens.ImageUploadInfo;
  4. import com.caimei.modules.common.utils.UploadUtils;
  5. import com.caimei.modules.product.service.CmShoporderService;
  6. import com.caimei.modules.project.model.ServiceProviderModel;
  7. import com.caimei.modules.sys.utils.CmMsgUtils;
  8. import com.caimei.modules.sys.utils.SMSUtils;
  9. import com.caimei.modules.sys.utils.UploadImageUtils;
  10. import com.caimei.modules.user.entity.*;
  11. import com.caimei.modules.user.service.*;
  12. import com.caimei.utils.AppKeys;
  13. import com.caimei.utils.AppUtils;
  14. import com.caimei.utils.DateUtils;
  15. import com.caimei.utils.MD5Util;
  16. import com.caimei.vo.JsonModel;
  17. import com.google.common.collect.Maps;
  18. import com.thinkgem.jeesite.common.config.Global;
  19. import com.thinkgem.jeesite.common.persistence.Page;
  20. import com.thinkgem.jeesite.common.utils.Encodes;
  21. import com.thinkgem.jeesite.common.utils.StringUtils;
  22. import com.thinkgem.jeesite.common.web.BaseController;
  23. import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
  24. import org.apache.commons.collections.CollectionUtils;
  25. import org.apache.shiro.authz.annotation.RequiresPermissions;
  26. import org.springframework.beans.factory.annotation.Autowired;
  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.servlet.http.HttpServletRequest;
  35. import javax.servlet.http.HttpServletResponse;
  36. import java.io.IOException;
  37. import java.text.ParseException;
  38. import java.text.SimpleDateFormat;
  39. import java.util.*;
  40. /**
  41. * 用户模块重构--机构管理Controller
  42. *
  43. * @author zcp
  44. * @version 2018-05-21
  45. */
  46. @Controller
  47. @RequestMapping(value = "${adminPath}/new/user/agency")
  48. public class AgencyController extends BaseController {
  49. @Autowired
  50. private NewCmClubService newCmClubService;
  51. @Autowired
  52. private CmUserOrganizeService cmUserOrganizeService;
  53. @Autowired
  54. private CmUserService cmUserService;
  55. @Autowired
  56. CmClubinfoService cmClubinfoService;
  57. @Autowired
  58. CmMessageService cmMessageService;
  59. @Autowired
  60. CmShoporderService cmShoporderService;
  61. @Autowired
  62. CmBindService cmBindService;
  63. @Autowired
  64. CmUserbeanshistoryService cmUserbeanshistoryService;
  65. @Autowired
  66. private ClubChangeSpReviewService clubChangeSpReviewService;
  67. @Autowired
  68. CmSpService cmSpService;
  69. @Autowired
  70. private CmOperationUserService cmOperationUserService;
  71. @ModelAttribute
  72. public NewCmClub get(@RequestParam(required = false) String id) {
  73. NewCmClub entity = null;
  74. if (StringUtils.isNotBlank(id)) {
  75. entity = newCmClubService.get(id);
  76. }
  77. if (entity == null) {
  78. entity = new NewCmClub();
  79. }
  80. return entity;
  81. }
  82. /**
  83. * 列表展示
  84. *
  85. * @param newCmClub
  86. * @param request
  87. * @param response
  88. * @param model
  89. * @return
  90. */
  91. @RequestMapping(value = {"list", ""})
  92. @RequiresPermissions("user:newCmClub:view")
  93. public String list(NewCmClub newCmClub, HttpServletRequest request, HttpServletResponse response, Model model) {
  94. if (null != newCmClub.getSearchStartTime() && !"".equals(newCmClub.getSearchStartTime()) && !newCmClub.getSearchStartTime().endsWith("00:00:00")) {
  95. newCmClub.setStartTime(newCmClub.getSearchStartTime() + " 00:00:00");
  96. }
  97. if (null != newCmClub.getSearchEndTime() && !"".equals(newCmClub.getSearchEndTime()) && !newCmClub.getSearchEndTime().endsWith("23:59:59")) {
  98. newCmClub.setEndTime(newCmClub.getSearchEndTime() + " 23:59:59");
  99. }
  100. String searchName = newCmClub.getSearchName();
  101. String searchUserName = newCmClub.getSearchUserName();
  102. String searchBindMobile = newCmClub.getSearchBindMobile();
  103. String searchEmail = newCmClub.getSearchEmail();
  104. Integer searchUserOrganizeID = newCmClub.getSearchUserOrganizeID();
  105. Integer searchStatus = newCmClub.getSearchStatus();
  106. String searchUserIdentity = newCmClub.getSearchUserIdentity();
  107. if (StringUtils.isNotEmpty(searchName)) {
  108. newCmClub.setName(searchName);
  109. }
  110. if (StringUtils.isNotEmpty(searchUserName)) {
  111. newCmClub.setUserName(searchUserName);
  112. }
  113. if (StringUtils.isNotEmpty(searchBindMobile)) {
  114. newCmClub.setBindMobile(searchBindMobile);
  115. }
  116. if (StringUtils.isNotEmpty(searchEmail)) {
  117. newCmClub.setEmail(searchEmail);
  118. }
  119. if (null != searchUserOrganizeID) {
  120. newCmClub.setUserOrganizeID(searchUserOrganizeID);
  121. }
  122. if (null != searchStatus) {
  123. newCmClub.setStatus(searchStatus);
  124. }
  125. if (StringUtils.isNotEmpty(searchUserIdentity)) {
  126. newCmClub.setUserIdentity(searchUserIdentity);
  127. }
  128. Page<NewCmClub> page = newCmClubService.findPage(new Page<NewCmClub>(request, response, 20), newCmClub);
  129. model.addAttribute("newCmClub", newCmClub);
  130. model.addAttribute("page", page);
  131. return "modules/userNew/cmAgencyList";
  132. }
  133. /**
  134. * 查看运营人员
  135. *
  136. * @param cmOperationUser
  137. * @param request
  138. * @param response
  139. * @param model
  140. * @return
  141. */
  142. @RequestMapping(value = {"operation"})
  143. @RequiresPermissions("user:newCmClub:view")
  144. public String list(CmOperationUser cmOperationUser, HttpServletRequest request, HttpServletResponse response, Model model) {
  145. Page<CmOperationUser> page = cmOperationUserService.findPage(new Page<CmOperationUser>(request, response), cmOperationUser);
  146. if (null != page) {
  147. List<CmOperationUser> list = page.getList();
  148. for (CmOperationUser user : list) {//判断邀请码是否有效
  149. String status = user.getStatus();//1未绑定,2已绑定
  150. if (StringUtils.equals("2", status)) {
  151. user.setEffectiveFlag("2");//邀请码是否有效 1有效,2已使用,3已失效
  152. } else {
  153. Date invitationCodeTime = user.getInvitationCodeTime();
  154. if (null != invitationCodeTime) {
  155. Calendar calendar = new GregorianCalendar();
  156. calendar.setTime(invitationCodeTime);
  157. calendar.add(Calendar.DATE, 7);// num为增加的天数,可以改变的
  158. invitationCodeTime = calendar.getTime();
  159. boolean before = invitationCodeTime.before(new Date());
  160. if (before) {//如果验证码时间加上168小时小于当前时间则已过期
  161. user.setEffectiveFlag("3");
  162. } else {
  163. user.setEffectiveFlag("1");
  164. }
  165. }
  166. }
  167. }
  168. }
  169. model.addAttribute("cmOperationUser", cmOperationUser);//把用户ID等参数带入
  170. model.addAttribute("page", page);
  171. return "modules/userNew/cmAgencyOperation";
  172. }
  173. /**
  174. * * 机构上线
  175. *
  176. * @param newCmClub
  177. * @param model
  178. * @param redirectAttributes
  179. * @return
  180. */
  181. @RequestMapping(value = "online")
  182. @RequiresPermissions("user:newCmClub:edit")
  183. public String onLine(NewCmClub newCmClub, Model model, RedirectAttributes redirectAttributes) {
  184. Integer companyUserID = newCmClub.getUserID();
  185. CmUser cmUser = cmUserService.get(companyUserID + "");
  186. if (null != cmUser) {
  187. cmUser.setClubStatus(ClubStatus.ONLINE.getCode() + "");
  188. cmUser.setValidFlag(AppKeys.FLAG_YES);//解除冻结
  189. cmUser.setUserPermission(2);
  190. //更新所有企业员工状态
  191. cmUserService.updateEmployeeStatus(null, ClubStatus.ONLINE.getCode() + "", null, "1", companyUserID);
  192. //更新所有审核过的企业员工权限
  193. cmUserService.updateEmployeePermission(2, companyUserID);
  194. cmUserService.update(cmUser);
  195. } else {
  196. addMessage(redirectAttributes, "上线失败,用户信息异常");
  197. return "redirect:" + Global.getAdminPath() + "/new/user/agency/?repage";
  198. }
  199. newCmClub.setStatus(ClubStatus.ONLINE.getCode());
  200. newCmClubService.update(newCmClub);
  201. addMessage(redirectAttributes, "机构上线成功");
  202. redirectAttributes.addAttribute("searchName", newCmClub.getSearchName());
  203. redirectAttributes.addAttribute("searchUserName", newCmClub.getSearchUserName());
  204. redirectAttributes.addAttribute("searchBindMobile", newCmClub.getSearchBindMobile());
  205. redirectAttributes.addAttribute("searchEmail", newCmClub.getSearchEmail());
  206. redirectAttributes.addAttribute("searchUserOrganizeID", newCmClub.getSearchUserOrganizeID());
  207. redirectAttributes.addAttribute("searchStatus", newCmClub.getSearchStatus());
  208. redirectAttributes.addAttribute("searchUserIdentity", newCmClub.getSearchUserIdentity());
  209. redirectAttributes.addAttribute("searchStartTime", newCmClub.getSearchStartTime());
  210. redirectAttributes.addAttribute("searchEndTime", newCmClub.getSearchEndTime());
  211. return "redirect:" + Global.getAdminPath() + "/new/user/agency/?repage";
  212. }
  213. /**
  214. * 机构下线 冻结
  215. *
  216. * @param newCmClub
  217. * @param model
  218. * @param redirectAttributes
  219. * @return
  220. */
  221. @RequestMapping(value = "offline")
  222. @RequiresPermissions("user:newCmClub:edit")
  223. public String offLine(NewCmClub newCmClub, Model model, RedirectAttributes redirectAttributes) {
  224. Integer companyUserID = newCmClub.getUserID();
  225. CmUser cmUser = cmUserService.get(companyUserID + "");
  226. if (null != cmUser) {
  227. cmUser.setClubStatus(ClubStatus.FREEZE.getCode() + "");
  228. cmUser.setValidFlag(AppKeys.FLAG_NO);//冻结
  229. cmUser.setUserPermission(0);
  230. //更新所有企业员工状态 设置未提示
  231. cmUserService.updateEmployeeStatus(1, ClubStatus.ONLINE.getCode() + "", null, "0", companyUserID);
  232. cmUserService.update(cmUser);
  233. } else {
  234. addMessage(redirectAttributes, "下线失败,用户信息异常");
  235. return "redirect:" + Global.getAdminPath() + "/new/user/agency/?repage";
  236. }
  237. newCmClub.setStatus(ClubStatus.FREEZE.getCode());
  238. newCmClubService.update(newCmClub);
  239. addMessage(redirectAttributes, "机构下线成功");
  240. redirectAttributes.addAttribute("searchName", newCmClub.getSearchName());
  241. redirectAttributes.addAttribute("searchUserName", newCmClub.getSearchUserName());
  242. redirectAttributes.addAttribute("searchBindMobile", newCmClub.getSearchBindMobile());
  243. redirectAttributes.addAttribute("searchEmail", newCmClub.getSearchEmail());
  244. redirectAttributes.addAttribute("searchUserOrganizeID", newCmClub.getSearchUserOrganizeID());
  245. redirectAttributes.addAttribute("searchStatus", newCmClub.getSearchStatus());
  246. redirectAttributes.addAttribute("searchUserIdentity", newCmClub.getSearchUserIdentity());
  247. redirectAttributes.addAttribute("searchStartTime", newCmClub.getSearchStartTime());
  248. redirectAttributes.addAttribute("searchEndTime", newCmClub.getSearchEndTime());
  249. return "redirect:" + Global.getAdminPath() + "/new/user/agency/?repage";
  250. }
  251. /**
  252. * 查看机构
  253. *
  254. * @param newCmClub
  255. * @param model
  256. * @param source 1,查看 2,审核
  257. * @return
  258. */
  259. @RequestMapping(value = "form")
  260. @RequiresPermissions("user:newCmClub:edit")
  261. public String form(NewCmClub newCmClub, Integer source, Model model) {
  262. model.addAttribute("source", source);
  263. model.addAttribute("newCmClub", newCmClub);
  264. CmClubinfo cmClubinfo = new CmClubinfo();
  265. cmClubinfo.setClubID(Integer.parseInt(newCmClub.getId()));
  266. List<CmClubinfo> cmClubinfos = cmClubinfoService.findList(cmClubinfo);
  267. if (null != cmClubinfos && cmClubinfos.size() > 0) {
  268. cmClubinfo = cmClubinfos.get(0);
  269. }
  270. cmClubinfo.setClubID(Integer.parseInt(newCmClub.getId()));
  271. cmClubinfo.setUserID(newCmClub.getUserID());
  272. cmClubinfo.setContractPhone(newCmClub.getContractPhone());
  273. cmClubinfo.setFax(newCmClub.getFax());
  274. cmClubinfo.setInfo(newCmClub.getInfo());
  275. cmClubinfo.setBusinessLicenseImage(newCmClub.getBusinessLicenseImage());
  276. cmClubinfo.setHeadpic(newCmClub.getHeadpic());
  277. cmClubinfo.setSocialCreditCode(newCmClub.getSocialCreditCode());
  278. cmClubinfo.setProvinceID(newCmClub.getProvinceID());
  279. cmClubinfo.setCityID(newCmClub.getCityID());
  280. cmClubinfo.setTownID(newCmClub.getTownID());
  281. cmClubinfo.setAddress(newCmClub.getAddress());
  282. cmClubinfo.setFirstClubType(newCmClub.getFirstClubType());
  283. cmClubinfo.setSecondClubType(newCmClub.getSecondClubType());
  284. cmClubinfo.setDepartment(newCmClub.getDepartment());
  285. cmClubinfo.setMainpro(newCmClub.getMainpro());
  286. cmClubinfo.setMedicalPracticeLicenseImg(newCmClub.getMedicalPracticeLicenseImg());
  287. cmClubinfo.setContractEmail(newCmClub.getContractEmail());
  288. cmClubinfo.setLinkManIdentity(newCmClub.getLinkManIdentity());
  289. model.addAttribute("cmClubinfo", cmClubinfo);
  290. model.addAttribute("newCmClub", newCmClub);
  291. String wwwServer = Global.getConfig("wwwServer");
  292. //营业执照
  293. newCmClub.setBusinessLicenseImage(AppUtils.getImageURL("clubBusinessLicenseImage", newCmClub.getBusinessLicenseImage(), 0, wwwServer));
  294. //门头照
  295. newCmClub.setHeadpic(AppUtils.getImageURL("club", newCmClub.getHeadpic(), AppKeys.CLUB_LOGO_SIZE, wwwServer));
  296. return "modules/userNew/cmAgencyForm";
  297. }
  298. /**
  299. * 保存机构
  300. *
  301. * @param newCmClub
  302. * @param cmClubinfo
  303. * @param model
  304. * @param redirectAttributes
  305. * @return
  306. */
  307. @RequestMapping(value = "save")
  308. @RequiresPermissions("user:newCmClub:edit")
  309. public String save(NewCmClub newCmClub, CmClubinfo cmClubinfo, Model model, RedirectAttributes redirectAttributes) {
  310. String name = cmClubinfo.getName();
  311. String userName = cmClubinfo.getUserName();
  312. String bindMobile = cmClubinfo.getBindMobile();
  313. cmClubinfo.setClubID(Integer.parseInt(newCmClub.getId()));
  314. cmClubinfo.setUserID(newCmClub.getUserID());
  315. if (!beanValidator(model, cmClubinfo)) {
  316. return form(newCmClub, 1, model);
  317. }
  318. if ("".equals(cmClubinfo.getBedNums())) {
  319. cmClubinfo.setBedNums(null);
  320. }
  321. if (null == cmClubinfo.getClubInfoID()) {
  322. //新增
  323. cmClubinfo.setIsNewRecord(true);
  324. }
  325. //修改图片全路径
  326. ImageUploadInfo saveImageSerivce = new ImageUploadInfo();
  327. String photoServer = Global.getConfig("photoServer");
  328. String businessLicenseImage = cmClubinfo.getBusinessLicenseImage();
  329. String headpic = cmClubinfo.getHeadpic();
  330. String medicalPracticeLicenseImg = cmClubinfo.getMedicalPracticeLicenseImg();
  331. if (StringUtils.isNotBlank(businessLicenseImage) && !businessLicenseImage.startsWith("http:") && !businessLicenseImage.startsWith("https:")) {
  332. businessLicenseImage = Encodes.urlDecode(businessLicenseImage);
  333. String realPath = UploadImageUtils.getAbsolutePath(businessLicenseImage);
  334. int pointerIndex = realPath.lastIndexOf(".");
  335. try {
  336. saveImageSerivce = UploadUtils.saveImageSerivce(realPath, pointerIndex, realPath);
  337. newCmClub.setBusinessLicenseImage(photoServer + saveImageSerivce.getSource());
  338. } catch (Exception e) {
  339. logger.error("图片上传错误:" + e.toString(), e);
  340. }
  341. }
  342. if (StringUtils.isNotBlank(headpic) && !headpic.startsWith("http:") && !headpic.startsWith("https:")) {
  343. headpic = Encodes.urlDecode(headpic);
  344. String realPath = UploadImageUtils.getAbsolutePath(headpic);
  345. int pointerIndex = realPath.lastIndexOf(".");
  346. try {
  347. saveImageSerivce = UploadUtils.saveImageSerivce(realPath, pointerIndex, realPath);
  348. newCmClub.setHeadpic(photoServer + saveImageSerivce.getSource());
  349. } catch (Exception e) {
  350. logger.error("图片上传错误:" + e.toString(), e);
  351. }
  352. }
  353. if (StringUtils.isNotBlank(medicalPracticeLicenseImg) && !medicalPracticeLicenseImg.startsWith("http:") && !medicalPracticeLicenseImg.startsWith("https:")) {
  354. medicalPracticeLicenseImg = Encodes.urlDecode(medicalPracticeLicenseImg);
  355. String realPath = UploadImageUtils.getAbsolutePath(medicalPracticeLicenseImg);
  356. int pointerIndex = realPath.lastIndexOf(".");
  357. try {
  358. saveImageSerivce = UploadUtils.saveImageSerivce(realPath, pointerIndex, realPath);
  359. newCmClub.setMedicalPracticeLicenseImg(photoServer + saveImageSerivce.getSource());
  360. } catch (Exception e) {
  361. logger.error("图片上传错误:" + e.toString(), e);
  362. }
  363. }
  364. //添加机构表信息
  365. newCmClub.setSocialCreditCode(cmClubinfo.getSocialCreditCode());
  366. newCmClub.setProvinceID(cmClubinfo.getProvinceID());
  367. newCmClub.setCityID(cmClubinfo.getCityID());
  368. newCmClub.setTownID(cmClubinfo.getTownID());
  369. newCmClub.setAddress(cmClubinfo.getAddress());
  370. newCmClub.setContractPhone(cmClubinfo.getContractPhone());
  371. newCmClub.setFax(cmClubinfo.getFax());
  372. newCmClub.setInfo(cmClubinfo.getInfo());
  373. newCmClub.setFirstClubType(cmClubinfo.getFirstClubType());
  374. newCmClub.setSecondClubType(cmClubinfo.getSecondClubType());
  375. newCmClub.setDepartment(cmClubinfo.getDepartment());
  376. newCmClub.setMainpro(cmClubinfo.getMainpro());
  377. newCmClub.setContractEmail(cmClubinfo.getContractEmail());
  378. newCmClub.setContractMobile(bindMobile);
  379. newCmClub.setLinkMan(userName);
  380. newCmClub.setLinkManIdentity(cmClubinfo.getLinkManIdentity());
  381. newCmClub.setName(name);
  382. newCmClub.setSname(cmClubinfo.getSname());
  383. CmUser user = new CmUser();
  384. user.setUserID(newCmClub.getUserID());
  385. user.setEmail(cmClubinfo.getContractEmail());
  386. user.setName(name);
  387. user.setUserName(userName);
  388. user.setBindMobile(bindMobile);
  389. cmUserService.update(user);
  390. newCmClubService.update(newCmClub);//更新机构表数据
  391. cmClubinfoService.save(cmClubinfo);
  392. addMessage(redirectAttributes, "保存机构资料成功");
  393. redirectAttributes.addAttribute("searchName", newCmClub.getSearchName());
  394. redirectAttributes.addAttribute("searchUserName", newCmClub.getSearchUserName());
  395. redirectAttributes.addAttribute("searchBindMobile", newCmClub.getSearchBindMobile());
  396. redirectAttributes.addAttribute("searchEmail", newCmClub.getSearchEmail());
  397. redirectAttributes.addAttribute("searchUserOrganizeID", newCmClub.getSearchUserOrganizeID());
  398. redirectAttributes.addAttribute("searchStatus", newCmClub.getSearchStatus());
  399. redirectAttributes.addAttribute("searchUserIdentity", newCmClub.getSearchUserIdentity());
  400. redirectAttributes.addAttribute("searchStartTime", newCmClub.getSearchStartTime());
  401. redirectAttributes.addAttribute("searchEndTime", newCmClub.getSearchEndTime());
  402. return "redirect:" + Global.getAdminPath() + "/new/user/agency/";
  403. }
  404. /**
  405. * 机构更换协销管理
  406. * 向机构更换协销表添加一条记录
  407. */
  408. @RequiresPermissions("user:newCmClub:edit")
  409. @ResponseBody
  410. @RequestMapping(value = "changeSp")
  411. public Map<String, Object> changeSp(String spID, String clubID, HttpServletRequest request, HttpServletResponse response) {
  412. Map<String, Object> map = Maps.newLinkedHashMap();
  413. try {
  414. logger.info(spID + "-======-" + clubID);
  415. if (StringUtils.isNotBlank(spID) && StringUtils.isNotBlank(clubID)) {
  416. //不是直接更换 只是添加一条记录
  417. NewCmClub newCmClub = newCmClubService.get(clubID);
  418. NewCmSp newCmSp = cmSpService.get(spID);
  419. ClubChangeSp clubChangeSp = new ClubChangeSp();
  420. clubChangeSp.setClubID(newCmClub.getClubID());
  421. if (null != newCmClub.getSpID()) {
  422. clubChangeSp.setOldSpID(newCmClub.getSpID());
  423. }
  424. clubChangeSp.setNewSpID(newCmSp.getServiceProviderID());
  425. clubChangeSp.setApplyTime(new Date());
  426. clubChangeSp.setCheckStatus("0");
  427. clubChangeSpReviewService.save(clubChangeSp);
  428. map.put("success", true);
  429. map.put("msg", "操作成功");
  430. } else {
  431. map.put("success", false);
  432. map.put("msg", "操作失败");
  433. }
  434. } catch (Exception e) {
  435. logger.error(clubID + "--------" + spID + e.getMessage(), e);
  436. map.put("success", false);
  437. map.put("msg", "操作异常");
  438. }
  439. return map;
  440. }
  441. /**
  442. * 修改密码
  443. *
  444. * @param password
  445. * @param id
  446. * @param request
  447. * @param response
  448. * @return
  449. */
  450. @RequiresPermissions("user:newCmClub:edit")
  451. @ResponseBody
  452. @RequestMapping(value = "updatePwd")
  453. public Map<String, Object> updatePwd(String password, String id, HttpServletRequest request, HttpServletResponse response) {
  454. Map<String, Object> map = Maps.newLinkedHashMap();
  455. try {
  456. CmUser cmUser = cmUserService.get(id);
  457. cmUser.setPassword(MD5Util.MD5(password));
  458. cmUserService.update(cmUser);
  459. map.put("success", true);
  460. map.put("msg", "修改成功");
  461. } catch (Exception e) {
  462. logger.debug(e.toString(), e);
  463. map.put("success", false);
  464. map.put("msg", "修改失败");
  465. }
  466. return map;
  467. }
  468. /**
  469. * 机构审核
  470. *
  471. * @param auditStatus
  472. * @param auditNote
  473. * @param id
  474. * @param request
  475. * @param response
  476. * @return
  477. */
  478. @RequiresPermissions("user:newCmClub:edit")
  479. @ResponseBody
  480. @RequestMapping(value = "auditClub")
  481. public Map<String, Object> auditClub(String auditStatus, String auditNote, String id, HttpServletRequest request, HttpServletResponse response) {
  482. Map<String, Object> map = Maps.newLinkedHashMap();
  483. String status = "";
  484. String smsMessage = "";
  485. String currTime = DateUtils.getDateTime();
  486. Integer userPermission;
  487. try {
  488. NewCmClub newCmClub = newCmClubService.get(id);
  489. Integer companyUserID = newCmClub.getUserID();
  490. CmUser companyUser = cmUserService.get(companyUserID + "");
  491. String mobile = companyUser.getBindMobile();
  492. //机构审核 --
  493. //获取企业机构下级用户
  494. List<CmUser> cmUsers = cmUserService.findByCompanyUserID(companyUserID);
  495. /**审核处理*/
  496. //审核通过
  497. if (StringUtils.equals("1", auditStatus)) {
  498. userPermission = 2;
  499. status = "90";
  500. auditStatus = "1";
  501. companyUser.setRegisterUserTypeID("3");
  502. companyUser.setUserPermission(userPermission);
  503. //审核通过升级为会员机构
  504. companyUser.setUserIdentity(2);
  505. smsMessage = "恭喜您成功升级为资质机构用户!快戳采美网站链接www.caimei365.com或微信搜索“采美采购商城”小程序登录采美平台享受更多更好的服务吧。" +
  506. "关注公众号“采美365网”可获取更多优惠和精彩资讯。";
  507. int userBeans = companyUser.getUserBeans() == null ? 0 : companyUser.getUserBeans();
  508. companyUser.setUserBeans(userBeans + 500);
  509. } else {
  510. //审核未通过,普通机构权限
  511. userPermission = 5;
  512. companyUser.setUserPermission(userPermission);
  513. status = "92";
  514. auditStatus = "2";
  515. smsMessage = "您的机构升级资质机构失败!快戳采美网站链接www.caimei365.com或微信搜索“采美采购商城”小程序登录采美平台修改升级信息重新提交审核。" +
  516. "关注公众号“采美365网”可获取更多优惠和精彩资讯。";
  517. }
  518. //机构表修改
  519. newCmClub.setStatus(Integer.parseInt(status));
  520. newCmClub.setAuditTime(currTime);
  521. newCmClub.setAuditNote(auditNote);
  522. newCmClub.setCheckMan(UserUtils.getUser().getName());
  523. //企业用户表修改
  524. companyUser.setValidFlag(AppKeys.FLAG_YES);//正常
  525. companyUser.setClubStatus(status);
  526. companyUser.setAuditStatus(auditStatus);//同步到用户表的审核信息中
  527. companyUser.setAuditNote(auditNote);
  528. companyUser.setAuditTime(currTime);
  529. newCmClubService.update(newCmClub);
  530. cmUserService.update(companyUser);
  531. //直接注册成为企业机构 或 升级成为机构
  532. if (CollectionUtils.isNotEmpty(cmUsers)) {
  533. //个人用户升级成为企业机构
  534. cmUserService.updateEmployeeStatus(userPermission, status, null, null, companyUserID);
  535. }
  536. // 发送系统消息给对应的userID用户
  537. String title = "机构资格认证审核结果";
  538. String messageContent = "";
  539. if (auditStatus.equals("1")) {
  540. messageContent = "恭喜您," + title + "【已通过】,恭喜您成功加入采美,祝您开启愉快的采购之旅。";
  541. //升级为机构成功,送500采美豆
  542. UserBeansHistory beansHistory = new UserBeansHistory();
  543. beansHistory.setUserId(companyUser.getUserID());
  544. beansHistory.setBeansType(2);
  545. beansHistory.setType(1);
  546. beansHistory.setNum(500);
  547. beansHistory.setPushStatus(0);
  548. beansHistory.setAddTime(new Date());
  549. newCmClubService.insertBeansHistory(beansHistory);
  550. } else {
  551. messageContent = title + "【未通过】,原因:" + auditNote;
  552. }
  553. /**发送采美消息*/
  554. sendMessage("1", companyUser.getUserID(), title, messageContent);
  555. /**发送短信*/
  556. if (StringUtils.isNotEmpty(mobile)) {
  557. SMSUtils.sendSms(mobile, smsMessage);
  558. }
  559. map.put("success", true);
  560. map.put("msg", "操作成功");
  561. } catch (Exception e) {
  562. logger.debug(e.toString(), e);
  563. map.put("success", false);
  564. map.put("msg", "操作失败");
  565. }
  566. return map;
  567. }
  568. /**
  569. * @param cmClub
  570. * @param redirectAttributes
  571. * @return
  572. */
  573. @RequestMapping(value = "editClubType")
  574. @RequiresPermissions("user:newCmClub:edit")
  575. @ResponseBody
  576. public JsonModel editClubType(NewCmClub cmClub, RedirectAttributes redirectAttributes) {
  577. JsonModel jsonModel = JsonModel.newInstance();
  578. if (cmClub.getClubID() == null) {
  579. return jsonModel.error("请求参数异常");
  580. }
  581. NewCmClub dbClub = newCmClubService.get(cmClub.getClubID().toString());
  582. if ("1".equals(cmClub.getFirstClubType())) {
  583. dbClub.setMedicalPracticeLicenseImg(cmClub.getMedicalPracticeLicenseImg());
  584. dbClub.setSecondClubType(cmClub.getSecondClubType());
  585. dbClub.setDepartment(cmClub.getDepartment());
  586. }
  587. if ("2".equals(cmClub.getFirstClubType())) {
  588. dbClub.setMedicalPracticeLicenseImg("");
  589. dbClub.setSecondClubType("");
  590. dbClub.setDepartment("");
  591. }
  592. dbClub.setFirstClubType(cmClub.getFirstClubType());
  593. dbClub.setMainpro(cmClub.getMainpro());
  594. newCmClubService.update(dbClub);
  595. addMessage(redirectAttributes, "操作成功");
  596. return jsonModel.success(Global.getAdminPath() + "/new/user/agency/?repage");
  597. }
  598. /**
  599. * 发送采美信息
  600. *
  601. * @param messageTypeID
  602. * @param toUserID
  603. * @param title
  604. * @param content
  605. * @throws Exception
  606. */
  607. public void sendMessage(String messageTypeID, Integer toUserID, String title, String content) throws Exception {
  608. CmMessage cmMessage = CmMsgUtils.getCmMsg(messageTypeID, toUserID, title, content);
  609. cmMessageService.save(cmMessage);
  610. }
  611. /**
  612. * 升级为会员机构
  613. *
  614. * @param type 1,设置为会员机构; 2,设置为普通机构
  615. * @return
  616. */
  617. @ResponseBody
  618. @RequestMapping("/upgradeClub")
  619. public Map<String, Object> upgradeClub(NewCmClub cmClub, String type, RedirectAttributes redirectAttributes) {
  620. Map<String, Object> map = new HashMap<>();
  621. if (cmClub != null) {
  622. CmUser cmUser = cmUserService.get(cmClub.getUserID().toString());
  623. //设置为会员机构
  624. if ("1".equals(type)) {
  625. if (null == cmUser.getName()) {
  626. cmUser.setName(cmUser.getUserName());
  627. cmClub.setName(cmUser.getUserName());
  628. cmClub.setSname(cmUser.getUserName());
  629. }
  630. //用户身份 1、协销 2、会员机构 3、供应商 4.普通机构
  631. cmUser.setUserIdentity(2);
  632. //用户权限 2 会员机构 3 供应商 4 协销 5 普通机构
  633. cmUser.setUserPermission(2);
  634. //见枚举UserType(1供应商,2协销经理,32协销,3会员机构,4普通机构)
  635. cmUser.setRegisterUserTypeID("3");
  636. cmUser.setClubStatus("90");
  637. } else {
  638. //用户身份 1、协销 2、会员机构 3、供应商 4.普通机构
  639. cmUser.setUserIdentity(4);
  640. //用户权限 2 会员机构 3 供应商 4 协销 5 普通机构
  641. cmUser.setUserPermission(5);
  642. //见枚举UserType(1供应商,2协销经理,32协销,3会员机构,4普通机构)
  643. cmUser.setRegisterUserTypeID("4");
  644. cmUser.setClubStatus("90");
  645. }
  646. cmUserService.update(cmUser);
  647. if (cmClub.getStatus() != 90) {
  648. cmClub.setStatus(90);
  649. newCmClubService.update(cmClub);
  650. }
  651. }
  652. addMessage(redirectAttributes, "操作成功");
  653. map.put("success", true);
  654. map.put("msg", "操作成功");
  655. return map;
  656. }
  657. /**
  658. * 编辑用户信息验证新手机号是否可用
  659. */
  660. @RequestMapping("checkMobile")
  661. @ResponseBody
  662. public Map<String, String> checkMobile(String bindMobile, Integer userID) {
  663. return cmUserService.checkMobile(bindMobile, userID, "crm");
  664. }
  665. /**
  666. * 资料备注列表
  667. */
  668. @RequestMapping("remarks")
  669. public String remarksList(CmClubRemarks cmClubRemarks, HttpServletRequest request, HttpServletResponse response, Model model) {
  670. Page<CmClubRemarks> page = newCmClubService.findRemarksPage(new Page<CmClubRemarks>(request, response, 20), cmClubRemarks);
  671. model.addAttribute("cmClubRemarks", cmClubRemarks);
  672. model.addAttribute("page", page);
  673. return "modules/userNew/cmAgencyRemarksList";
  674. }
  675. /**
  676. * 已注册用户咨询记录
  677. *
  678. * @param cmClubRemarks
  679. * @param request
  680. * @param response
  681. * @param model
  682. * @return
  683. */
  684. @RequestMapping("regist")
  685. public String registList(CmClubRemarks cmClubRemarks, HttpServletRequest request, HttpServletResponse response, Model model) {
  686. if (org.apache.commons.lang3.StringUtils.isNotBlank(cmClubRemarks.getStartAddTime())) {
  687. String startAddTime = cmClubRemarks.getStartAddTime();
  688. startAddTime += " 00:00:00";
  689. cmClubRemarks.setStartAddTime(startAddTime);
  690. }
  691. if (org.apache.commons.lang.StringUtils.isNotBlank(cmClubRemarks.getEndAddTime())) {
  692. String endAddTime = cmClubRemarks.getEndAddTime();
  693. endAddTime += " 23:59:59";
  694. cmClubRemarks.setEndAddTime(endAddTime);
  695. }
  696. Page<CmClubRemarks> page = newCmClubService.findRegistPage(new Page<CmClubRemarks>(request, response, 20), cmClubRemarks);
  697. cmClubRemarks.setConsults(newCmClubService.findConsults());
  698. cmClubRemarks.setTeams(newCmClubService.findTeams());
  699. model.addAttribute("cmClubRemarks", cmClubRemarks);
  700. model.addAttribute("page", page);
  701. return "modules/userNew/cmRegistRemarksList";
  702. }
  703. /**
  704. * 资料备注列表
  705. */
  706. @RequestMapping("remarks/download")
  707. public void downloadRemarks(String fileName, String ossName, HttpServletRequest request, HttpServletResponse response, Model model) throws IOException {
  708. newCmClubService.downloadRemarks(fileName, ossName, request, response);
  709. }
  710. @RequestMapping("group")
  711. @ResponseBody
  712. public List<ServiceProviderModel> group(Integer leaderId) {
  713. return newCmClubService.findGroup(leaderId);
  714. }
  715. }