AgencyController.java 34 KB

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