Commit 46d3ee7c by Lichen

初始化接口添加角色查询

parent 9fea2e65
...@@ -31,6 +31,7 @@ import com.yizhi.site.application.vo.site.MyItemConfigVO; ...@@ -31,6 +31,7 @@ import com.yizhi.site.application.vo.site.MyItemConfigVO;
import com.yizhi.system.application.constant.SecurityError; import com.yizhi.system.application.constant.SecurityError;
import com.yizhi.system.application.controller.manage.AccountController; import com.yizhi.system.application.controller.manage.AccountController;
import com.yizhi.system.application.domain.Account; import com.yizhi.system.application.domain.Account;
import com.yizhi.system.application.domain.AuthzAccountRole;
import com.yizhi.system.application.domain.AuthzRole; import com.yizhi.system.application.domain.AuthzRole;
import com.yizhi.system.application.domain.Site; import com.yizhi.system.application.domain.Site;
import com.yizhi.system.application.enums.SecurityReturnCode; import com.yizhi.system.application.enums.SecurityReturnCode;
...@@ -70,6 +71,7 @@ import java.io.UnsupportedEncodingException; ...@@ -70,6 +71,7 @@ import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Api(tags = "认证接口") @Api(tags = "认证接口")
@RestController @RestController
...@@ -123,6 +125,9 @@ public class AuthController { ...@@ -123,6 +125,9 @@ public class AuthController {
@Autowired @Autowired
private EventTrackApiClients eventTrackApiClients; private EventTrackApiClients eventTrackApiClients;
@Autowired
private IAuthzAccountRoleService authzAccountRoleService;
private static final Logger logger = LoggerFactory.getLogger(AuthController.class); private static final Logger logger = LoggerFactory.getLogger(AuthController.class);
private static final String LOGIN_PASSWORD_ERROR_RECORD = "login:password:err:times:"; private static final String LOGIN_PASSWORD_ERROR_RECORD = "login:password:err:times:";
...@@ -164,7 +169,7 @@ public class AuthController { ...@@ -164,7 +169,7 @@ public class AuthController {
//设置用户信息 //设置用户信息
setUserInfo(user, context, httpResponse, retMap, token); setUserInfo(user, context, httpResponse, retMap, token);
//设置签到弹框 //设置签到弹框
setEnableSign(retMap,user,context); setEnableSign(retMap, user, context);
//添加登录记录 //添加登录记录
addLoginRecord(user.getId(), user.getCompanyId(), context.getSiteId(), user.getOrgId(), terminalType == null ? 1 : terminalType); addLoginRecord(user.getId(), user.getCompanyId(), context.getSiteId(), user.getOrgId(), terminalType == null ? 1 : terminalType);
//设置最后一次登录站点信息 //设置最后一次登录站点信息
...@@ -179,7 +184,6 @@ public class AuthController { ...@@ -179,7 +184,6 @@ public class AuthController {
} }
/** /**
* 创建token * 创建token
* *
...@@ -230,6 +234,7 @@ public class AuthController { ...@@ -230,6 +234,7 @@ public class AuthController {
/** /**
* 设置用户返回信息 * 设置用户返回信息
*
* @param retMap * @param retMap
* @param user * @param user
* @param token * @param token
...@@ -246,11 +251,12 @@ public class AuthController { ...@@ -246,11 +251,12 @@ public class AuthController {
/** /**
* 设置登录后弹出签到 * 设置登录后弹出签到
*
* @param retMap * @param retMap
* @param user * @param user
* @param context * @param context
*/ */
private void setEnableSign(Map<String, Object> retMap,Account user,RequestContext context){ private void setEnableSign(Map<String, Object> retMap, Account user, RequestContext context) {
try { try {
retMap.putAll(isEnableSign(context.getSiteId(), user.getId())); retMap.putAll(isEnableSign(context.getSiteId(), user.getId()));
} catch (Exception e) { } catch (Exception e) {
...@@ -262,6 +268,7 @@ public class AuthController { ...@@ -262,6 +268,7 @@ public class AuthController {
/** /**
* 添加角色信息 * 添加角色信息
*
* @param retMap * @param retMap
* @param user * @param user
*/ */
...@@ -307,10 +314,10 @@ public class AuthController { ...@@ -307,10 +314,10 @@ public class AuthController {
context.setAccountId(user.getId()); context.setAccountId(user.getId());
context.setOrgId(user.getOrgId()); context.setOrgId(user.getOrgId());
Long siteId = accountService.findSiteId(user.getId()); Long siteId = accountService.findSiteId(user.getId());
if(siteId!=null) { if (siteId != null) {
context.setSiteId(siteId); context.setSiteId(siteId);
Site site = siteService.findById(siteId); Site site = siteService.findById(siteId);
if(site!=null){ if (site != null) {
context.setSiteCode(site.getCode()); context.setSiteCode(site.getCode());
} }
} }
...@@ -327,7 +334,7 @@ public class AuthController { ...@@ -327,7 +334,7 @@ public class AuthController {
} }
setRetMap(retMap, user, token, context); setRetMap(retMap, user, token, context);
//设置签到弹框 //设置签到弹框
setEnableSign(retMap,user,context); setEnableSign(retMap, user, context);
// 添加角色 // 添加角色
setAuthInfo(retMap, user); setAuthInfo(retMap, user);
httpResponse.addHeader(GlobalConstant.TOKEN_HEADER, token); httpResponse.addHeader(GlobalConstant.TOKEN_HEADER, token);
...@@ -336,11 +343,11 @@ public class AuthController { ...@@ -336,11 +343,11 @@ public class AuthController {
//登录成功,设置用户选择的语言 //登录成功,设置用户选择的语言
languageUtil.setStudentSelectLanguage(context, languageCode); languageUtil.setStudentSelectLanguage(context, languageCode);
if(Objects.equals(terminalType,APP)) { if (Objects.equals(terminalType, APP)) {
context.setSiteType(terminalType); context.setSiteType(terminalType);
// 新增登录积分 // 新增登录积分
String shortDay = DateUtil.toShortDay(new Date()); String shortDay = DateUtil.toShortDay(new Date());
if(!redisCache.hasKey(request.getSession().getId())) { if (!redisCache.hasKey(request.getSession().getId())) {
pointListenerClients.addPoint("point_login", Long.valueOf(shortDay)); pointListenerClients.addPoint("point_login", Long.valueOf(shortDay));
// 添加登录埋点 // 添加登录埋点
eventTrackApiClients.addEvent("event_login", context.getAccountId()); eventTrackApiClients.addEvent("event_login", context.getAccountId());
...@@ -473,9 +480,9 @@ public class AuthController { ...@@ -473,9 +480,9 @@ public class AuthController {
@ApiParam(name = "user") @RequestBody @Valid LoginInfoVO user, BindingResult validResults) { @ApiParam(name = "user") @RequestBody @Valid LoginInfoVO user, BindingResult validResults) {
try { try {
boolean flag = accountService.validateCaptcha(user.getCaptchaKey(), user.getCaptchaVal()); //图形码验证 boolean flag = accountService.validateCaptcha(user.getCaptchaKey(), user.getCaptchaVal()); //图形码验证
}catch (BizException e){ } catch (BizException e) {
logger.warn("验证码校验错误:{}" + e); logger.warn("验证码校验错误:{}" + e);
return Response.fail(e.getCode(),e.getMsg()); return Response.fail(e.getCode(), e.getMsg());
} }
if (validResults.hasFieldErrors()) { if (validResults.hasFieldErrors()) {
String error = ValidUtil.convertParamError(validResults.getFieldErrors()); String error = ValidUtil.convertParamError(validResults.getFieldErrors());
...@@ -503,7 +510,7 @@ public class AuthController { ...@@ -503,7 +510,7 @@ public class AuthController {
return Response.fail(Constants.SYSTEM_MSG_ACCOUNT_PWD_ERROR.getName()); return Response.fail(Constants.SYSTEM_MSG_ACCOUNT_PWD_ERROR.getName());
} }
} }
Response<String> ret = login(request,httpResponse, accountName, passWord, false, user.getLanguageCode(),APP); Response<String> ret = login(request, httpResponse, accountName, passWord, false, user.getLanguageCode(), APP);
RequestContext context = ContextHolder.get(); RequestContext context = ContextHolder.get();
if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) { if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) {
logger.info("手机APP端用户登录上下文=" + JSON.toJSONString(ContextHolder.get())); logger.info("手机APP端用户登录上下文=" + JSON.toJSONString(ContextHolder.get()));
...@@ -525,7 +532,7 @@ public class AuthController { ...@@ -525,7 +532,7 @@ public class AuthController {
@Extension(name = ReturnCode.API_SUB_FLAG, properties = { @Extension(name = ReturnCode.API_SUB_FLAG, properties = {
@ExtensionProperty(name = SecurityError.LOGIN_INFO_ERROR, value = SecurityError.LOGIN_INFO_ERROR_MSG)})}) @ExtensionProperty(name = SecurityError.LOGIN_INFO_ERROR, value = SecurityError.LOGIN_INFO_ERROR_MSG)})})
@RequestMapping(value = "/loginPc", produces = {"application/json;charset=utf-8"}, method = RequestMethod.POST) @RequestMapping(value = "/loginPc", produces = {"application/json;charset=utf-8"}, method = RequestMethod.POST)
public Response<String> loginPc(HttpServletRequest request,HttpServletResponse httpResponse, public Response<String> loginPc(HttpServletRequest request, HttpServletResponse httpResponse,
@ApiParam(name = "user") @RequestBody @Valid LoginInfoVO user, BindingResult validResults) { @ApiParam(name = "user") @RequestBody @Valid LoginInfoVO user, BindingResult validResults) {
if (validResults.hasFieldErrors()) { if (validResults.hasFieldErrors()) {
String error = ValidUtil.convertParamError(validResults.getFieldErrors()); String error = ValidUtil.convertParamError(validResults.getFieldErrors());
...@@ -549,7 +556,7 @@ public class AuthController { ...@@ -549,7 +556,7 @@ public class AuthController {
if (null == accountName) { if (null == accountName) {
return Response.fail(Constants.SYSTEM_MSG_ACCOUNT_PWD_ERROR.getName()); return Response.fail(Constants.SYSTEM_MSG_ACCOUNT_PWD_ERROR.getName());
} }
Response<String> ret = login(request,httpResponse, accountName, passWord, true, user.getLanguageCode(),PC); Response<String> ret = login(request, httpResponse, accountName, passWord, true, user.getLanguageCode(), PC);
if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) { if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) {
RequestContext rc = ContextHolder.get(); RequestContext rc = ContextHolder.get();
logger.info("学员pc端用户登录上下文=" + JSON.toJSONString(rc)); logger.info("学员pc端用户登录上下文=" + JSON.toJSONString(rc));
...@@ -570,13 +577,13 @@ public class AuthController { ...@@ -570,13 +577,13 @@ public class AuthController {
@ExtensionProperty(name = SecurityError.LOGIN_INFO_ERROR, value = SecurityError.LOGIN_INFO_ERROR_MSG)})}) @ExtensionProperty(name = SecurityError.LOGIN_INFO_ERROR, value = SecurityError.LOGIN_INFO_ERROR_MSG)})})
@RequestMapping(value = "/loginManage", produces = { @RequestMapping(value = "/loginManage", produces = {
"application/json;charset=utf-8"}, method = RequestMethod.POST) "application/json;charset=utf-8"}, method = RequestMethod.POST)
public Response<String> loginManage(HttpServletRequest request,HttpServletResponse httpResponse, public Response<String> loginManage(HttpServletRequest request, HttpServletResponse httpResponse,
@ApiParam(name = "user") @RequestBody @Valid LoginInfoVO user, BindingResult validResults) { @ApiParam(name = "user") @RequestBody @Valid LoginInfoVO user, BindingResult validResults) {
try { try {
boolean flag = accountService.validateCaptcha(user.getCaptchaKey(), user.getCaptchaVal()); //图形码验证 boolean flag = accountService.validateCaptcha(user.getCaptchaKey(), user.getCaptchaVal()); //图形码验证
}catch (BizException e){ } catch (BizException e) {
logger.warn("验证码校验错误:{}" + e); logger.warn("验证码校验错误:{}" + e);
return Response.fail(e.getCode(),e.getMsg()); return Response.fail(e.getCode(), e.getMsg());
} }
if (validResults.hasFieldErrors()) { if (validResults.hasFieldErrors()) {
String error = ValidUtil.convertParamError(validResults.getFieldErrors()); String error = ValidUtil.convertParamError(validResults.getFieldErrors());
...@@ -600,7 +607,7 @@ public class AuthController { ...@@ -600,7 +607,7 @@ public class AuthController {
if (null == accountName) { if (null == accountName) {
return Response.fail("4000", InternationalEnums.AUTHCONTROLLER2.getCode(), ""); return Response.fail("4000", InternationalEnums.AUTHCONTROLLER2.getCode(), "");
} }
Response<String> ret = login(request,httpResponse, accountName, passWord, false, user.getLanguageCode(),MANAGE); Response<String> ret = login(request, httpResponse, accountName, passWord, false, user.getLanguageCode(), MANAGE);
if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) { if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) {
logger.info("管理登陆上下文=" + JSON.toJSONString(ContextHolder.get())); logger.info("管理登陆上下文=" + JSON.toJSONString(ContextHolder.get()));
...@@ -621,7 +628,7 @@ public class AuthController { ...@@ -621,7 +628,7 @@ public class AuthController {
Map<String, Object> rmap = (Map<String, Object>) ret.getData(); Map<String, Object> rmap = (Map<String, Object>) ret.getData();
//是否只有社群菜单判断 //是否只有社群菜单判断
try { try {
accountController.judgeWhetherIsCommunityManager(context,accessSites); accountController.judgeWhetherIsCommunityManager(context, accessSites);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
logger.error("判断社群是否只有管理员异常"); logger.error("判断社群是否只有管理员异常");
...@@ -642,7 +649,7 @@ public class AuthController { ...@@ -642,7 +649,7 @@ public class AuthController {
logger.warn("参数校验错误:{}" + error); logger.warn("参数校验错误:{}" + error);
return Response.fail(Constants.MSG_REQUEST_ERROR.getName()); return Response.fail(Constants.MSG_REQUEST_ERROR.getName());
} }
Response<String> ret = login(request,httpResponse, user.getAccount(), user.getPassword(), false, user.getLanguageCode(),WECHAT); Response<String> ret = login(request, httpResponse, user.getAccount(), user.getPassword(), false, user.getLanguageCode(), WECHAT);
if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) { if (ReturnCode.SUCCESS.getCode().equals(ret.getCode())) {
RequestContext rc = ContextHolder.get(); RequestContext rc = ContextHolder.get();
logger.info("微信登陆上下文=" + JSON.toJSONString(rc)); logger.info("微信登陆上下文=" + JSON.toJSONString(rc));
...@@ -1237,6 +1244,13 @@ public class AuthController { ...@@ -1237,6 +1244,13 @@ public class AuthController {
if (type != null && !type.equals(0)) { if (type != null && !type.equals(0)) {
addLoginRecord(accountId, companyId, siteId, accountVO.getOrgId(), Integer.valueOf(type)); addLoginRecord(accountId, companyId, siteId, accountVO.getOrgId(), Integer.valueOf(type));
} }
// 根据用户ID集合查询角色集合
List<AuthzAccountRole> authzAccountRoleList = authzAccountRoleService.getRoleIdsByAccountIds(Collections.singletonList(accountId));
// 组装角色ID集合
List<Long> roleIdList = authzAccountRoleList.stream().map(AuthzAccountRole::getRoleId).collect(Collectors.toList());
// 根据角色ID集合查询角色名称
List<AuthzRole> authzRoles =roleService.selectBatchIds(roleIdList);
retMap.put("authRole", authzRoles);
return Response.ok(retMap); return Response.ok(retMap);
} else { } else {
return Response.fail(Constants.MSG_NOT_SITE_ACCESS_AUTH.getCode().toString(), Constants.MSG_NOT_SITE_ACCESS_AUTH.getName()); return Response.fail(Constants.MSG_NOT_SITE_ACCESS_AUTH.getCode().toString(), Constants.MSG_NOT_SITE_ACCESS_AUTH.getName());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment