package com.qxueyou.scc.sys.action;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.servlet.http.Cookie;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpSession;
|
|
import com.qxueyou.scc.base.util.*;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.*;
|
|
import com.qxueyou.scc.admin.teacher.service.ITeacherService;
|
import com.qxueyou.scc.base.dao.CommonDAO;
|
import com.qxueyou.scc.base.model.Constants;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.model.UserInfoWrapper;
|
import com.qxueyou.scc.base.service.ICacheService;
|
import com.qxueyou.scc.base.service.ICommonService;
|
import com.qxueyou.scc.config.SccConfig;
|
import com.qxueyou.scc.org.service.IOrganizationService;
|
import com.qxueyou.scc.sys.model.CacheParamters;
|
import com.qxueyou.scc.sys.model.SysLog;
|
import com.qxueyou.scc.sys.service.IAuthorizeService;
|
import com.qxueyou.scc.sys.service.IPrivilegeService;
|
import com.qxueyou.scc.teach.student.model.StuStudent;
|
import com.qxueyou.scc.teach.student.service.IStudentService;
|
import com.qxueyou.scc.user.model.User;
|
import com.qxueyou.scc.user.model.UserRole;
|
import com.qxueyou.scc.user.service.IUserOperateService;
|
import com.qxueyou.scc.user.service.IUserRoleService;
|
import com.qxueyou.scc.user.service.IUserService;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
|
/**
|
* ×¢²ácontroller Ìṩע²á£¬µÇ¼£¬×¢Ïú·þÎñ
|
*
|
* @author µÂ»¢
|
* @history 2014-11-25 н¨ Ïĵ»¢
|
*/
|
@Api(tags="µÇÈëÏà¹Ø½Ó¿Ú")
|
@Controller
|
@CrossOrigin(origins="*",maxAge=3600)
|
@EnableConfigurationProperties(SccConfig.class)
|
@RequestMapping(value = "/sys/login")
|
public class LoginController {
|
|
@Autowired
|
private CommonDAO commonDAO;
|
|
@Autowired
|
IPrivilegeService privilegeService;
|
|
@Autowired
|
IAuthorizeService service;
|
|
@Autowired
|
IUserRoleService userRoleService;
|
|
@Autowired
|
ITeacherService teacherService;
|
|
@Autowired
|
@Qualifier("commonAppService")
|
ICommonService commonService;
|
|
@Autowired
|
IUserOperateService userOperateService;
|
|
@Autowired
|
IUserService userService;
|
|
@Autowired
|
ICacheService cacheService;
|
|
@Autowired
|
IStudentService studentService;
|
|
@Autowired
|
private IOrganizationService organizationService;
|
|
public static String UUNUMBER="QXYUUNUMBER";
|
|
@ApiOperation(value = "µÇÈë½Ó¿Ú", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "account", value = "Õ˺Å", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "password", value = "ÃÜÂë", required = true, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "beforeLogin", method = RequestMethod.POST)
|
@ResponseBody
|
public Result beforeLogin(@RequestParam("account") String account, @RequestParam("password") String password,
|
HttpServletRequest request, HttpServletResponse response) {
|
if(StringUtils.isEmpty(account)||StringUtils.isEmpty(password)) {
|
return new Result(false, "Óû§Õ˺ÅÃÜÂë²»ÄÜΪ¿Õ");
|
}
|
// ²éѯÓû§ÐÅÏ¢
|
String uuNumber=null;
|
String uuReNumber=null;
|
String hql = "from User where deleteFlag is false and account = ? and password = ? ";
|
List<Object> params = CollectionUtils.newList(account,password);
|
User user = commonDAO.findUnique(hql,params, User.class);
|
if (user == null ) {
|
return new Result(false, "Óû§ÕË»§¡¢ÃÜÂë´íÎó");
|
}
|
if (user.getSource() == null || "".equals(user.getSource())) {
|
return new Result(false, "ûÓÐȨÏÞ");
|
}
|
if("exam".equals(user.getSource())){
|
// //»ñÈ¡Session´æÈëuuNumber
|
// uuNumber = UUIDUtils.generateSpecialUuid(8)+account;
|
// HttpSession session = request.getSession();
|
// //ÉèÖÃsession×Ô¶¯¹ýÆÚʱ¼ä 60·ÖÖÓ
|
// session.setMaxInactiveInterval(60*60);
|
// session.setAttribute("uuNumber", uuNumber);
|
//uuNumberʹÓù̶¨
|
uuNumber=UUNUMBER;
|
}else if("reExam".equals(user.getSource())){
|
//»ñÈ¡Session´æÈëuuNumber
|
uuReNumber = UUIDUtils.generateSpecialUuid(8)+account;
|
HttpSession session = request.getSession();
|
//ÉèÖÃsession×Ô¶¯¹ýÆÚʱ¼ä 60·ÖÖÓ
|
session.setMaxInactiveInterval(60*60);
|
session.setAttribute("uuReNumber", uuReNumber);
|
}else {
|
return new Result(false, "ûÓÐȨÏÞ");
|
}
|
// ²åÈëÈÕÖ¾
|
insertLoginLog(request, user, account, "SYS-LOGIN");
|
// ·µ»Ø
|
return new Result(true, "ÑéÖ¤³É¹¦",CollectionUtils.newObjectMap("uuNumber",uuNumber,"uuReNumber",uuReNumber));
|
}
|
|
@ApiOperation(value = "µÇÈë½Ó¿Ú", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "uuNumber", value = "uuNumber", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "uuReNumber", value = "uuReNumber", required = true, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "examLogin", method = RequestMethod.GET)
|
@ResponseBody
|
public Result examLogin(String uuNumber,String uuReNumber,
|
HttpServletRequest request, HttpServletResponse response) {
|
if(StringUtils.isEmpty(uuNumber)&&StringUtils.isEmpty(uuReNumber)){
|
return new Result(false, "Ñé֤ʧ°Ü");
|
}
|
if (StringUtils.isNotEmpty(uuNumber)) {
|
//ÓÐuunumber
|
String uu=ClientUtils.getUserInfo().getInfo("email");
|
if(StringUtils.isEmpty(uu)||!uuNumber.equals(uu)){
|
return new Result(false, "uuNumberÑé֤ʧ°Ü");
|
}
|
} else {
|
//ÓÐuurenumber
|
HttpSession session = request.getSession();
|
String uu=(String) session.getAttribute("uuReNumber");
|
if(StringUtils.isEmpty(uu)||!uuReNumber.equals(uu)){
|
return new Result(false, "uuReNumberÑé֤ʧ°Ü");
|
}
|
//ÑéÖ¤ºóɾ³ý
|
request.getSession().removeAttribute("uuReNumber");
|
// String uu=ClientUtils.getUserInfo().getInfo("email");
|
// if(StringUtils.isEmpty(uu)||!uuReNumber.equals(uu)){
|
// return new Result(false, "uuReNumberÑé֤ʧ°Ü");
|
// }
|
}
|
// ·µ»Ø
|
return new Result(true, "ÑéÖ¤³É¹¦");
|
}
|
|
@ApiOperation(value = "µÇÈë½Ó¿Ú", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "uuNumber", value = "uuNumber", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "uuReNumber", value = "uuReNumber", required = true, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "examssLogin", method = RequestMethod.GET)
|
@ResponseBody
|
public Result examssLogin(String uuNumber,String uuReNumber,
|
HttpServletRequest request, HttpServletResponse response) {
|
//Á½¸ö¶¼Îª¿Õ£¬±íʾûÓвÎÊý
|
if(StringUtils.isEmpty(uuNumber)&&StringUtils.isEmpty(uuReNumber)){
|
return new Result(false, "Ñé֤ʧ°Ü");
|
}
|
|
if (StringUtils.isNotEmpty(uuNumber)) {
|
//ÓÐuunumber
|
// HttpSession session = request.getSession();
|
// String uu=(String) session.getAttribute("uuNumber");
|
String uu=UUNUMBER;
|
if(StringUtils.isEmpty(uu)||!uuNumber.equals(uu)){
|
return new Result(false, "uuNumberÑé֤ʧ°Ü");
|
}
|
} else {
|
//ÓÐuurenumber
|
HttpSession session = request.getSession();
|
String uu=(String) session.getAttribute("uuReNumber");
|
if(StringUtils.isEmpty(uu)||!uuReNumber.equals(uu)){
|
return new Result(false, "uuReNumberÑé֤ʧ°Ü");
|
}
|
}
|
// ·µ»Ø
|
return new Result(true, "ÑéÖ¤³É¹¦");
|
}
|
|
//Í˳öµÇ¼ Çå³ýsession
|
@RequestMapping(value = "khdloginout", method = RequestMethod.POST)
|
@ResponseBody
|
public void khdloginout(HttpServletRequest request, HttpServletResponse response) {
|
System.out.println("Çå³ýsession");
|
HttpSession session = request.getSession();
|
System.out.println(session.getAttribute("userId"));
|
System.out.println(session.getAttribute("classId"));
|
session.invalidate();
|
}
|
|
/**
|
* ѧԱ¶ËµÇ¼
|
*
|
* @param account ÕË»§
|
* @param password ÃÜÂë
|
* @return
|
*/
|
@ApiOperation(value = "µÇÈë½Ó¿Ú", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "account", value = "Õ˺Å", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "password", value = "ÃÜÂë", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "organizationId", value = "»ú¹¹id", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "platForm", value = "µÇÈëÆ½Ì¨£¨app£¬web£¬qLive£¬pc£¬weixin£©", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "logType", value = "µÇÈëtype£¨studyѧԱ£¬teacher½Ìʦ,·ñÔòΪºǫ́£©", required = true, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "studentLogin", method = RequestMethod.POST)
|
@ResponseBody
|
public Result studentLogin(@RequestParam("userId") String userId,HttpServletRequest request, HttpServletResponse response, String logType,String organizationId, String platForm){
|
|
String hql = null;
|
List<Object> params = null;
|
hql = "from User where deleteFlag is false and userId = ?";
|
params = CollectionUtils.newList(userId);
|
// ²éѯÓû§ÐÅÏ¢
|
User user = commonDAO.findUnique(hql,params, User.class);
|
CacheParamters param = new CacheParamters();
|
param.setUserId(user.getUserId());
|
param.setCustomRoleValue(user.getEmail());
|
param.setCustomOrgId(user.getImei());
|
param.setCacheIpFlag(true);
|
param.setPlatForm(StringUtils.isEmpty(platForm) ? Constants.LOGIN_PLATFORM_WEB : platForm);
|
param.setIp(RequestClientUtils.getRemoteIP(request));
|
// »º´æµ½ÇëÇóÏß³Ì
|
UserInfoWrapper wrapper = cacheUserInfo(param, null);
|
request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
|
return new Result(true, "success",
|
CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath",
|
user.getImgPath(), "orgName", ClientUtils.getOrgName(),"orgId", ClientUtils.getOrgId(), "orgLogo",
|
ClientUtils.getOrgLogoPath(), "className", ClientUtils.getClassName(), "classId",
|
ClientUtils.getClassId(), "orgShortName", ClientUtils.getOrgShortName()));
|
// return this.loginValidate(user, 1, request, response, "study", platForm, organizationId);
|
}
|
|
/**
|
* ºǫ́µÇ¼
|
*
|
* @param account ÕË»§
|
* @param password ÃÜÂë
|
* @return
|
*/
|
@ApiOperation(value = "µÇÈë½Ó¿Ú", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "account", value = "Õ˺Å", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "password", value = "ÃÜÂë", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "organizationId", value = "»ú¹¹id", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "platForm", value = "µÇÈëÆ½Ì¨£¨app£¬web£¬qLive£¬pc£¬weixin£©", required = true, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "logType", value = "µÇÈëtype£¨studyѧԱ£¬teacher½Ìʦ,·ñÔòΪºǫ́£©", required = true, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "platformLogin", method = RequestMethod.POST)
|
@ResponseBody
|
public Result platformLogin(@RequestParam("account") String account, @RequestParam("password") String password,String uuNumber,String uuReNumber,
|
HttpServletRequest request, HttpServletResponse response, String logType,String organizationId, String platForm) {
|
// response.setHeader("Access-Control-Allow-Origin", "*");
|
if(StringUtils.isEmpty(account)) {
|
return new Result(false, "Óû§Õ˺Ų»ÄÜΪ¿Õ");
|
}
|
// System.out.println(account+password);
|
// System.out.println("-------------------------"+organizationId+"--------------"+platForm+"-----------"+logType);
|
String hql = null;
|
List<Object> params = null;
|
// boolean flag=true;
|
if("study".equals(logType)){
|
hql = "from User where deleteFlag is false and account = ? and password = ? ";
|
params = CollectionUtils.newList(account,password);
|
}else{
|
if(StringUtils.isEmpty(password)) {
|
return new Result(false, "Óû§ÃÜÂë²»ÄÜΪ¿Õ");
|
}
|
hql = "from User where deleteFlag is false and account = ? and password = ? ";
|
params = CollectionUtils.newList(account,password);
|
}
|
|
if(StringUtils.isNotEmpty(organizationId)){
|
hql = hql.concat(" and organizationId=? ");
|
params.add(organizationId);
|
}
|
|
// ²éѯÓû§ÐÅÏ¢
|
User user = commonDAO.findUnique(hql,params, User.class);
|
|
if(uuNumber!=null&&!"".equals(uuNumber)&&!"null".equals(uuNumber)){
|
//µÇ¼³É¹¦´æÈëuserÀɾ³ýsessionÀïµÄuuNumber£¬Ï¸öÈËÎÞ·¨Ê¹ÓÃ
|
user.setEmail(uuNumber);
|
// request.getSession().removeAttribute("uuNumber");
|
}
|
// if(uuReNumber!=null&&!"".equals(uuReNumber)&&!"null".equals(uuReNumber)){
|
// //µÇ¼³É¹¦´æÈëuserÀɾ³ýsessionÀïµÄuuReNumber£¬Ï¸öÈËÎÞ·¨Ê¹ÓÃ
|
// user.setImei(uuReNumber);
|
// request.getSession().removeAttribute("uuReNumber");
|
// }
|
|
// ²åÈëÈÕÖ¾
|
insertLoginLog(request, user, account, "SYS-LOGIN");
|
|
//¿¼ÊԵǼ»á¿ØÖÆflag±äÁ¿ ÆäËûµÇ¼²»»á ĬÈÏtrue
|
if (user == null) {
|
return new Result(false, "Óû§ÕË»§¡¢ÃÜÂë´íÎó»òȱÉÙÆ¾Ö¤");
|
}
|
|
// ·µ»ØÓû§»ù±¾ÐÅÏ¢
|
return this.loginValidate(user, 1, request, response, logType, platForm, organizationId);
|
}
|
|
/**
|
* µÇÈëÑéÖ¤
|
* @param user
|
* @param type
|
* @param request
|
* @param response
|
* @param logType
|
* @param platForm
|
* @param organizationId
|
* @return
|
*/
|
private Result loginValidate(User user, int type, HttpServletRequest request, HttpServletResponse response,
|
String logType, String platForm, String organizationId) {
|
HttpSession session = request.getSession();
|
// »º´æÓû§ÐÅÏ¢
|
CacheParamters param = new CacheParamters();
|
param.setUserId(user.getUserId());
|
param.setCustomRoleValue(user.getEmail());
|
param.setCustomOrgId(user.getImei());
|
param.setCacheIpFlag(true);
|
param.setPlatForm(StringUtils.isEmpty(platForm) ? Constants.LOGIN_PLATFORM_WEB : platForm);
|
param.setIp(RequestClientUtils.getRemoteIP(request));
|
// »º´æµ½ÇëÇóÏß³Ì
|
UserInfoWrapper wrapper = cacheUserInfo(param, null);
|
request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
|
if ("study".equals(logType)) {
|
/*if (StringUtils.isEmpty(ClientUtils.getClassId()) && user.getRoles() == null) {
|
return new Result(false, "¸ÃÓû§Î´¼ÓÈëÈκΰ༶»òδ¼¤»î£¬ÇëÁªÏµ°àÖ÷ÈÎ");
|
}*/
|
|
if (StringUtils.isEmpty(user.getOrganizationId())) {
|
return new Result(false, "¸ÃÓû§²»ÊôÓÚÈκλú¹¹£¬ÎÞ·¨µÇÈë");
|
}
|
if (StringUtils.isNoneBlank(organizationId) && !user.getOrganizationId().equals(organizationId)) {
|
return new Result(false, "Ñ¡ÔñµÄ»ú¹¹´íÎó£¬ÇëÈ·ÈÏ");
|
}
|
|
//ÅжÏÊÇ·ñΪѧÉú£¬Èç¹ûÊÇѧÉú£¬ÅжÏÊÇ·ñÒѶ³½á»òÒÆ³ý£¬¶³½á»òÒÆ³ýµÄѧÉú²»ÈõǼ
|
StuStudent stu = this.studentService.getStudentByUserId(user.getUserId());
|
if(stu!=null && (stu.getDeleteFlag() || stu.getStatus().equalsIgnoreCase(StuStudent.STATUS_DEACTIVE))){
|
return new Result(false, "Óû§ÕË»§ÒѾ±»¶³½á»òÒÆ³ý");
|
}
|
|
/*if(StringUtils.isEmpty(wrapper.getInfo(UserInfoWrapper.INF_CLASS_ID))) {
|
return new Result(false, "¸ÃÓû§Î´¼ÓÈëÈκΰ༶£¬ÎÞ·¨µÇÈë");
|
}*/
|
// ±£´æµ½sessionÖÐ
|
return new Result(true, "success",
|
CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath",
|
user.getImgPath(), "orgName", ClientUtils.getOrgName(),"orgId", ClientUtils.getOrgId(), "orgLogo",
|
ClientUtils.getOrgLogoPath(), "className", ClientUtils.getClassName(), "classId",
|
ClientUtils.getClassId(), "orgShortName", ClientUtils.getOrgShortName()));
|
}else if("teacher".equals(logType)) {
|
String teacherId = teacherService.getTeacherIdByUserId(user.getUserId());
|
if (StringUtils.isEmpty(teacherId)) {
|
return new Result(false, "¸ÃÕË»§²»ÊÇÀÏʦ½ÇÉ«£¬ÎÞ·¨µÇÈë");
|
}
|
if (StringUtils.isEmpty(user.getOrganizationId())) {
|
return new Result(false, "¸ÃÓû§²»ÊôÓÚÈκλú¹¹£¬ÎÞ·¨µÇÈë");
|
}
|
if (StringUtils.isNoneBlank(organizationId) && !user.getOrganizationId().equals(organizationId)) {
|
return new Result(false, "Ñ¡ÔñµÄ»ú¹¹´íÎó£¬ÇëÈ·ÈÏ");
|
}
|
|
//»ñÈ¡Óû§¶ÔÓ¦µÄsessionIdÊÇ·ñÓë±£´æÔÚredisÖеÄÒ»Ö£¬Èç¹û²»Ò»ÖÂÔòÌø×ªµ½µÇÂ¼Ò³Ãæ
|
// stringRedisTemplate.opsForHash().put(UserInfoWrapper.REDIS_USER_ONLINE_MAP_KEY, user.getUserId(), request.getSession().getId());
|
return new Result(true, "success",
|
CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath",
|
user.getImgPath(), "orgName", ClientUtils.getOrgName(),"orgId", ClientUtils.getOrgId(), "orgLogo", ClientUtils.getOrgLogoPath(), "orgShortName", ClientUtils.getOrgShortName()));
|
}else {
|
Result result = privilegeService.getMenus(user);
|
Integer roleType = result.getDataT("roleType");
|
// ±£´æ¹ÜÀíÔ±ÌØÊâ½ÇÉ«ÐÅÏ¢
|
if (UserRole.ROLE_TYPE_ADMIN.equals(roleType)) {
|
// boolean a=true;
|
// wrapper.setAdmin(true);
|
session.setAttribute("admin",true);
|
// System.out.println(session.getAttribute("admin"));
|
}
|
// request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
|
// System.out.println("ccc"+wrapper.getInfo(UserInfoWrapper.INF_USER_ID));
|
//// request.getSession().setAttribute("userId", user.getUserId());
|
// System.out.println("sess"+request.getSession().getAttribute("userId"));
|
// System.out.println("aaa"+ClientUtils.getUserId());
|
return result;
|
}
|
|
}
|
|
/**
|
* ºǫ́£ºÍ˳öµÇ¼,ºǫ́ϵͳ
|
*
|
* @param account ÕË»§
|
* @return
|
*/
|
@ApiOperation(value = "Í˳öºǫ́ϵͳ²Ù×÷", notes = "")
|
@RequestMapping(value = "release", method = RequestMethod.GET)
|
public String release(HttpServletRequest httpRequest, HttpServletResponse response) {
|
doRelease(httpRequest, response);
|
return "redirect:/web/admin/index.html#login";
|
}
|
|
/**
|
* ºǫ́£ºÍ˳öµÇ¼,ºǫ́ϵͳ
|
*
|
* @return
|
*/
|
@ApiOperation(value = "Í˳öappϵͳ²Ù×÷", notes = "")
|
@RequestMapping(value = "loginOut", method = RequestMethod.GET)
|
public @ResponseBody Result loginOut(HttpServletRequest httpRequest, HttpServletResponse response) {
|
doRelease(httpRequest, response);
|
return new Result(true);
|
}
|
|
/**
|
* »º´æÓû§ÐÅÏ¢(°àÖ÷ÈÎ ¡¢ ѧԱ ½ÇÉ« »º´æºǫ́clientUtilsÐÅÏ¢)
|
*
|
* @param userId
|
* @param cookieValue
|
* @param request
|
* @param charderClassId
|
* @param sutdentClassId
|
* @param adminOrgId
|
* @param teacherClassId
|
* @param customOrgId
|
*/
|
private UserInfoWrapper cacheUserInfo(CacheParamters param, UserRole role) {
|
UserInfoWrapper wrapper = userService.initUserInfoWrapper(param, true);
|
service.addClientInfo(wrapper);
|
return wrapper;
|
}
|
|
/**
|
* ²åÈëµÇ¼ÈÕÖ¾
|
*
|
* @param request
|
* @param lstUser
|
* @param account
|
* @param module
|
*/
|
private void insertLoginLog(HttpServletRequest request, User user, String account, String module) {
|
|
String userAgent = request.getHeader("user-agent");
|
String userId = user == null? null : user.getUserId();
|
String userName = user == null ? null : user.getName();
|
String ip = RequestClientUtils.getRemoteIP(request);
|
SysLog lg = new SysLog();
|
|
TraceUtils.setCreateActiveTrace(lg);
|
lg.setDeleteFlag(false);
|
lg.setContent(userAgent);
|
lg.setDesp(account);
|
lg.setIp(ip);
|
lg.setModule(module);
|
lg.setType(SysLog.LOG_TYPE_SYS);
|
lg.setUserId(userId);
|
lg.setUserName(userName);
|
|
commonService.save(lg);
|
|
}
|
|
/**
|
* Í˳öºǫ́ϵͳ²Ù×÷
|
*
|
* @param account ÕË»§
|
* @return
|
*/
|
private void doRelease(HttpServletRequest httpRequest, HttpServletResponse response) {
|
HttpSession se = httpRequest.getSession();
|
se.removeAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY);
|
se.invalidate();
|
}
|
|
/**
|
* Óû§ÐÞ¸ÄÃÜÂë
|
*/
|
@ApiOperation(value = "ÐÞ¸ÄÃÜÂë", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "usedPass", value = "ÀÏÃÜÂë", required = false, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "pass", value = "ÐÂÃÜÂë", required = false, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "updatePassword", method = RequestMethod.POST)
|
@ResponseBody
|
public Result updatePassword(String userId, String usedPass, String pass) {
|
return userService.updatePassword(StringUtils.isEmpty(userId)?ClientUtils.getUserId():userId, usedPass, pass);
|
}
|
|
/**
|
* »ñÈ¡µ±Ç°Óû§
|
*/
|
@ApiOperation(value = "»ñÈ¡µ±Ç°Óû§", notes = "")
|
@RequestMapping(value = "getCurrUser", method = RequestMethod.POST)
|
@ResponseBody
|
public Result getCurrUser() {
|
User u = this.commonDAO.read(User.class, ClientUtils.getUserId());
|
|
return new Result(true, "success", CollectionUtils.newObjectMap("name",u.getName(),"account",
|
u.getAccount(), "mobilePhone", u.getMobilePhone(), "imgPath", u.getImgPath(), "sex", u.getSex()));
|
}
|
|
/**
|
* »ñÈ¡µ±Ç°Óû§
|
*/
|
@ApiOperation(value = "»ñÈ¡µ±Ç°½ÌʦÐÅÏ¢", notes = "")
|
@RequestMapping(value = "getCurrTeacher", method = RequestMethod.GET)
|
@ResponseBody
|
public Result getCurrTeacher() {
|
return this.teacherService.getTeacherInfo();
|
}
|
|
/**
|
* Óû§ÐÞ¸ÄÃÜÂë
|
*/
|
@ApiOperation(value = "ÐÞ¸ÄÍ·Ïñ", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "headPath", value = "Í·ÏñµØÖ·", required = false, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "updateUserHead", method = RequestMethod.POST)
|
@ResponseBody
|
public Result updateUserHead(String headPath) {
|
return userService.updateUserHead(ClientUtils.getUserId(), headPath);
|
}
|
|
/**
|
* ÐÞ¸ÄÓû§ÆäËûÊý¾Ý
|
*/
|
@ApiOperation(value = "ÐÞ¸ÄÓû§ÆäËûÊý¾Ý", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "mobilePhone", value = "ÀÏÃÜÂë", required = false, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value = "updateUserInfo", method = RequestMethod.POST)
|
@ResponseBody
|
public Result updateUserInfo(String mobilePhone) {
|
return userService.updateUserInfo(ClientUtils.getUserId(), mobilePhone);
|
}
|
|
/**
|
* »ñȡϵͳµ±Ç°Ê±¼ä
|
*/
|
@RequestMapping(value = "currentTime", method = RequestMethod.GET)
|
@ResponseBody
|
public long getCurrentTime() {
|
return System.currentTimeMillis();
|
}
|
|
@ApiOperation(value = "»ñÈ¡»ú¹¹Áбí", notes = "")
|
@RequestMapping(value = "getOrgLst", method = RequestMethod.GET)
|
@ResponseBody
|
public Result getOrgLst() {
|
List<Map<String, Object>> orgLst = organizationService.getOrgLst();
|
return new Result(true, "success", orgLst);
|
}
|
|
@ApiOperation(value = "»ñÈ¡»ú¹¹µÄÐÅÏ¢", notes = "°üº¬»ù±¾ÐÅÏ¢ºÍbannerͼºÍappÐÅÏ¢")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "appCode", value = "appcode£¨android£ºandroidTeacherApp£¬androidTeacherH5£¬androidStudentApp£¬ androidStudentH5"
|
+ "IOS:IosTeacherApp,IosStudentApp£©", required = false, paramType="query", dataType = "String"),
|
@ApiImplicitParam(name = "orgId", value = "»ú¹¹id", required = false, paramType="query", dataType = "String")
|
})
|
@RequestMapping(value = "getOrgInfo", method = RequestMethod.GET)
|
@ResponseBody
|
public Result getOrgInfo(String appCode, String orgId) {
|
return this.organizationService.getOrgInfo(appCode, orgId);
|
}
|
|
/**
|
* APP2.0: »ñÈ¡android APP°æ±¾
|
*
|
* @return|
|
*/
|
@ApiOperation(value = "»ñÈ¡android APP°æ±¾")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "appName", value = "appÃû³Æ£¨android£ºteacherApp£¬teacherH5£¬studentApp£¬ studentH5£©", required = false, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value="getAndroidAppVersion",method=RequestMethod.GET)
|
public @ResponseBody Result getAppVersion(String appName) {
|
|
// °æ±¾ºÅ
|
String versionName = "";
|
String versionTips = "";
|
String versionCode = "";
|
String downloadUrl = "";
|
|
if("teacherApp".equals(appName)) {
|
versionName = commonDAO.queryConfigValue("android_teacher_app_name");
|
versionTips = commonDAO.queryConfigValue("android_teacher_app_tips");
|
versionCode = commonDAO.queryConfigValue("android_teacher_app_code");
|
downloadUrl = commonDAO.queryConfigValue("android_teacher_app_download_url");
|
}else if("teacherH5".equals(appName)){
|
versionName = commonDAO.queryConfigValue("android_teacher_h5_name");
|
versionTips = commonDAO.queryConfigValue("android_teacher_h5_tips");
|
versionCode = commonDAO.queryConfigValue("android_teacher_h5_code");
|
downloadUrl = commonDAO.queryConfigValue("android_teacher_h5_download_url");
|
}else if("studentApp".equals(appName)){
|
versionName = commonDAO.queryConfigValue("android_student_app_name");
|
versionTips = commonDAO.queryConfigValue("android_student_app_tips");
|
versionCode = commonDAO.queryConfigValue("android_student_app_code");
|
downloadUrl = commonDAO.queryConfigValue("android_student_app_download_url");
|
}else if("studentH5".equals(appName)){
|
versionName = commonDAO.queryConfigValue("android_student_h5_name");
|
versionTips = commonDAO.queryConfigValue("android_student_h5_tips");
|
versionCode = commonDAO.queryConfigValue("android_student_h5_code");
|
downloadUrl = commonDAO.queryConfigValue("android_student_h5_download_url");
|
}else {
|
versionName = commonDAO.queryConfigValue(Constants.CONFIG_ANDROID_APP_VERSION);
|
versionTips = commonDAO.queryConfigValue(Constants.CONFIG_APP_VERSION_TIPS);
|
versionCode = commonDAO.queryConfigValue(Constants.CONFIG_ANDROID_APP_VERSION_CODE);
|
downloadUrl = commonDAO.queryConfigValue(Constants.CONFIG_ANDROID_APP_DOWNLOAD_URL);
|
}
|
|
return new Result(true, "", CollectionUtils.newObjectMap("versionName", versionName, "versionCode", versionCode, "versionTips", versionTips, "downloadUrl", downloadUrl));
|
}
|
|
|
/**
|
* APP2.0: »ñÈ¡ios APP°æ±¾
|
*
|
* @return
|
*/
|
@ApiOperation(value = "»ñÈ¡ios APP°æ±¾")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "appName", value = "appÃû³Æ£¨ios£ºteacherApp£¬studentApp£©", required = false, paramType="query", dataType = "String"),
|
})
|
@RequestMapping(value="getIosAppVersion",method=RequestMethod.GET)
|
public @ResponseBody Result getIOSAppVersion(String appName) {
|
// °æ±¾ºÅ
|
String versionCode = "";
|
String versionNo = "";
|
String versionTips = "";
|
String downloadUrl = "";
|
|
if("teacherApp".equals(appName)) {
|
versionCode = commonDAO.queryConfigValue("ios_teacher_app_code");
|
versionNo = commonDAO.queryConfigValue("ios_teacher_app_no");
|
versionTips = commonDAO.queryConfigValue("ios_teacher_app_tips");
|
downloadUrl = commonDAO.queryConfigValue("ios_teacher_app_download_url");
|
}else{
|
versionCode = commonDAO.queryConfigValue("ios_student_app_code");
|
versionNo = commonDAO.queryConfigValue("ios_student_app_no");
|
versionTips = commonDAO.queryConfigValue("ios_student_app_tips");
|
downloadUrl = commonDAO.queryConfigValue("ios_student_app_download_url");
|
}
|
|
return new Result(true, "", CollectionUtils.newObjectMap("versionCode", versionCode, "versionNo", versionNo, "versionTips", versionTips, "downloadUrl", downloadUrl));
|
}
|
|
/**
|
* APP2.0: »ñÈ¡ios °æ±¾
|
*
|
* @return
|
*/
|
@ApiOperation(value = "»ñÈ¡ios²Ëµ¥")
|
@RequestMapping(value="getIosMenu",method=RequestMethod.GET)
|
public @ResponseBody Result getIOSAppVersion() {
|
//"¿Î¼þ","¿¼ÊÔ","×÷Òµ","Ö±²¥"
|
return new Result(true, "", new String[]{"¿Î¼þ","Ö±²¥","¿¼ÊÔ","×÷Òµ"});
|
}
|
|
|
}
|