AgencyController.java 32 KB

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