mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-16 22:36:50 +08:00
Compare commits
7 Commits
fix_1155
...
SZX-1194-2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e7e529f74 | ||
|
|
d6dcbdfcac | ||
|
|
44f4309930 | ||
|
|
64a3b26e77 | ||
|
|
9f4475dd05 | ||
|
|
ec3d8c57ac | ||
|
|
aa9b24de1f |
@@ -60,6 +60,9 @@ public class ThirdApi {
|
|||||||
@Value("${orgTree.orgChildTreeList}")
|
@Value("${orgTree.orgChildTreeList}")
|
||||||
private String orgChildTreeListUrl;
|
private String orgChildTreeListUrl;
|
||||||
|
|
||||||
|
@Value("${userBasic.getUserBasicInfo}")
|
||||||
|
private String getUserBasicInfo;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
UserDao userDao;
|
UserDao userDao;
|
||||||
|
|
||||||
@@ -366,6 +369,62 @@ public class ThirdApi {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 虽然当前已存在接口查询用户基本信息,目前仅仅包括用户名、工号、用户ID
|
||||||
|
*/
|
||||||
|
public List<UserBasicInfoVo> getUserBasicInfoByWorkNums(List<String> workNums) {
|
||||||
|
|
||||||
|
UserBasicInfoDto userBasicInfoDto = new UserBasicInfoDto();
|
||||||
|
userBasicInfoDto.setWorkNums(workNums);
|
||||||
|
Response<List<UserAccount>> response = userRemoteClient.getUserBasicInfo(userBasicInfoDto);
|
||||||
|
String respStr = JSON.toJSONString(response);
|
||||||
|
|
||||||
|
UserBasicInfoResultVo userBasicInfoResult = JSONUtil.parseObj(respStr).toBean(UserBasicInfoResultVo.class);
|
||||||
|
List<UserBasicInfoVo> basicInfos = userBasicInfoResult.getResult();
|
||||||
|
return basicInfos;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserBasicInfoVo> getUserBasicInfoByWorkNums2(String workNum, String token) {
|
||||||
|
try {
|
||||||
|
// 参数校验
|
||||||
|
if (StringUtils.isBlank(workNum)) {
|
||||||
|
log.warn("getUserBasicInfoByWorkNums2 workNum为空");
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建URL参数,将单个workNum作为列表参数传递
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("workNums", Collections.singletonList(workNum));
|
||||||
|
|
||||||
|
log.info("getUserBasicInfoByWorkNums2 请求参数: workNum={}, url={}", workNum, getUserBasicInfo);
|
||||||
|
|
||||||
|
// 发送HTTP GET请求
|
||||||
|
String responseStr = HttpRequest.get(getUserBasicInfo)
|
||||||
|
.form(params)
|
||||||
|
.header("token", token)
|
||||||
|
.execute()
|
||||||
|
.body();
|
||||||
|
|
||||||
|
log.info("getUserBasicInfoByWorkNums2 响应结果: {}", responseStr);
|
||||||
|
|
||||||
|
// 解析响应
|
||||||
|
UserBasicInfoResultVo resultVo = JSONUtil.parseObj(responseStr).toBean(UserBasicInfoResultVo.class);
|
||||||
|
log.info("getUserBasicInfoByWorkNums2 解析结果: {}", resultVo);
|
||||||
|
if (resultVo != null && resultVo.getStatus() == 200 && resultVo.getResult() != null) {
|
||||||
|
return resultVo.getResult();
|
||||||
|
} else {
|
||||||
|
log.error("getUserBasicInfoByWorkNums2 请求失败: status={}, message={}",
|
||||||
|
resultVo != null ? resultVo.getStatus() : "null",
|
||||||
|
resultVo != null ? resultVo.getMessage() : "响应为空");
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("getUserBasicInfoByWorkNums2 HTTP请求异常: workNum={}", workNum, e);
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void updateOrSaveCourse(CourseParam param, String token){
|
public void updateOrSaveCourse(CourseParam param, String token){
|
||||||
log.info("---------------准备同步在线课到讲师管理完毕 ------- param " + param);
|
log.info("---------------准备同步在线课到讲师管理完毕 ------- param " + param);
|
||||||
String resp = Optional.ofNullable(
|
String resp = Optional.ofNullable(
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package com.xboe.api.vo;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Slf4j
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class UserBasicInfoResultVo {
|
||||||
|
|
||||||
|
private String error;
|
||||||
|
private String message;
|
||||||
|
private String permissions;
|
||||||
|
private List<UserBasicInfoVo> result;
|
||||||
|
private int status;
|
||||||
|
private Date timestamp;
|
||||||
|
|
||||||
|
public UserBasicInfoResultVo success() {
|
||||||
|
if (this.status != 200) {
|
||||||
|
log.error("获取用户基本信息失败----{}", JSONUtil.toJsonPrettyStr(this));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.xboe.api.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserBasicInfoVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名。
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工号。
|
||||||
|
*/
|
||||||
|
private String workNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱
|
||||||
|
*/
|
||||||
|
private String email;
|
||||||
|
}
|
||||||
@@ -7,13 +7,14 @@ import java.util.stream.Collectors;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import com.boe.feign.api.infrastructure.entity.CommonSearchVo;
|
import com.boe.feign.api.infrastructure.entity.CommonSearchVo;
|
||||||
import com.boe.feign.api.infrastructure.entity.Dict;
|
import com.boe.feign.api.infrastructure.entity.Dict;
|
||||||
import com.xboe.api.ThirdApi;
|
import com.xboe.api.ThirdApi;
|
||||||
|
import com.xboe.api.vo.UserBasicInfoVo;
|
||||||
import com.xboe.module.course.dto.*;
|
import com.xboe.module.course.dto.*;
|
||||||
import com.xboe.module.course.entity.*;
|
import com.xboe.module.course.entity.*;
|
||||||
import com.xboe.module.course.service.*;
|
import com.xboe.module.course.service.*;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@@ -464,7 +465,7 @@ public class CourseManageApi extends ApiBaseController{
|
|||||||
|
|
||||||
@PostMapping("/submit")
|
@PostMapping("/submit")
|
||||||
@AutoLog(module = "课程",action = "提交课程",info = "")
|
@AutoLog(module = "课程",action = "提交课程",info = "")
|
||||||
public JsonResponse<CourseFullDto> submitCourseFull(@RequestBody CourseFullDto dto){
|
public JsonResponse<CourseFullDto> submitCourseFull(HttpServletRequest request, @RequestBody CourseFullDto dto){
|
||||||
if(dto.getCourse()==null){
|
if(dto.getCourse()==null){
|
||||||
return badRequest("无课程信息");
|
return badRequest("无课程信息");
|
||||||
}
|
}
|
||||||
@@ -585,7 +586,10 @@ public class CourseManageApi extends ApiBaseController{
|
|||||||
dto.getCourse().getOrgName(),
|
dto.getCourse().getOrgName(),
|
||||||
dto.getCourse().getSysCreateBy(),dto.getCourse().getName());
|
dto.getCourse().getSysCreateBy(),dto.getCourse().getName());
|
||||||
//邮件发送
|
//邮件发送
|
||||||
String email=dto.getAuditUser().getEmail();
|
String email= this.getEmail(dto.getAuditUser().getCode(), request);
|
||||||
|
if (StringUtils.isBlank( email)) {
|
||||||
|
email=dto.getAuditUser().getEmail();
|
||||||
|
}
|
||||||
if(!isLocalDevelopment()) {
|
if(!isLocalDevelopment()) {
|
||||||
//只是非开发模式下才可以发送
|
//只是非开发模式下才可以发送
|
||||||
service.sendMail(email,"《"+dto.getCourse().getName()+"》课程审核提醒", htmlEmail,"数字化学习平台");
|
service.sendMail(email,"《"+dto.getCourse().getName()+"》课程审核提醒", htmlEmail,"数字化学习平台");
|
||||||
@@ -604,6 +608,38 @@ public class CourseManageApi extends ApiBaseController{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getEmail(String code, HttpServletRequest request) {
|
||||||
|
|
||||||
|
String token = request.getHeader("Xboe-Access-Token");
|
||||||
|
if (StringUtils.isEmpty(token)) {
|
||||||
|
token = request.getHeader("token");
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(token)) {
|
||||||
|
token = request.getHeader("x-access-token");
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("审批获取邮箱新 code:{}", code);
|
||||||
|
if (StringUtils.isBlank( code)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
log.info("审批获取邮箱 workNums:{}", code);
|
||||||
|
List<UserBasicInfoVo> userBasicInfoVoList = thirdApi.getUserBasicInfoByWorkNums2(code, token);
|
||||||
|
log.info("审批获取邮箱 userBasicInfoVoList:{}", userBasicInfoVoList);
|
||||||
|
if (CollectionUtils.isEmpty(userBasicInfoVoList)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String email = userBasicInfoVoList.get(0).getEmail();
|
||||||
|
log.info("审批获取邮箱 userBasicInfoVoList.get(0).getEmail():{}", email);
|
||||||
|
|
||||||
|
|
||||||
|
return email;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("获取用户邮箱错误",e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private String createEmailHtml(String name,String orgId, String orgName,String createBy,String courseName) throws Exception {
|
private String createEmailHtml(String name,String orgId, String orgName,String createBy,String courseName) throws Exception {
|
||||||
StringBuffer htmlMsg=new StringBuffer("<div style=\"line-height:30px;border:2px solid #2990ca;padding:20px\">");
|
StringBuffer htmlMsg=new StringBuffer("<div style=\"line-height:30px;border:2px solid #2990ca;padding:20px\">");
|
||||||
|
|
||||||
@@ -714,6 +750,10 @@ public class CourseManageApi extends ApiBaseController{
|
|||||||
//邮件发送
|
//邮件发送
|
||||||
if(!isLocalDevelopment()) {
|
if(!isLocalDevelopment()) {
|
||||||
//只是非高度环境上才会发送
|
//只是非高度环境上才会发送
|
||||||
|
String newEmail = getEmail(ucode,request);
|
||||||
|
if (StringUtils.isNotBlank(newEmail)) {
|
||||||
|
email = newEmail;
|
||||||
|
}
|
||||||
service.sendMail(email,"《"+course.getName()+"》课程审核提醒",htmlEmail,"数字化学习平台");
|
service.sendMail(email,"《"+course.getName()+"》课程审核提醒",htmlEmail,"数字化学习平台");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user