| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- package com.uas.sso.controller;
- import com.alibaba.fastjson.JSON;
- import com.uas.sso.SSOHelper;
- import com.uas.sso.SSOToken;
- import com.uas.sso.entity.*;
- import com.uas.sso.service.*;
- import com.uas.sso.support.SystemSession;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * @author wangmh
- * @create 2018-01-16 8:50
- * @desc 申述controller
- **/
- @RestController
- @RequestMapping("/appeal")
- public class AppealController extends BaseController {
- private static final int IMAGE_MAX_SIZE = 5 * 1024 * 1024;
- @Autowired
- private UserService userService;
- @Autowired
- private UserspaceService userspaceService;
- @Autowired
- private AppealService appealService;
- /**
- * 获取手机号验证码
- *
- * @author wangmh
- * @date 2018/1/16 10:37
- * @param mobile 手机号
- * @return 验证码tokenId
- */
- @RequestMapping(value = "/check/mobile", method = RequestMethod.GET)
- public ModelMap checkMobile(String mobile) {
- String token = getMobileToken(mobile);
- ModelMap data = new ModelMap("token", token);
- data.put("code", request.getSession().getAttribute("code"));
- return success(data);
- }
- /**
- * 校验验证码
- *
- * @author wangmh
- * @date 2018/1/16 10:44
- * @param mobile 手机号
- * @param token 验证码tokenId
- * @param code 验证码
- * @return
- */
- @RequestMapping(value = "/check/mobile", method = RequestMethod.POST)
- public ModelMap checkMobile(String mobile, @RequestParam String token, String code) {
- Token existToken = tokenService.findOne(token);
- if (existToken == null || existToken.isExpired()) {
- return error("验证码已过期,请重新获取");
- }
- // 校验验证码
- checkMobileCode(token, mobile, code);
- // 返回信息
- return success();
- }
- /**
- * 找回密码申述
- * @param appeal 申述信息
- * @param token 验证码tokenId
- * @param code 验证码
- * @return
- */
- @RequestMapping(value = "/resetPwd", method = RequestMethod.POST)
- public ModelMap resetPwd(Appeal appeal, @RequestParam String token, String code, String password, @RequestParam(defaultValue = "sso") String appId) {
- // 获取申述人,将修改的账号作为申述人
- User user = userService.findByMobile(appeal.getMobile());
- if (user == null) {
- return error("该手机号未注册");
- }
- Long submitterUU = user.getUserUU();
- // 校验token
- Token existToken = tokenService.findOne(token);
- if (existToken == null || existToken.isExpired()) {
- return error("验证码已过期,请重新获取");
- }
- // TODO 参数空检验
- // 校验验证码
- checkMobileCode(token, appeal.getMobile(), code);
- // 保存申述信息
- appeal.setSubmitterUU(submitterUU);
- appeal.setFromApp(appId);
- appealService.submitResetPwd(appeal, password);
- return success();
- }
- @RequestMapping(value = "/changeAdmin", method = RequestMethod.POST)
- public ModelMap changeAdmin(Appeal appeal, @RequestParam String token, String code, Userspace userspace, @RequestParam(defaultValue = "sso") String appId) {
- // 校验token
- Token existToken = tokenService.findOne(token);
- if (existToken == null || existToken.isExpired()) {
- return error("验证码已过期,请重新获取");
- }
- // 校验企业信息
- Userspace checkSpace = userspaceService.findBySpaceName(userspace.getSpaceName());
- if (checkSpace == null) {
- return error("该企业未被注册,请确认");
- }
- // TODO 参数空检验
- // 校验验证码
- checkMobileCode(token, appeal.getMobile(), code);
- // 保存申述信息,把新管理员当作申请人
- User submitter = userService.findByMobile(appeal.getMobile());
- appeal.setSubmitterUU(submitter == null ? null : submitter.getUserUU());
- appeal.setFromApp(appId);
- appealService.submitChangeAdmin(appeal, userspace, checkSpace.getSpaceUU());
- // 发送短信和邮件通知审核人
- Setting mailReceiver = settingService.findOne("mailReceiverAfterRegister");
- Setting smsReceiver = settingService.findOne("smsReceiverAfterRegister");
- sendEmail("noticeManageAuditVendorMan", mailReceiver.getValue(), new ModelMap("adminName", appeal.getContactName()).addAttribute("enName", userspace.getBusinessCode()));
- sendSms("SmsNoticeManageAuditVendorMan", smsReceiver.getValue(), new Object[]{appeal.getContactName()});
- return success();
- }
- @RequestMapping(value = "/account", method = RequestMethod.POST)
- public ModelMap validAccount(Appeal appeal, String token, String code, String password, @RequestParam(defaultValue = "sso") String appId) {
- // 校验用户是否登录
- SSOToken ssoToken = SSOHelper.getToken(request);
- if (ssoToken == null) {
- return error("用户未登录");
- }
- UserAccount userAccount = JSON.parseObject(ssoToken.getData(), UserAccount.class);
- if (userAccount == null) {
- return error("用户未登录");
- }
- // 校验token
- Token existToken = tokenService.findOne(token);
- if (existToken == null || existToken.isExpired()) {
- return error("验证码已过期,请重新获取");
- }
- // TODO 参数空检验
- // 校验验证码
- checkMobileCode(token, appeal.getMobile(), code);
- // 保存申述信息
- appeal.setFromApp(appId);
- appealService.submitValidAccount(appeal, password);
- return success();
- }
- }
|