Merge branch 'cloud' into old-cloud

This commit is contained in:
BOE\10867418
2023-09-01 17:11:03 +08:00
11 changed files with 120 additions and 39 deletions

View File

@@ -32,6 +32,8 @@ public class UrlSecurityFilterImpl implements IUrlSecurityFilter{
noLoginUrls.add("/xboe/sys/user/sync-all"); noLoginUrls.add("/xboe/sys/user/sync-all");
//noLoginUrls.add(""); //noLoginUrls.add("");
noLoginUrls.add("/xboe/m/exam/alone-extend/save"); noLoginUrls.add("/xboe/m/exam/alone-extend/save");
noLoginUrls.add("/xboe/m/course/manage/test");
} }
@Override @Override

View File

@@ -228,6 +228,7 @@ public class OutSideDataServiceImpl implements IOutSideDataService {
public UserOrgIds getOrgIds() { public UserOrgIds getOrgIds() {
UserOrgIds uids=new UserOrgIds(); UserOrgIds uids=new UserOrgIds();
List<String> orgIds = new ArrayList<>(); List<String> orgIds = new ArrayList<>();
uids.setIds(orgIds); uids.setIds(orgIds);
String token = TokenProxy.getToken(request); String token = TokenProxy.getToken(request);
String type="application/json"; String type="application/json";
@@ -259,12 +260,29 @@ public class OutSideDataServiceImpl implements IOutSideDataService {
// orgIds.add(elements.next().toString()); // orgIds.add(elements.next().toString());
// } // }
// } // }
Set<String> orgSetIds = new HashSet<>();//用于排重判断
if(rootNode.get("result")!=null & rootNode.get("result").get("mainList")!=null) { if(rootNode.get("result")!=null) {
JsonNode result = rootNode.get("result").get("mainList"); JsonNode mainList = rootNode.get("result").get("mainList");
Iterator<JsonNode> elements = result.elements(); JsonNode readOnlyList = rootNode.get("result").get("readOnlyList");
while (elements.hasNext()){ //主列表
orgIds.add(elements.next().toString()); if(mainList!=null && !mainList.isEmpty()) {
Iterator<JsonNode> elements = mainList.elements();
while (elements.hasNext()){
String oid=elements.next().asText();
orgIds.add(oid);
orgSetIds.add(oid);
}
}
//只读列表
if(readOnlyList!=null && !readOnlyList.isEmpty()) {
Iterator<JsonNode> elements = readOnlyList.elements();
while (elements.hasNext()){
String oid=elements.next().asText();
if(!orgSetIds.contains(oid)) {
orgIds.add(oid);
}
}
} }
} }
@@ -275,6 +293,24 @@ public class OutSideDataServiceImpl implements IOutSideDataService {
} }
// public static void main(String[] args) {
// String json="{\"mainList\": [\"6998568222014574593\",\"6998568178507059201\",\"6998568191714922497\",\"6998568195720482817\",\"6998568197947658241\",\"6998568188397228033\",\"6998568201529593857\",\"6998568211277156353\",\"6998568231271403521\",\"6998568237076320257\",\"6998568255854219265\",\"6998568239068614657\",\"6998568283775700993\",\"6998568294148214785\",\"6998568454492262401\",\"6998568457495384065\",\"6998568488780697601\",\"6998568492371021825\",\"6998568492924669953\",\"6998568219623821313\",\"6998568507143360513\",\"6998568507181109249\",\"6998568507248218113\",\"6998568181724090369\",\"6998568481679740929\",\"6998568513686474753\",\"6998568547987492865\",\"6998568579704819713\",\"6998568598142980097\",\"6998568598520467457\",\"6998568600449847297\",\"6998568651326754817\",\"6998568652689903617\",\"6998568658578706433\",\"6998568496787623937\"]}";
// ObjectMapper mapper=new ObjectMapper();
//
// try {
// JsonNode rootNode= mapper.readTree(json);
// JsonNode mainList = rootNode.get("mainList");
// Iterator<JsonNode> elements = mainList.elements();
// while (elements.hasNext()){
// String oid=elements.next().asText();
// System.out.println(oid);
// }
//
// }catch(Exception e) {
// e.printStackTrace();
// }
// }
private String getBaseUrl(String url) { private String getBaseUrl(String url) {
String baseUrl=SysConstant.getConfigValue("xboe.server.userbasic.url"); String baseUrl=SysConstant.getConfigValue("xboe.server.userbasic.url");
if(StringUtils.isBlank(baseUrl)) { if(StringUtils.isBlank(baseUrl)) {

View File

@@ -8,6 +8,7 @@ import com.xboe.system.organization.entity.Organization;
/** /**
* 调用旧系统的外部接口 * 调用旧系统的外部接口
*/ */
@Deprecated
public interface IFwOrganizationService { public interface IFwOrganizationService {
/** /**

View File

@@ -7,6 +7,7 @@ import java.util.List;
/** /**
* 调用旧系统的外部接口 * 调用旧系统的外部接口
*/ */
@Deprecated
public interface IFwUserService { public interface IFwUserService {
/** /**

View File

@@ -8,6 +8,7 @@ import com.xboe.module.teacher.vo.TeacherVo;
/** /**
* 调用旧系统的外部接口 * 调用旧系统的外部接口
*/ */
@Deprecated
public interface ILnTeacherService { public interface ILnTeacherService {
/** /**

View File

@@ -2,6 +2,7 @@ package com.xboe.externalinterface.system.service;
import java.util.List; import java.util.List;
@Deprecated
public interface IManagerRefService { public interface IManagerRefService {
List<String> getCompanyIdsByUserId(String uid); List<String> getCompanyIdsByUserId(String uid);

View File

@@ -8,6 +8,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -19,7 +20,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.xboe.account.entity.Account;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.common.Pagination; import com.xboe.common.Pagination;
import com.xboe.core.CurrentUser; import com.xboe.core.CurrentUser;
@@ -28,7 +28,7 @@ import com.xboe.core.api.ApiBaseController;
import com.xboe.core.log.AutoLog; import com.xboe.core.log.AutoLog;
import com.xboe.data.dto.UserOrgIds; import com.xboe.data.dto.UserOrgIds;
import com.xboe.data.outside.IOutSideDataService; import com.xboe.data.outside.IOutSideDataService;
import com.xboe.externalinterface.system.service.IFwUserService; import com.xboe.data.service.IDataUserSyncService;
import com.xboe.module.assistance.service.IEmailService; import com.xboe.module.assistance.service.IEmailService;
import com.xboe.module.course.dto.CourseExportDto; import com.xboe.module.course.dto.CourseExportDto;
import com.xboe.module.course.dto.CourseFullDto; import com.xboe.module.course.dto.CourseFullDto;
@@ -51,11 +51,9 @@ import com.xboe.module.course.service.ICourseTeacherService;
import com.xboe.module.excel.ExportsExcelSenderUtil; import com.xboe.module.excel.ExportsExcelSenderUtil;
import com.xboe.standard.enums.BoedxContentType; import com.xboe.standard.enums.BoedxContentType;
import com.xboe.standard.enums.BoedxCourseType; import com.xboe.standard.enums.BoedxCourseType;
import com.xboe.system.organization.entity.Organization;
import com.xboe.system.organization.service.IOrganizationService; import com.xboe.system.organization.service.IOrganizationService;
import com.xboe.system.user.entity.User; import com.xboe.system.user.entity.User;
import com.xboe.system.user.service.IUserService; import com.xboe.system.user.service.IUserService;
import com.xboe.system.user.vo.UserVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -73,8 +71,9 @@ public class CourseManageApi extends ApiBaseController{
@Resource @Resource
private ICourseService courseService; private ICourseService courseService;
@Autowired @Autowired
IFwUserService fwUserService; IOutSideDataService outsideService;
@Resource @Resource
IEmailService service; IEmailService service;
@@ -103,6 +102,17 @@ public class CourseManageApi extends ApiBaseController{
@Resource @Resource
IOutSideDataService outSideDataService; IOutSideDataService outSideDataService;
@Autowired
IDataUserSyncService userSyncService;
@PostMapping("/test")
public JsonResponse<PageList<Course>> findTest(Pagination pager,CourseQueryDto dto){
//dto.setOrgAid("7003708665807110150");
PageList<Course> coursePageList = courseService.findPage(pager.getPageIndex(), pager.getPageSize(),dto);
return success(coursePageList);
}
/** /**
* 管理列表的查询 * 管理列表的查询
* @param pager * @param pager
@@ -116,12 +126,15 @@ public class CourseManageApi extends ApiBaseController{
//getCurrent().get //getCurrent().get
try { try {
UserOrgIds userOrgIds=outSideDataService.getOrgIds(); UserOrgIds userOrgIds=outSideDataService.getOrgIds();
List<String> orgIds = userOrgIds.getIds(); List<String> orgIds = userOrgIds.getIds();
if(userOrgIds.getPermissions().containsKey(UserOrgIds.IsSystemAdminKey)) {
if(userOrgIds.getPermissions().containsKey(UserOrgIds.IsSystemAdminKey)){
dto.setIsSystemAdmin(userOrgIds.getPermissions().get(UserOrgIds.IsSystemAdminKey)); dto.setIsSystemAdmin(userOrgIds.getPermissions().get(UserOrgIds.IsSystemAdminKey));
}else { }else {
dto.setIsSystemAdmin(false); dto.setIsSystemAdmin(false);
} }
String ids=""; String ids="";
if(userOrgIds.getIds()!=null && !userOrgIds.getIds().isEmpty()) if(userOrgIds.getIds()!=null && !userOrgIds.getIds().isEmpty())
{ {
@@ -130,7 +143,7 @@ public class CourseManageApi extends ApiBaseController{
//log.info("获取到的用户的组织机构权限ids",ids); //log.info("获取到的用户的组织机构权限ids",ids);
String aid=getCurrent().getAccountId(); String aid=getCurrent().getAccountId();
//如果前端查询当前人的,这里去掉 //如果前端查询当前人的,这里去掉
if(StringUtils.isNotBlank( dto.getAid())) { if(StringUtils.isNotBlank(dto.getAid())) {
dto.setAid(null); dto.setAid(null);
} }
dto.setOrgAid(aid); dto.setOrgAid(aid);
@@ -480,16 +493,18 @@ public class CourseManageApi extends ApiBaseController{
} }
if(!isLocalDevelopment()) { if(!isLocalDevelopment()) {
if(StringUtils.isBlank(dto.getAuditUser().getAid())) { if(StringUtils.isBlank(dto.getAuditUser().getAid())) {
if(StringUtils.isBlank(dto.getAuditUser().getKid())) { // if(StringUtils.isBlank(dto.getAuditUser().getKid())) {
return badRequest("HRBP审核信息人员错误"); // return badRequest("HRBP审核信息人员错误");
} // }
//转化用户id //转化用户id
User u = userService.getByUserNo(dto.getAuditUser().getCode()); User u = userService.getByUserNo(dto.getAuditUser().getCode());
if(u==null) { //本地没有,需要同步 if(u==null) { //本地没有,需要同步
//20230815 直接返回错误,这个时候传的用户,在新系统中没有,需要用户登录一下,或着用户中心推送
return badRequest("无关联HRBP审核人员请先同步用户");
//Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid()); //Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid());
UserVo fwUser = fwUserService.getById(dto.getAuditUser().getKid()); // UserVo fwUser = fwUserService.getById(dto.getAuditUser().getKid());
Account a =userService.syncAccountUser(fwUser); // Account a =userService.syncAccountUser(fwUser);
dto.getAuditUser().setAid(a.getId()); // dto.getAuditUser().setAid(a.getId());
}else { }else {
dto.getAuditUser().setAid(u.getId()); dto.getAuditUser().setAid(u.getId());
} }
@@ -566,7 +581,7 @@ public class CourseManageApi extends ApiBaseController{
} }
@PostMapping("/sumbits") @PostMapping("/sumbits")
public JsonResponse<Boolean> sumbitId(CourseHRBPAudit audit,String ucode,String ukid,String email,String orgName){ public JsonResponse<Boolean> sumbitId(HttpServletRequest request,CourseHRBPAudit audit,String ucode,String ukid,String email,String orgName){
if(StringUtils.isBlank(audit.getCourseId())){ if(StringUtils.isBlank(audit.getCourseId())){
return badRequest("参数错误"); return badRequest("参数错误");
} }
@@ -596,16 +611,31 @@ public class CourseManageApi extends ApiBaseController{
if(!isLocalDevelopment()) { if(!isLocalDevelopment()) {
if(StringUtils.isBlank(audit.getAid())) { if(StringUtils.isBlank(audit.getAid())) {
if(StringUtils.isBlank(ukid)){
return badRequest("未关联HRBP审核人员"); // if(StringUtils.isBlank(ukid)){
} // return badRequest("未关联HRBP审核人员");
// }
//转化用户id //转化用户id
User u = userService.getByUserNo(ucode); User u = userService.getByUserNo(ucode);
if(u==null) { //本地没有,需要同步 if(u==null) { //本地没有,需要同步
return badRequest("无关联HRBP审核人员请先同步用户");
//Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid()); //Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid());
UserVo fwUser = fwUserService.getById(ukid); //20230815 已经不再使用直接查老系统,采用接口同步的方式
Account a =userService.syncAccountUser(fwUser); // UserVo fwUser = fwUserService.getById(ukid);
audit.setAid(a.getId()); // Account a =userService.syncAccountUser(fwUser);
// audit.setAid(a.getId());
// String token = TokenProxy.getBoeToken(request);
// UserData udata=outsideService.getUserInfoByToken(token);
// if(udata==null) {
// log.error("未获取当前登录人的用户信息");
// return wrap(JsonResponseStatus.TOKEN_NOPASS, "用户信息查询失败");
// }
// //检查本地是否存在,如果存在就更新,不存在就添加
// try {
// userSyncService.syncUserFull(udata);
// }catch(Exception exp) {
// log.error("登录同步用户错误",exp);
// }
}else { }else {
audit.setAid(u.getId()); audit.setAid(u.getId());
} }

View File

@@ -255,14 +255,13 @@ public class CourseServiceImpl implements ICourseService {
public PageList<Course> findPage(int pageIndex, int pageSize, CourseQueryDto dto) { public PageList<Course> findPage(int pageIndex, int pageSize, CourseQueryDto dto) {
List<IFieldFilter> filters = createFilters(dto); List<IFieldFilter> filters = createFilters(dto);
//有权限的查询,也同时查询出创建人的数据,在权限上 //有权限的查询,也同时查询出创建人的数据,在权限上
if(TempFilterConfig.Manager_CourseFile_ByOrgIds) { if(TempFilterConfig.Manager_CourseFile_ByOrgIds) {
if(dto.getIsSystemAdmin()==null || !dto.getIsSystemAdmin()) { if(dto.getIsSystemAdmin()==null || !dto.getIsSystemAdmin()) {
if(StringUtil.isNotBlank(dto.getOrgIds())){ if(StringUtil.isNotBlank(dto.getOrgIds())){
log.error(""+dto.getOrgAid()+"】 按机构过滤和自己创建的课程"); //log.info("【"+dto.getOrgAid()+"】 按机构过滤和自己创建的课程");
log.error(" orgids "+dto.getOrgIds()); //log.info(" orgids "+dto.getOrgIds());
if(dto.getOrgIds().contains(",")){ if(dto.getOrgIds().contains(",")){
String[] split = dto.getOrgIds().split(","); String[] split = dto.getOrgIds().split(",");
List<String> strings = Arrays.asList(split); List<String> strings = Arrays.asList(split);
@@ -271,12 +270,12 @@ public class CourseServiceImpl implements ICourseService {
filters.add(FieldFilters.or(FieldFilters.eq("orgId",dto.getOrgIds()),FieldFilters.eq("sysCreateAid",dto.getOrgAid()))); filters.add(FieldFilters.or(FieldFilters.eq("orgId",dto.getOrgIds()),FieldFilters.eq("sysCreateAid",dto.getOrgAid())));
} }
}else { }else {
log.error(""+dto.getOrgAid()+"】 机构ids没有 只查询自己创建的课程"); //log.info("【"+dto.getOrgAid()+"】 机构ids没有 只查询自己创建的课程");
//没有机构权限,只能查出自己创建的 //没有机构权限,只能查出自己创建的
filters.add(FieldFilters.eq("sysCreateAid",dto.getOrgAid())); filters.add(FieldFilters.eq("sysCreateAid",dto.getOrgAid()));
} }
}else { }else {
log.error(""+dto.getOrgAid()+"】IsSystemAdmin is true 不过机构过滤,查询全部"); //log.info("【"+dto.getOrgAid()+"】IsSystemAdmin is true 不过机构过滤,查询全部");
} }
} }
@@ -294,7 +293,7 @@ public class CourseServiceImpl implements ICourseService {
} }
PageList<Course> rs=courseDao.findPage(pageIndex, pageSize, filters, oc); PageList<Course> rs=courseDao.findPage(pageIndex, pageSize, filters, oc);
//log.info("查询出的条数:"+rs.getCount());
return rs; return rs;
} }

View File

@@ -60,8 +60,13 @@ public class ExamQuestionApi extends ApiBaseController {
@PostMapping("/page") @PostMapping("/page")
public JsonResponse<PageList<ExamQuestion>> page(Pagination pager, public JsonResponse<PageList<ExamQuestion>> page(Pagination pager,
ExamQuestion examQuestion,String orderField,Boolean orderAsc) { ExamQuestion examQuestion,String orderField,Boolean orderAsc) {
PageList<ExamQuestion> list = service.query(pager.getPageIndex(), pager.getPageSize(), examQuestion,orderField,orderAsc); try {
return success(list); PageList<ExamQuestion> list = service.query(pager.getPageIndex(), pager.getPageSize(), examQuestion,orderField,orderAsc);
return success(list);
}catch(Exception e) {
log.error("分页查询试题错误",e);
return error("查询试题错误",e.getMessage());
}
} }
/** /**

View File

@@ -101,10 +101,10 @@ public class TeacherServiceImpl implements ITeacherService {
@Override @Override
public List<Teacher> findByName(String name) { public List<Teacher> findByName(String name) {
String hql="Select t.id,t.name,u.userNo from "+Teacher.class.getSimpleName()+" t,"+User.class.getSimpleName()+" u "; String hql="Select t.id,t.name,u.userNo from "+Teacher.class.getSimpleName()+" t,"+User.class.getSimpleName()+" u ";
hql+=" where t.id=u.id and t.name like '%"+name+"%'"; hql+=" where t.id=u.id and (t.name like '%"+name+"%' or u.userNo=?1)";
List<Teacher> teachers=new ArrayList<Teacher>(); List<Teacher> teachers=new ArrayList<Teacher>();
try { try {
List<Object[]> list =dao.findListFields(hql); List<Object[]> list =dao.findListFields(hql,name);
for(Object[] objs :list) { for(Object[] objs :list) {
Teacher t=new Teacher(); Teacher t=new Teacher();
t.setId((String)objs[0]); t.setId((String)objs[0]);

View File

@@ -1,5 +1,6 @@
package com.xboe.system.user.api; package com.xboe.system.user.api;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -256,6 +257,10 @@ public class UserApi extends ApiBaseController {
*/ */
@RequestMapping(value = "/ids", method = {RequestMethod.POST}) @RequestMapping(value = "/ids", method = {RequestMethod.POST})
public JsonResponse<List<UserSimpleVo>> findByIds(@RequestBody List<String> ids) { public JsonResponse<List<UserSimpleVo>> findByIds(@RequestBody List<String> ids) {
if(ids.isEmpty()) {
return success(new ArrayList<>());
}
List<UserSimpleVo> list = null; List<UserSimpleVo> list = null;
// //最后从缓存中取根据用户的id 缓存用户的头像地址,姓名,机构信息。一期可以先直接查询,缓存可以后续修改 // //最后从缓存中取根据用户的id 缓存用户的头像地址,姓名,机构信息。一期可以先直接查询,缓存可以后续修改