OpenAppUserController.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package com.goafanti.app.controller;
  2. import java.util.Calendar;
  3. import java.util.UUID;
  4. import javax.annotation.Resource;
  5. import javax.validation.Valid;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.springframework.validation.BindingResult;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestMethod;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. import org.springframework.web.bind.annotation.RestController;
  12. import com.goafanti.achievement.service.AchievementInterestService;
  13. import com.goafanti.achievement.service.AchievementService;
  14. import com.goafanti.app.bo.ExpertsListBo;
  15. import com.goafanti.banners.service.BannersService;
  16. import com.goafanti.comment.bo.CommentResult;
  17. import com.goafanti.comment.service.CommentService;
  18. import com.goafanti.common.bo.Result;
  19. import com.goafanti.common.constant.AFTConstants;
  20. import com.goafanti.common.constant.ErrorConstants;
  21. import com.goafanti.common.controller.BaseApiController;
  22. import com.goafanti.common.enums.UserAuthentication;
  23. import com.goafanti.common.enums.UserFields;
  24. import com.goafanti.common.enums.UserLevel;
  25. import com.goafanti.common.model.User;
  26. import com.goafanti.common.utils.PasswordUtil;
  27. import com.goafanti.common.utils.TimeUtils;
  28. import com.goafanti.common.utils.VerifyCodeUtils;
  29. import com.goafanti.core.shiro.token.TokenManager;
  30. import com.goafanti.demand.service.DemandService;
  31. import com.goafanti.easemob.EasemobUtils;
  32. import com.goafanti.message.service.MessageService;
  33. import com.goafanti.news.service.NewsService;
  34. import com.goafanti.user.bo.InputUser;
  35. import com.goafanti.user.service.UserCareerService;
  36. import com.goafanti.user.service.UserIdentityService;
  37. import com.goafanti.user.service.UserInterestService;
  38. import com.goafanti.user.service.UserService;
  39. @RestController
  40. @RequestMapping(value = "/open/app/user")
  41. public class OpenAppUserController extends BaseApiController {
  42. @Resource
  43. private MessageService messageService;
  44. @Resource
  45. private CommentService commentService;
  46. @Resource
  47. private AchievementService achievementService;
  48. @Resource
  49. private DemandService demandService;
  50. @Resource
  51. private UserIdentityService userIdentityService;
  52. @Resource
  53. private UserService userService;
  54. @Resource(name = "passwordUtil")
  55. private PasswordUtil passwordUtil;
  56. /**
  57. * 成果详情
  58. * @param id
  59. * @return
  60. */
  61. @RequestMapping(value = "/achievementDetail", method = RequestMethod.GET)
  62. private Result userDetail(String id ) {
  63. Result res = new Result();
  64. if (StringUtils.isBlank(id)) {
  65. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"成果必须指定","成果"));
  66. return res;
  67. }
  68. res.setData(achievementService.selectAppUserOwnerDetail(id));
  69. return res;
  70. }
  71. /**
  72. * 需求详情
  73. */
  74. @RequestMapping(value = "/demandDetail", method = RequestMethod.GET)
  75. public Result DemandDetail(String id ) {
  76. Result res = new Result();
  77. if (StringUtils.isBlank(id)) {
  78. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"需求必须指定","需求"));
  79. return res;
  80. }
  81. res.setData(demandService.selectAppDemandDetail( id));
  82. return res;
  83. }
  84. /**
  85. * 专家、顾问详情
  86. */
  87. @RequestMapping(value = "/expertsDetail", method = RequestMethod.GET)
  88. public Result expertsDetail(String id ) {
  89. Result res = new Result();
  90. if (StringUtils.isBlank(id)) {
  91. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"id必须指定","id"));
  92. return res;
  93. }
  94. res.setData(userIdentityService.selectExpertsDetail( id));
  95. return res;
  96. }
  97. /**
  98. * 专家、顾问评价
  99. */
  100. @RequestMapping(value = "/expertsComment", method = RequestMethod.GET)
  101. public Result expertsComment(String id ,Integer pageNo,Integer pageSize) {
  102. Result res = new Result();
  103. if (StringUtils.isBlank(id)) {
  104. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"id必须指定","id"));
  105. return res;
  106. }
  107. CommentResult commentResult=new CommentResult();
  108. ExpertsListBo e=userIdentityService.selectExpertsDetail( id);
  109. commentResult.setNegativeCommentCount(e.getInferior());
  110. commentResult.setOrdinaryCommentCount(e.getGeneral());
  111. commentResult.setPositiveCommentCount(e.getFavorable());
  112. commentResult.setTotalCommentCount(e.getCommentCount());
  113. commentResult.setComments(commentService.selectExpertsComment(id, pageNo, pageSize));
  114. res.setData(commentResult);
  115. return res;
  116. }
  117. @RequestMapping(value = "/index", method = RequestMethod.GET)
  118. public Result index(){
  119. Result res = new Result();
  120. res.setData(messageService.selectMessageWithGroup());
  121. return res;
  122. }
  123. /**
  124. * APP用户注册检查
  125. *
  126. * @param user
  127. * @return
  128. */
  129. @RequestMapping(value = "/registerCheck", method = RequestMethod.GET)
  130. @ResponseBody
  131. public Result registerCheck(@Valid InputUser user, String mobileCode,String uuid,BindingResult bindingResult) {
  132. Result res = new Result();
  133. if (bindingResult.hasErrors()) {
  134. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  135. UserFields.getFieldDesc(bindingResult.getFieldError().getField())));
  136. return res;
  137. }
  138. if (StringUtils.isBlank(user.getMobile())) {
  139. res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "手机号码不能为空"));
  140. return res;
  141. }
  142. User u = userService.selectByMobieAndType(user.getMobile().trim(),null);
  143. if (null != u) {
  144. res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "用户已存在"));
  145. }
  146. if (TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE_TIME) ==null||!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode.toLowerCase())) {
  147. res.getError().add(buildError(ErrorConstants.MCODE_ERROR, "手机验证码错误"));
  148. return res;
  149. }
  150. // 验证码15分钟有效
  151. if (TimeUtils.checkOverTime("register")) {
  152. res.getError().add(buildError(ErrorConstants.MCODE_OVERTIME_ERROR, "手机验证码超时失效"));
  153. return res;
  154. }
  155. return res.data(1);
  156. }
  157. /**
  158. * APP用户注册
  159. *
  160. * @param user
  161. * @return
  162. */
  163. @RequestMapping(value = "/appRegister", method = RequestMethod.POST)
  164. @ResponseBody
  165. public Result AppRegister(@Valid InputUser user, String mobileCode,String uuid,BindingResult bindingResult) {
  166. Result res = new Result();
  167. if (bindingResult.hasErrors()) {
  168. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  169. UserFields.getFieldDesc(bindingResult.getFieldError().getField())));
  170. return res;
  171. }
  172. if (StringUtils.isBlank(user.getUnitName())) {
  173. res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "用户名不能为空"));
  174. return res;
  175. }
  176. if (StringUtils.isBlank(user.getMobile())) {
  177. res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "手机号码不能为空"));
  178. return res;
  179. }
  180. if (user.getBeInviteCode()!=null&&!user.getBeInviteCode().equals("")&&userService.checkeToInviteCode(user.getBeInviteCode())) {
  181. res.getError().add(buildError("邀请码不存在", "邀请码不存在"));
  182. return res;
  183. }
  184. if (res.getError().isEmpty()) {
  185. User us = new User();
  186. us.setId(UUID.randomUUID().toString());
  187. us.setMobile(user.getMobile().trim());
  188. us.setPassword(user.getPassword());
  189. Calendar now = Calendar.getInstance();
  190. now.set(Calendar.MILLISECOND, 0);
  191. us.setCreateTime(now.getTime());
  192. us.setUpdateTime(now.getTime());
  193. us.setPassword(passwordUtil.getEncryptPwd(us));
  194. us.setNickname(user.getUnitName());
  195. us.setBeInviteCode(user.getBeInviteCode());
  196. us.setSource(AFTConstants.USER_SOURCE_REGISTER);
  197. us.setStatus(AFTConstants.USER_STATUS_NORMAL);
  198. us.setShareType(AFTConstants.USER_SHARE_PUBLIC);
  199. us.setIdentifyName(StringUtils.isBlank(user.getUnitName())?"":user.getUnitName());
  200. us.setLvl(UserLevel.GENERAL.getCode());
  201. us.setAuthentication(UserAuthentication.UN_AUTHENTICATION.getCode());
  202. us.setTransferTime(now.getTime());
  203. userService.insertRegister(us,user.getUnitName(),user.getUsername());
  204. //获得抵用券
  205. userService.saveVoucher(us);
  206. }
  207. return res;
  208. }
  209. }