TaPersonController.java 31KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797
  1. package com.huiju.estateagents.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.huiju.estateagents.base.BaseController;
  7. import com.huiju.estateagents.base.ResponseBean;
  8. import com.huiju.estateagents.center.taUser.entity.TaUser;
  9. import com.huiju.estateagents.center.taUser.service.ITaUserService;
  10. import com.huiju.estateagents.common.CommConstant;
  11. import com.huiju.estateagents.common.SMSUtils;
  12. import com.huiju.estateagents.common.StringUtils;
  13. import com.huiju.estateagents.entity.TaChannel;
  14. import com.huiju.estateagents.entity.TaChannelPerson;
  15. import com.huiju.estateagents.entity.TaPerson;
  16. import com.huiju.estateagents.entity.TaPersonBuilding;
  17. import com.huiju.estateagents.service.*;
  18. import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
  19. import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.*;
  22. import org.springframework.web.client.RestTemplate;
  23. import javax.servlet.http.HttpServletRequest;
  24. import java.time.LocalDateTime;
  25. import java.util.ArrayList;
  26. import java.util.HashMap;
  27. import java.util.List;
  28. import java.util.Map;
  29. /**
  30. * <p>
  31. * 人员表 前端控制器
  32. * </p>
  33. *
  34. * @author jobob
  35. * @since 2019-05-10
  36. */
  37. @RestController
  38. @RequestMapping("/api")
  39. public class TaPersonController extends BaseController {
  40. @Autowired
  41. ITaPersonService taPersonService;
  42. @Autowired
  43. TaChannelService taChannelService;
  44. @Autowired
  45. TaChannelPersonService taChannelPersonService;
  46. @Autowired
  47. ITaUserService taUserService;
  48. @Autowired
  49. SMSUtils smsUtils;
  50. @Autowired
  51. ITaPersonBuildingService taPersonBuildingService;
  52. @Autowired
  53. ITaSharePersonFromService iTaSharePersonFromService;
  54. @Autowired
  55. public ITaThirdPartyMiniappConfigService iTaThirdPartyMiniappConfigService;
  56. /**
  57. *
  58. * 因为人员表是集合系统的所有种类的用户,包含了各种角色。因此各种角色的操作都在本 controller 中完成
  59. * 以下是置业顾问卡片内容
  60. *
  61. */
  62. /**
  63. * 获取卡片列表
  64. * @param pageNumber
  65. * @param pageSize
  66. * @return
  67. */
  68. @GetMapping("/wx/cards")
  69. public ResponseBean getCardList(@RequestParam(defaultValue = "1") int pageNumber,
  70. @RequestParam(defaultValue = "10") int pageSize,
  71. @RequestParam(defaultValue = "false") boolean mine,
  72. @RequestParam(value = "buildingId", required = false)String buildingId,
  73. HttpServletRequest request) {
  74. if (pageNumber < 0 || pageSize < 0) {
  75. return ResponseBean.error("分页参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  76. }
  77. Integer orgId = getOrgId(request);
  78. String openid = getOpenId(request);
  79. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  80. if (null == taPersons || taPersons.size() != 1) {
  81. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  82. }
  83. TaPerson person = taPersons.get(0);
  84. if (mine){
  85. IPage<Map<String, Object>> result = taPersonService.getSavedConsaultants(pageNumber,pageSize,person.getPersonId());
  86. return ResponseBean.success(result);
  87. }else {
  88. IPage<Map<String, Object>> result = taPersonService.getCardList(pageNumber, pageSize,buildingId,orgId, person);
  89. return ResponseBean.success(result);
  90. }
  91. }
  92. @PutMapping("/wx/registerConsultant")
  93. public ResponseBean registerConsultant(HttpServletRequest request,@RequestParam String phone,@RequestParam String code) {
  94. ResponseBean responseBean = new ResponseBean();
  95. if(!smsUtils.checkCaptcha(phone,code)){
  96. responseBean.addError("验证码错误。");
  97. return responseBean;
  98. }
  99. Integer orgId =getOrgId(request);
  100. String openid = getOpenId(request);
  101. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  102. if (null == taPersons || taPersons.size() != 1) {
  103. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  104. }
  105. TaPerson person = taPersons.get(0);
  106. QueryWrapper<TaUser>queryWrapper = new QueryWrapper<>();
  107. queryWrapper.eq("phone",phone);
  108. queryWrapper.eq("org_id",orgId);
  109. queryWrapper.eq("is_consultant",true);
  110. List<TaUser> users = taUserService.list(queryWrapper);
  111. if(users.size()>0){
  112. TaUser user = users.get(0);
  113. person.setPersonType(CommConstant.PERSON_REALTY_CONSULTANT);
  114. person.setUserId(user.getUserId());
  115. person.setAvatarurl(user.getAvatar());
  116. person.setCompany(user.getOrgName());
  117. person.setTel(user.getPhone());
  118. person.setName(user.getUserName());
  119. person.setAddress(user.getAddress());
  120. person.setIdNo(user.getIdNo());
  121. person.setDepartment(user.getDepartment());
  122. person.setPost(user.getPosition());
  123. person.setPhoto(user.getPhoto());
  124. if(StringUtils.isEmpty(person.getPhone())){
  125. person.setPhone(user.getPhone());
  126. }
  127. taPersonService.updateById(person);
  128. responseBean.addSuccess(person);
  129. }else {
  130. responseBean.addError("此手机号未录入到后台系统,请联系营销云管理员。");
  131. }
  132. return responseBean;
  133. }
  134. @PutMapping("/wx/registerConsultantOneClick")
  135. public ResponseBean registerConsultantOneClick(HttpServletRequest request) {
  136. ResponseBean responseBean = new ResponseBean();
  137. Integer orgId =getOrgId(request);
  138. String openid = getOpenId(request);
  139. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  140. if (null == taPersons || taPersons.size() != 1) {
  141. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  142. }
  143. TaPerson person = taPersons.get(0);
  144. if (person.getPersonType().equals(CommConstant.PERSON_REALTY_CONSULTANT)){
  145. return ResponseBean.error("您已经成为置业顾问",ResponseBean.ERROR_UNAVAILABLE);
  146. }
  147. QueryWrapper<TaUser>queryWrapper = new QueryWrapper<>();
  148. queryWrapper.nested(query -> query.eq("phone", person.getTel()).or().eq("phone", person.getPhone()));
  149. queryWrapper.eq("org_id",orgId);
  150. queryWrapper.eq("status",CommConstant.STATUS_NORMAL);
  151. queryWrapper.eq("is_consultant",true);
  152. List<TaUser> users = taUserService.list(queryWrapper);
  153. if(users.size()>0){
  154. TaUser user = users.get(0);
  155. person.setPersonType(CommConstant.PERSON_REALTY_CONSULTANT);
  156. person.setUserId(user.getUserId());
  157. person.setAvatarurl(user.getAvatar());
  158. person.setCompany(user.getOrgName());
  159. person.setTel(user.getPhone());
  160. person.setName(user.getUserName());
  161. person.setAddress(user.getAddress());
  162. person.setIdNo(user.getIdNo());
  163. person.setDepartment(user.getDepartment());
  164. person.setPost(user.getPosition());
  165. person.setPhoto(user.getPhoto());
  166. taPersonService.updateById(person);
  167. responseBean.addSuccess(person);
  168. }else {
  169. responseBean.addError("手机号不存在,请联系管理员维护。");
  170. return responseBean;
  171. }
  172. TaChannelPerson taChannelPerson = new TaChannelPerson();
  173. taChannelPerson.setStatus(CommConstant.STATUS_DELETE);
  174. QueryWrapper<TaChannelPerson> taChannelPersonQueryWrapper = new QueryWrapper<>();
  175. taChannelPersonQueryWrapper.eq("person_id", person.getPersonId());
  176. taChannelPersonService.update(taChannelPerson, taChannelPersonQueryWrapper);
  177. return responseBean;
  178. }
  179. @PutMapping("/wx/registerAgent")
  180. public ResponseBean registerAgent(@RequestParam(required = false) String recommendAgentCode, @RequestParam(required = false) String channelCode,HttpServletRequest request) {
  181. ResponseBean responseBean = new ResponseBean();
  182. Integer orgId =getOrgId(request);
  183. String openid = getOpenId(request);
  184. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  185. if (null == taPersons || taPersons.size() != 1) {
  186. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  187. }
  188. TaPerson person = taPersons.get(0);
  189. person.setAgentCode(taPersonService.agentCodeGenerator());
  190. if (!StringUtils.isEmpty(recommendAgentCode)){
  191. QueryWrapper<TaPerson> agentWrapper = new QueryWrapper();
  192. agentWrapper.eq("agent_code",recommendAgentCode);
  193. agentWrapper.eq("org_id",orgId);
  194. TaPerson agent = taPersonService.getOne(agentWrapper);
  195. if (null != agent){
  196. person.setRecommendAgent(agent.getPersonId());
  197. }
  198. }
  199. if(StringUtils.isEmpty(channelCode)){
  200. person.setPersonType(CommConstant.PERSON_ESTATE_AGENT);
  201. }else {
  202. person.setPersonType(CommConstant.PERSON_ESTATE_AGENT);
  203. QueryWrapper<TaChannel> queryWrapper = new QueryWrapper();
  204. queryWrapper.eq("channel_code",channelCode);
  205. queryWrapper.eq("org_id",orgId);
  206. TaChannel channel = taChannelService.getOne(queryWrapper);
  207. if (null == channel){
  208. return ResponseBean.error("验证码有误,请确认后重新输入",ResponseBean.ERROR_UNAVAILABLE);
  209. }
  210. QueryWrapper<TaChannelPerson>taChannelPersonQueryWrapper = new QueryWrapper<>();
  211. taChannelPersonQueryWrapper.eq("person_id",person.getPersonId());
  212. taChannelPersonQueryWrapper.eq("channel_id",channel.getChannelId());
  213. taChannelPersonQueryWrapper.eq("status",CommConstant.STATUS_NORMAL);
  214. int count = taChannelPersonService.count(taChannelPersonQueryWrapper);
  215. if(count>0){
  216. return ResponseBean.error("您已绑定过该渠道",ResponseBean.ERROR_UNAVAILABLE);
  217. }
  218. TaChannelPerson channelPerson = new TaChannelPerson();
  219. channelPerson.setChannelId(channel.getChannelId());
  220. channelPerson.setPersonId(person.getPersonId());
  221. channelPerson.setCreateDate(LocalDateTime.now());
  222. channelPerson.setStatus(CommConstant.STATUS_NORMAL);
  223. taChannelPersonService.save(channelPerson);
  224. }
  225. taPersonService.updateById(person);
  226. responseBean.addSuccess(person);
  227. return responseBean;
  228. }
  229. /**
  230. * 绑定卡片
  231. * @param paramStr
  232. * @return
  233. */
  234. @PostMapping("/wx/cards/apply")
  235. public ResponseBean applyCard(@RequestBody String paramStr, HttpServletRequest request) {
  236. JSONObject params = JSONObject.parseObject(paramStr);
  237. String phone = (String) params.get("phone");
  238. String pass = (String) params.get("pass");
  239. String openid = getOpenId(request);
  240. if (isEmpty(phone) || isEmpty(pass)) {
  241. return ResponseBean.error("参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  242. }
  243. ResponseBean resp = taPersonService.checkPhoneAndPass(phone, pass);
  244. // 成功返回空数据
  245. if (resp.getCode() != ResponseBean.CODE_SUCCESS) {
  246. return resp;
  247. }
  248. return taPersonService.bindCard(phone, pass, openid);
  249. }
  250. /**
  251. * 获取名片详情
  252. * @param id
  253. * @return
  254. */
  255. @GetMapping("/wx/cards/{id}")
  256. public ResponseBean getCardDetail(@PathVariable String id, HttpServletRequest request) {
  257. if (isEmpty(id)) {
  258. return ResponseBean.error("参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  259. }
  260. String openid = getOpenId(request);
  261. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  262. if (null == taPersons || taPersons.size() != 1) {
  263. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  264. }
  265. TaPerson person = taPersons.get(0);
  266. // QueryWrapper<TaPersonBuilding>queryWrapper = new QueryWrapper<>();
  267. // queryWrapper.eq("user_id",person.getUserId());
  268. // TaPersonBuilding personBuilding = taPersonBuildingService.getOne(queryWrapper);
  269. return taPersonService.getCardDetail(openid, id,person.getPersonId());
  270. }
  271. /**
  272. * 获取名片详情
  273. * @param id
  274. * @return
  275. */
  276. @GetMapping("/wx/onePerson/{id}")
  277. public ResponseBean getPersonByPersonId(@PathVariable String id, HttpServletRequest request) {
  278. if (isEmpty(id)) {
  279. return ResponseBean.error("参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  280. }
  281. TaPerson person = taPersonService.getById(id);
  282. return ResponseBean.success(person);
  283. }
  284. /**
  285. * 找回密码
  286. * @param plat 平台类型 wx 是微信相关, admin 是后台管理系统
  287. * @param paramStr
  288. * @return
  289. */
  290. @PostMapping("/{plat}/resetPass")
  291. public ResponseBean resetPassword(@PathVariable String plat, @RequestBody String paramStr) {
  292. JSONObject params = JSONObject.parseObject(paramStr);
  293. String phone = (String) params.get("phone");
  294. String code = (String) params.get("code");
  295. String pass = (String) params.get("pass");
  296. if (isEmpty(phone) || isEmpty(code) || isEmpty(pass)) {
  297. return ResponseBean.error("参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  298. }
  299. // todo
  300. // 验证 验证码是否正确
  301. if (code != "1234") {
  302. return ResponseBean.error("验证码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  303. }
  304. return taPersonService.resetPassword(phone, pass, plat);
  305. }
  306. /**
  307. *
  308. * 以下是经纪人部分
  309. *
  310. */
  311. /**
  312. * 注册经纪人
  313. * @param paramStr
  314. * @param request
  315. * @return
  316. */
  317. @PostMapping("/wx/register")
  318. public ResponseBean resgiteAgent(@RequestBody String paramStr, HttpServletRequest request) {
  319. JSONObject params = JSONObject.parseObject(paramStr);
  320. String name = (String) params.get("name");
  321. String phone = (String) params.get("phone");
  322. Integer sex = (Integer) params.get("sex");
  323. String explain = (String) params.get("explain");
  324. if (isEmpty(name) || isEmpty(phone) || isEmpty(explain)) {
  325. return ResponseBean.error("请检查部分参数不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
  326. }
  327. // 当前人员
  328. String openid = getOpenId(request);
  329. return taPersonService.resgiteAgent(name, phone, sex, explain, openid);
  330. }
  331. /**
  332. * 生成海报
  333. * @param paramStr
  334. * @param request
  335. * @return
  336. */
  337. @PostMapping("/wx/poster")
  338. public ResponseBean genPoster(@RequestBody String paramStr, HttpServletRequest request) {
  339. return null;
  340. }
  341. /**
  342. *
  343. * 以下是个人中心部分
  344. *
  345. */
  346. /**
  347. * 获取个人信息
  348. * @param request
  349. * @return
  350. */
  351. @GetMapping("/wx/user/info")
  352. public ResponseBean getUserInfo(HttpServletRequest request) {
  353. String openid = getOpenId(request);
  354. return taPersonService.getWxUser(openid);
  355. }
  356. /**
  357. * 第三方获取个人信息
  358. * @param request
  359. * @return
  360. */
  361. @GetMapping("/third/user/info")
  362. public ResponseBean thirdGetUserInfo(@RequestParam("personId") String personId, HttpServletRequest request) {
  363. //获取H5项目相关信息
  364. String xAppid = request.getHeader("x-appid");
  365. QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
  366. taThirdPartyMiniappConfigQueryWrapper.eq("appid", xAppid);
  367. TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
  368. if (null == taThirdPartyMiniappConfig){
  369. return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
  370. }
  371. return taPersonService.ThirdUserInfo(personId);
  372. }
  373. /**
  374. * 个人getPersonId(request);
  375. * @param request
  376. * @return
  377. */
  378. @PostMapping("/wx/user/signin")
  379. public ResponseBean userSign(HttpServletRequest request) {
  380. String openid = getOpenId(request);
  381. Integer orgId = getOrgId(request);
  382. return taPersonService.getWxUserSign(openid, orgId);
  383. }
  384. /**
  385. *
  386. *
  387. * 以下是系统用户管理
  388. *
  389. */
  390. /**
  391. * 用户手机号登录
  392. * @param paramStr
  393. * @return
  394. */
  395. // @PostMapping("/admin/signin")
  396. // public ResponseBean signin(@RequestBody String paramStr) {
  397. // JSONObject params = JSONObject.parseObject(paramStr);
  398. // if (params == null) {
  399. // return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
  400. // }
  401. //
  402. // String userPhone = params.getString("phone");
  403. // String userCaptcha = params.getString("captcha");
  404. //
  405. // // todo
  406. // if (!"1234".equals(userCaptcha)) {
  407. // return ResponseBean.error("验证码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  408. // }
  409. //
  410. // TaPerson taPerson = taPersonService.getPersonByTel(userPhone);
  411. // if (taPerson == null) {
  412. // return ResponseBean.error("手机号不存在", ResponseBean.ERROR_ILLEGAL_PARAMS);
  413. // }
  414. //
  415. // if (taPerson.getStatus() != CommConstant.STATUS_NORMAL) {
  416. // return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
  417. // }
  418. //
  419. // String token = JWTUtils.newToken(taPerson.getPersonId());
  420. //
  421. // Map<String, Object> result = new HashMap<>();
  422. // result.put("token", token);
  423. // result.put("person", taPerson);
  424. //
  425. // return ResponseBean.success(result);
  426. // }
  427. /**
  428. * 获取当前用户
  429. * @param request
  430. * @return
  431. */
  432. @GetMapping("/admin/user/current")
  433. public ResponseBean getCurrentPerson(HttpServletRequest request) {
  434. String personId = getPersonId(request);
  435. TaPerson taPerson = taPersonService.getById(personId);
  436. if (null == taPerson || taPerson.getStatus() != CommConstant.STATUS_NORMAL) {
  437. return ResponseBean.error("用户状态异常", ResponseBean.ERROR_AUTH_EXPIRED);
  438. }
  439. return ResponseBean.success(taPerson);
  440. }
  441. @GetMapping("/admin/consultant")
  442. public ResponseBean getConsultantList(
  443. Integer pageNumber,
  444. Integer pageSize,
  445. String name,
  446. String phone,
  447. Integer status,
  448. String buildingId,
  449. String personTags
  450. ) {
  451. if (null == pageNumber) pageNumber = 1;
  452. if (null == pageSize) pageSize = 10;
  453. IPage<TaPerson> taPersonIPage = taPersonService.getPersonList(pageNumber, pageSize, CommConstant.PERSON_REALTY_CONSULTANT, name, phone,status,buildingId,personTags);
  454. return ResponseBean.success(taPersonIPage);
  455. }
  456. @GetMapping("/admin/building/consultant")
  457. public ResponseBean getBuildingConsultantList(
  458. Integer pageNumber,
  459. Integer pageSize,
  460. String buildingId
  461. ) {
  462. if (null == pageNumber) pageNumber = 1;
  463. if (null == pageSize) pageSize = 10;
  464. IPage<TaUser> taPersonIPage = taPersonService.getBuildingConsultantList(pageNumber,pageSize,buildingId);
  465. return ResponseBean.success(taPersonIPage);
  466. }
  467. @GetMapping("/wx/building/consultant")
  468. public ResponseBean getWxBuildingConsultantList(
  469. Integer pageNumber,
  470. Integer pageSize,
  471. String buildingId
  472. ) {
  473. if (null == pageNumber) pageNumber = 1;
  474. if (null == pageSize) pageSize = 10;
  475. IPage<TaUser> taPersonIPage = taPersonService.getBuildingConsultantList(pageNumber,pageSize,buildingId);
  476. return ResponseBean.success(taPersonIPage);
  477. }
  478. @GetMapping("/admin/consultant/{id}")
  479. public ResponseBean getConsultant(@PathVariable String id) {
  480. TaPerson taPerson = taPersonService.getById(id);
  481. List<TaPersonBuilding> buildings = taPersonService.getPersonBuildings(id);
  482. if (null != buildings && buildings.size() > 0) {
  483. List<String> projects = new ArrayList<>();
  484. for (TaPersonBuilding b : buildings) {
  485. projects.add(b.getBuildingId());
  486. }
  487. taPerson.setProjects(projects);
  488. }
  489. return ResponseBean.success(taPerson);
  490. }
  491. @PostMapping("/admin/consultant")
  492. public ResponseBean newConsultant(@RequestBody String paramStr) {
  493. return taPersonService.newConsultant(paramStr);
  494. }
  495. @PutMapping("/admin/consultant/{id}")
  496. public ResponseBean editConsultant(@PathVariable String id, @RequestBody String paramStr) {
  497. return taPersonService.editConsultant(id, paramStr);
  498. }
  499. @PutMapping("/wx/editPerson")
  500. public ResponseBean editWxConsultant(@RequestParam(required = false)String name,@RequestParam(required = false)String avatar,@RequestParam(required = false)String phone,HttpServletRequest request) {
  501. ResponseBean responseBean = new ResponseBean();
  502. String openid = getOpenId(request);
  503. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  504. if (null == taPersons || taPersons.size() != 1) {
  505. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  506. }
  507. TaPerson person = taPersons.get(0);
  508. if (!StringUtils.isEmpty(name)){
  509. person.setName(name);
  510. }
  511. if (!StringUtils.isEmpty(avatar)){
  512. person.setAvatarurl(avatar);
  513. }
  514. if (!StringUtils.isEmpty(phone)){
  515. person.setTel(phone);
  516. // person.setPhone(phone);
  517. if(person.getPersonType().equals(CommConstant.PERSON_REALTY_CONSULTANT)){
  518. TaUser user = taUserService.getById(person.getUserId());
  519. user.setPhone(phone);
  520. user.setLoginName(phone);
  521. taUserService.updateById(user);
  522. }
  523. }
  524. try{
  525. if(taPersonService.updateById(person)){
  526. responseBean.addSuccess(person);
  527. }else {
  528. responseBean.addError("fail");
  529. }
  530. }catch (Exception e){
  531. }
  532. return responseBean;
  533. }
  534. boolean isEmpty(String str) {
  535. return null == str || "".equals(str.trim());
  536. }
  537. /**
  538. // * 获取收藏置业顾问列表
  539. // * @param pageNumber
  540. // * @param pageSize
  541. // * @return
  542. // */
  543. // @GetMapping("/wx/savedPerson")
  544. // public ResponseBean getSavedConsaultants(@RequestParam(defaultValue = "1") int pageNumber,
  545. // @RequestParam(defaultValue = "10") int pageSize,HttpServletRequest request) {
  546. // String openid = getOpenId(request);
  547. // List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  548. // if (null == taPersons || taPersons.size() != 1) {
  549. // return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  550. // }
  551. // TaPerson person = taPersons.get(0);
  552. // if (pageNumber < 0 || pageSize < 0) {
  553. // return ResponseBean.error("分页参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
  554. // }
  555. // try {
  556. // IPage<TaPerson> result = taPersonService.getSavedConsaultants(pageNumber,pageSize,person.getPersonId());
  557. // return ResponseBean.success(result);
  558. // }catch (Exception e){
  559. // e.printStackTrace();
  560. // return ResponseBean.error("查询失败", ResponseBean.ERROR_UNAVAILABLE);
  561. // }
  562. //
  563. // }
  564. /**
  565. * 变更经纪人类型
  566. * @param channelCode 渠道码
  567. * @return
  568. */
  569. @RequestMapping(value="/wx/customer/recommend/becomeChannel",method= RequestMethod.PUT)
  570. public ResponseBean taRecommendAgentBecomeChannel(@RequestParam(required = false) String channelCode,HttpServletRequest request,@RequestParam("personType")String personType){
  571. ResponseBean responseBean = new ResponseBean();
  572. if (org.apache.commons.lang3.StringUtils.isBlank(personType)) {
  573. responseBean.addSuccess("personType为空");
  574. return responseBean;
  575. }
  576. String openid = getOpenId(request);
  577. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  578. if (null == taPersons || taPersons.size() != 1) {
  579. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  580. }
  581. TaPerson person = taPersons.get(0);
  582. try {
  583. if(CommConstant.PERSON_ESTATE_CHANNEL.equals(personType)){
  584. QueryWrapper<TaChannel>channelQueryWrapper = new QueryWrapper<>();
  585. channelQueryWrapper.eq("channel_code",channelCode);
  586. channelQueryWrapper.eq("org_id",getOrgId(request));
  587. QueryWrapper<TaChannelPerson>channelPersonQueryWrapper = new QueryWrapper<>();
  588. List<TaChannel> channel = taChannelService.list(channelQueryWrapper);
  589. if(channel.size()>0){
  590. channelPersonQueryWrapper.eq("person_id",person.getPersonId());
  591. channelPersonQueryWrapper.eq("channel_id",channel.get(0).getChannelId());
  592. channelPersonQueryWrapper.eq("status",CommConstant.STATUS_NORMAL);
  593. int count = taChannelPersonService.count(channelPersonQueryWrapper);
  594. if(count >0){
  595. return ResponseBean.error("您已绑定过渠道",ResponseBean.ERROR_UNAVAILABLE);
  596. }
  597. TaChannelPerson channelPerson = new TaChannelPerson();
  598. channelPerson.setCreateDate(LocalDateTime.now());
  599. channelPerson.setPersonId(person.getPersonId());
  600. channelPerson.setChannelId(channel.get(0).getChannelId());
  601. channelPerson.setStatus(CommConstant.STATUS_NORMAL);
  602. taChannelPersonService.save(channelPerson);
  603. }else {
  604. return ResponseBean.error("渠道码错误", ResponseBean.ERROR_UNAVAILABLE);
  605. }
  606. }
  607. //编辑个人信息暂时不修改经纪人类型
  608. // else {
  609. //
  610. // QueryWrapper<TaChannelPerson>channelPersonQueryWrapper = new QueryWrapper<>();
  611. // channelPersonQueryWrapper.eq("person_id",person.getPersonId());
  612. // List<TaChannelPerson> taChannelPerson = taChannelPersonService.list(channelPersonQueryWrapper);
  613. // if (taChannelPerson.size()>0){
  614. // for(int i=0;i<taChannelPerson.size();i++){
  615. // taChannelPerson.get(i).setStatus(CommConstant.STATUS_DELETE);
  616. // }
  617. // taChannelPersonService.updateBatchById(taChannelPerson);
  618. // }
  619. // }
  620. person.setPersonType(personType);
  621. if (taPersonService.updateById(person)){
  622. responseBean.addSuccess(person);
  623. }else {
  624. responseBean.addError("fail");
  625. }
  626. }catch (Exception e){
  627. e.printStackTrace();
  628. responseBean.addError(e.getMessage());
  629. }
  630. return responseBean;
  631. }
  632. /**
  633. * 获取名片详情
  634. * @return
  635. */
  636. @GetMapping("/wx/agent/recommend/mine")
  637. public ResponseBean getAgentIRecommend(@RequestParam(defaultValue = "1") int pageNumber,
  638. @RequestParam(defaultValue = "10") int pageSize, HttpServletRequest request) {
  639. String openid = getOpenId(request);
  640. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  641. if (null == taPersons || taPersons.size() != 1) {
  642. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  643. }
  644. TaPerson person = taPersons.get(0);
  645. QueryWrapper<TaPerson>queryWrapper = new QueryWrapper<>();
  646. queryWrapper.eq("recommend_agent",person.getPersonId());
  647. queryWrapper.eq("person_type", CommConstant.PERSON_ESTATE_AGENT);
  648. queryWrapper.eq("status",CommConstant.STATUS_NORMAL);
  649. Page<TaPerson>page = new Page<>();
  650. page.setPages(pageNumber);
  651. page.setCurrent(pageNumber);
  652. page.setSize(pageSize);
  653. ResponseBean responseBean = new ResponseBean();
  654. IPage<TaPerson>data = taPersonService.page(page,queryWrapper);
  655. responseBean.addSuccess(data);
  656. return responseBean;
  657. }
  658. /**
  659. * 获取当前用户
  660. * @param request
  661. * @return
  662. */
  663. @GetMapping("/wx/user/current")
  664. public ResponseBean getWxCurrentPerson(HttpServletRequest request) {
  665. String personId = getPersonId(request);
  666. TaPerson taPerson = taPersonService.getById(personId);
  667. if (null == taPerson || taPerson.getStatus() != CommConstant.STATUS_NORMAL) {
  668. return ResponseBean.error("用户状态异常", ResponseBean.ERROR_AUTH_EXPIRED);
  669. }
  670. return ResponseBean.success(taPerson);
  671. }
  672. /**
  673. * 微信添加人员添加城市
  674. * @param params
  675. * @param request
  676. * @return
  677. */
  678. @PutMapping("/wx/person/city")
  679. public ResponseBean updatePersonCity(@RequestBody String params, HttpServletRequest request) {
  680. ResponseBean responseBean = new ResponseBean();
  681. String openid = getOpenId(request);
  682. List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
  683. if (null == taPersons || taPersons.size() != 1) {
  684. return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
  685. }
  686. TaPerson person = taPersons.get(0);
  687. JSONObject jsonObject = JSONObject.parseObject(params);
  688. String lat = jsonObject.getString("lat");
  689. String lon = jsonObject.getString("lon");
  690. String location = lon+","+lat;
  691. RestTemplate restTemplate = new RestTemplate();
  692. String result = restTemplate.getForObject("https://restapi.amap.com/v3/geocode/regeo?key="+ CommConstant.GD_KEY + "&location=" +location+ "&output=json", String.class);
  693. JSONObject resultJson = JSONObject.parseObject(result);
  694. if (!resultJson.getString("status").equals(CommConstant.STATUS_NORMAL)){
  695. String adcode = resultJson.getJSONObject("regeocode").getJSONObject("addressComponent").getString("adcode");
  696. String cityName = resultJson.getJSONObject("regeocode").getJSONObject("addressComponent").getString("city");
  697. adcode = adcode.substring(0,adcode.length()-2) + "00";
  698. person.setCity(adcode);
  699. taPersonService.updateById(person);
  700. Map<Object,Object> data = new HashMap<>();
  701. data.put("cityName",cityName);
  702. data.put("cityCode",adcode);
  703. responseBean.addSuccess(data);
  704. return responseBean;
  705. }
  706. responseBean.addError("未找到城市");
  707. return responseBean;
  708. }
  709. @PutMapping("/wx/userInfo/updatePhoto")
  710. public ResponseBean updateUserPhoto(@RequestBody Map<String, String> photoUrl, HttpServletRequest request){
  711. ResponseBean responseBean = new ResponseBean();
  712. String openId = getOpenId(request);
  713. String imgUrl = photoUrl.get("photoUrl");
  714. if (StringUtils.isEmpty(imgUrl)){
  715. responseBean.addError("请上传图片");
  716. return responseBean;
  717. }
  718. return taPersonService.updateUserPhoto(imgUrl, openId);
  719. }
  720. }