Compare commits

...

7 Commits

4 changed files with 166 additions and 5 deletions

View File

@@ -60,6 +60,9 @@ public class ThirdApi {
@Value("${orgTree.orgChildTreeList}")
private String orgChildTreeListUrl;
@Value("${userBasic.getUserBasicInfo}")
private String getUserBasicInfo;
@Autowired
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){
log.info("---------------准备同步在线课到讲师管理完毕 ------- param " + param);
String resp = Optional.ofNullable(

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -7,13 +7,14 @@ import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.boe.feign.api.infrastructure.entity.CommonSearchVo;
import com.boe.feign.api.infrastructure.entity.Dict;
import com.xboe.api.ThirdApi;
import com.xboe.api.vo.UserBasicInfoVo;
import com.xboe.module.course.dto.*;
import com.xboe.module.course.entity.*;
import com.xboe.module.course.service.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -92,7 +93,7 @@ public class CourseManageApi extends ApiBaseController{
IDataUserSyncService userSyncService;
@Resource
private ThirdApi thirdApi;
// @PostMapping("/test")
// public JsonResponse<PageList<Course>> findTest(Pagination pager,CourseQueryDto dto){
// //dto.setOrgAid("7003708665807110150");
@@ -464,7 +465,7 @@ public class CourseManageApi extends ApiBaseController{
@PostMapping("/submit")
@AutoLog(module = "课程",action = "提交课程",info = "")
public JsonResponse<CourseFullDto> submitCourseFull(@RequestBody CourseFullDto dto){
public JsonResponse<CourseFullDto> submitCourseFull(HttpServletRequest request, @RequestBody CourseFullDto dto){
if(dto.getCourse()==null){
return badRequest("无课程信息");
}
@@ -585,7 +586,10 @@ public class CourseManageApi extends ApiBaseController{
dto.getCourse().getOrgName(),
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()) {
//只是非开发模式下才可以发送
service.sendMail(email,""+dto.getCourse().getName()+"》课程审核提醒", htmlEmail,"数字化学习平台");
@@ -603,7 +607,39 @@ public class CourseManageApi extends ApiBaseController{
return error("提交课程处理失败",e.getMessage());
}
}
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 {
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()) {
//只是非高度环境上才会发送
String newEmail = getEmail(ucode,request);
if (StringUtils.isNotBlank(newEmail)) {
email = newEmail;
}
service.sendMail(email,""+course.getName()+"》课程审核提醒",htmlEmail,"数字化学习平台");
}