本人为实习生,第一次写博客,写的不好的大家多多谅解
应公司近期需求,需要单独开发一个后台管理系统。
自己按实际业务写了一个登录接口已经实现,时序图如下
源码牵扯业务量太大,这里只放出部分关键实现源码,整合思路可以配合时序图去理解。
Controller层
package com.royalnu.business.login.franchisee.gateway.web;import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.apache.poi.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
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;import com.alibaba.druid.util.StringUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.royalnu.common.exception.CommonException;
import com.royalnu.common.security.MD5Utils;
import com.royalnu.common.utils.json.GsonUtil;
import com.royalnu.common.validate.json.JsonSchemaValidator;
import com.royalnu.core.component.cache.redis.service.StringRedisCache;
import com.royalnu.core.module.com.BaseController;
import com.royalnu.business.login.franchisee.api.model.Franchisee;
import com.royalnu.business.login.franchisee.api.service.FranchiseeService;
import com.royalnu.business.login.franchiseeDetailed.api.model.FranchiseeDetailed;
import com.royalnu.business.login.franchiseeDetailed.api.service.FranchiseeDetailedService;
import com.royalnu.business.login.message.api.model.Message;
import com.royalnu.business.login.message.api.service.MessageService;
import com.royalnu.util.FilePath;
import com.royalnu.util.FranchiseeMethodUtils;
import com.royalnu.util.FranchiseeParamUtils;
import com.royalnu.util.InitializationUtil;
import com.royalnu.util.IpUtil;
import com.royalnu.util.RedisKeyPrefixUtil;
import com.royalnu.util.SingleSendSms;
import com.royalnu.util.VerifyCode;import lombok.extern.log4j.Log4j2;@Log4j2
@SuppressWarnings("unused")
@RestController
@RequestMapping(value = "/franchisee/login")
public class FranchiseeController extends BaseController<Franchisee> {@Autowiredprivate FilePath filePath;@Resourceprivate FranchiseeService franchiseeService;@Resourceprivate FranchiseeDetailedService franchiseeDetailedService;@Resourceprivate MessageService messageService;@Resourceprivate StringRedisCache stringRedisCache;@Autowiredprivate HttpSession session;private IpUtil ipUtil = new IpUtil();// 加盟商登录入口 附手机验证码@RequestMapping(value = "/dologin", method = RequestMethod.POST)public String dologin(Franchisee franchisee, HttpServletRequest request,HttpServletResponse response) throws CommonException {Map<String, Object> data = new HashMap<String, Object>();Map<String, Object> params = new HashMap<>();// 验证请求手机号String codeTelephone = request.getParameter("codeTelephone");// 验证码String codeNum = request.getParameter("codeNum");// 获取ip地址String UserIp = ipUtil.getIpAddr(request);// 获取系统当前时间Timestamp currentTime = new Timestamp(System.currentTimeMillis());// 模拟前端加密传参/*String idip = "ww-" + franchisee.getTelephone() + "{xykj}" + UserIp + "+lsw";*/String idipPassword = request.getParameter("idipPassword");// 后台解密获取正确参数if(idipPassword==null||idipPassword.equals("")) {data.put("code", 2);data.put("msg", "访问源IP地址非法,请确认");return GsonUtil.GSON.toJson(data);}String idipPassword1 = idipPassword.substring(3, idipPassword.length() - 4).replace("{xykj}", "");Message message1 = messageServi