From 97158794d69fd2beee1bf27577aa7cadea8d847d Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 04 二月 2026 16:08:45 +0800
Subject: [PATCH] 优化
---
server/web/src/main/java/com/doumee/api/web/LoginController.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 102 insertions(+), 7 deletions(-)
diff --git a/server/web/src/main/java/com/doumee/api/web/LoginController.java b/server/web/src/main/java/com/doumee/api/web/LoginController.java
index 4548846..33cc68b 100644
--- a/server/web/src/main/java/com/doumee/api/web/LoginController.java
+++ b/server/web/src/main/java/com/doumee/api/web/LoginController.java
@@ -2,11 +2,16 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.annotation.LoginRequired;
+import com.doumee.config.jwt.JwtTokenUtil;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.constants.Constants;
+import com.doumee.core.dingTalk.DingTalk;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
@@ -14,12 +19,19 @@
import com.doumee.core.utils.HttpsUtil;
import com.doumee.dao.business.dto.LoginRequestNewParam;
import com.doumee.dao.business.model.Category;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.system.dto.DingLoginDTO;
import com.doumee.dao.system.model.SystemJob;
+import com.doumee.dao.vo.WebLoginUserVO;
import com.doumee.service.business.CategoryService;
-import com.sun.deploy.net.HttpUtils;
+import com.doumee.service.business.MemberService;
+import com.taobao.api.ApiException;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -34,6 +46,7 @@
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.UUID;
/**
@@ -41,23 +54,35 @@
* @date 2025/07/09 12:00
*/
@Api(tags = "web鐧诲綍鐩稿叧鎺ュ彛")
+@Trace(exclude = true)
@RestController
-@RequestMapping("/web")
+@RequestMapping("/web/login")
@Slf4j
-public class LoginController extends BaseController {
+public class LoginController extends ApiController {
@Autowired
private CategoryService categoryService;
+
+ @Autowired
+ private JwtTokenUtil jwtTokenUtil;
+
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private MemberService memberService;
+
+ @Autowired
+ private DingTalk dingTalk;
+
+
@ApiOperation("UK鍗曠偣鐧诲綍")
- @RequestMapping("/ukLogin")
+ @GetMapping("/ukLogin")
public void ukLogin(String tick, Object obj, HttpServletRequest request, HttpServletResponse response) throws Exception {
LoginRequestNewParam requestParam = new LoginRequestNewParam();
// UK_ERROR_URL = "http://u.zhibang.com/sso/web/token/error";
String errorUrl =systemDictDataBiz.queryByCode(Constants.ZBOM_PARAM,Constants.ZBOM_UK_ERROR_URL).getCode();
- try {
+ /* try {
log.error("璇锋眰鍙傛暟TICK鏈�鍘熷===========锛�" + tick);
JSONObject urlParams = new JSONObject();
log.info("璇锋眰鍙傛暟锛�" + JSON.toJSONString(urlParams));
@@ -79,11 +104,30 @@
log.error("ticket鎺ュ彛璇锋眰閿欒锛�" + e.getMessage());
response.sendRedirect(errorUrl + "?title=" + enCode("鐧婚檰閿欒") + "&msg=" + enCode("绯荤粺绻佸繖锛岃绋嶅悗閲嶈瘯~"));
return;
- }
+ }*/
requestParam.setRediUrl("http://localhost:10087/#/login");
- String token = UUID.randomUUID().toString()+"_doumee";
+ WebLoginUserVO loginUserVO = new WebLoginUserVO();
+ loginUserVO.setId("123");
+ loginUserVO.setRoleType("admin");
+ loginUserVO.setZhanqu("1");
+ String token = jwtTokenUtil.generateToken(loginUserVO);
response.sendRedirect(requestParam.getRediUrl()+"?token="+token);
}
+
+ @ApiOperation("閽夐拤鐧诲綍")
+ @PostMapping("/ddLogin")
+ public ApiResponse<WebLoginUserVO> ddLogin(@Validated @RequestBody DingLoginDTO dingLoginDTO) throws ApiException {
+ WebLoginUserVO loginUserVO = new WebLoginUserVO();
+ OapiV2UserGetuserinfoResponse.UserGetByCodeResponse response = dingTalk.getDDUserByCode(dingLoginDTO);
+ if(Objects.nonNull(response)){
+ loginUserVO.setId(response.getUserid());
+ loginUserVO.setRoleType(Constants.DD_USER_TYPE);
+ }
+ loginUserVO.setToken(jwtTokenUtil.generateToken(loginUserVO));
+ return ApiResponse.success(loginUserVO);
+ }
+
+
private String enCode(String string) {
// TODO Auto-generated method stub
String str = "";
@@ -96,5 +140,56 @@
return str;
}
+ @LoginRequired
+ @ApiOperation("鑰佸笀鍒嗛〉鏌ヨ")
+ @PostMapping("/memberPage")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse<PageData<Member>> memberPage(@RequestBody PageWrap<Member> pageWrap) {
+ WebLoginUserVO loginUserVO = this.getMemberResponse();
+ pageWrap.getModel().setQueryUserRole(loginUserVO.getRoleType());
+ pageWrap.getModel().setQueryZQCode(loginUserVO.getZhanqu());
+ PageData<Member> pageData = memberService.findPage(pageWrap);
+ if(CollectionUtils.isNotEmpty(pageData.getRecords())){
+ String roleConfig = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.ROLE_CONFIG).getCode();
+ if(StringUtils.isBlank(roleConfig)||StringUtils.isBlank(pageWrap.getModel().getQueryUserRole())
+ || ! (roleConfig.contains(pageWrap.getModel().getQueryUserRole()) || pageWrap.getModel().getQueryUserRole().equals(Constants.DD_USER_TYPE) )){
+ pageData.getRecords().forEach(i->{
+ i.setFee(null);
+ });
+ }
+ }
+ return ApiResponse.success(pageData);
+ }
+
+
+
+ @LoginRequired
+ @ApiOperation("鑰佸笀璇︽儏")
+ @GetMapping("/memberDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse<Member> memberPage(@RequestParam Integer id) {
+ WebLoginUserVO loginUserVO = this.getMemberResponse();
+ return ApiResponse.success(memberService.findDetailById(id,loginUserVO.getRoleType()));
+ }
+
+
+ @LoginRequired
+ @ApiOperation("鍒嗙被淇℃伅鏌ヨ")
+ @GetMapping("/categoryList")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse<List<Category>> categoryList(@RequestParam Integer type) {
+ return ApiResponse.success(categoryService.getCategoryList(type));
+ }
+
+
+
+
+
}
--
Gitblit v1.9.3