mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 19:36:50 +08:00
Merge branch 'master' of codeup.aliyun.com:6265f483e4166464dc2f9c14/boeu/baseservers
This commit is contained in:
@@ -8,9 +8,12 @@ import java.util.Enumeration;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.apache.commons.lang3.RandomUtils;
|
import org.apache.commons.lang3.RandomUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.xboe.common.utils.IDGenerator;
|
import com.xboe.common.utils.IDGenerator;
|
||||||
|
import com.xboe.common.utils.MD5Util;
|
||||||
|
import com.xboe.core.SysConstant;
|
||||||
import com.xboe.module.idconfig.entity.IPMapping;
|
import com.xboe.module.idconfig.entity.IPMapping;
|
||||||
import com.xboe.module.idconfig.service.IIPMappingService;
|
import com.xboe.module.idconfig.service.IIPMappingService;
|
||||||
|
|
||||||
@@ -31,8 +34,15 @@ public class IdGeneratorAutoConfig {
|
|||||||
public void init() throws Exception{
|
public void init() throws Exception{
|
||||||
|
|
||||||
String ip=getLinuxLocalIp();
|
String ip=getLinuxLocalIp();
|
||||||
|
String appName=SysConstant.getConfigValue("spring.application.name");
|
||||||
|
if(StringUtils.isBlank(appName)) {
|
||||||
|
appName=IDGenerator.randomString(8);//随机生成8位字符串
|
||||||
|
}
|
||||||
|
log.info("读取的应用名称:"+appName);
|
||||||
|
String md5=MD5Util.MD5Encode(ip+appName);
|
||||||
|
IPMapping ipm = ipMappingService.get(md5);
|
||||||
|
|
||||||
|
|
||||||
IPMapping ipm = ipMappingService.findByIP(ip);
|
|
||||||
Integer workServerId=null;
|
Integer workServerId=null;
|
||||||
Integer dataCenterId=null;
|
Integer dataCenterId=null;
|
||||||
if(ipm!=null) {
|
if(ipm!=null) {
|
||||||
@@ -43,9 +53,11 @@ public class IdGeneratorAutoConfig {
|
|||||||
workServerId=RandomUtils.nextInt(0,31);
|
workServerId=RandomUtils.nextInt(0,31);
|
||||||
dataCenterId=RandomUtils.nextInt(0,31);
|
dataCenterId=RandomUtils.nextInt(0,31);
|
||||||
ipm=new IPMapping();
|
ipm=new IPMapping();
|
||||||
|
ipm.setId(md5);
|
||||||
ipm.setIp(ip);
|
ipm.setIp(ip);
|
||||||
ipm.setDcNum(dataCenterId);
|
ipm.setDcNum(dataCenterId);
|
||||||
ipm.setWorkNum(workServerId);
|
ipm.setWorkNum(workServerId);
|
||||||
|
ipm.setAppName(appName);
|
||||||
ipMappingService.save(ipm);
|
ipMappingService.save(ipm);
|
||||||
}
|
}
|
||||||
IDGenerator.init(workServerId,dataCenterId);
|
IDGenerator.init(workServerId,dataCenterId);
|
||||||
|
|||||||
@@ -11,13 +11,19 @@ import lombok.Data;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = SysConstant.TABLE_PRE + "idconfig")
|
@Table(name = SysConstant.TABLE_PRE + "ipapp")
|
||||||
public class IPMapping {
|
public class IPMapping {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
@Column(name = "id", length = 32)
|
||||||
|
private String id;
|
||||||
|
|
||||||
@Column(name = "ip", length = 40)
|
@Column(name = "ip", length = 40)
|
||||||
private String ip;
|
private String ip;
|
||||||
|
|
||||||
|
@Column(name = "app_name", length = 50)
|
||||||
|
private String appName;
|
||||||
|
|
||||||
@Column(name = "work_num", length = 2)
|
@Column(name = "work_num", length = 2)
|
||||||
private Integer workNum;
|
private Integer workNum;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.xboe.module.idconfig.entity.IPMapping;
|
|||||||
|
|
||||||
public interface IIPMappingService {
|
public interface IIPMappingService {
|
||||||
|
|
||||||
IPMapping findByIP(String ip);
|
IPMapping get(String id);
|
||||||
|
|
||||||
void save(IPMapping ipm);
|
void save(IPMapping ipm);
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,6 @@ public class IPMappingServiceImpl implements IIPMappingService{
|
|||||||
@Autowired
|
@Autowired
|
||||||
IPMappingDao dao;
|
IPMappingDao dao;
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPMapping findByIP(String ip) {
|
|
||||||
return dao.get(ip);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -34,4 +30,9 @@ public class IPMappingServiceImpl implements IIPMappingService{
|
|||||||
return dao.getAll();
|
return dao.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPMapping get(String id) {
|
||||||
|
return dao.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +1,17 @@
|
|||||||
package com.xboe;
|
package com.xboe;
|
||||||
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.net.NetworkInterface;
|
|
||||||
import java.net.SocketException;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.apache.commons.lang3.RandomUtils;
|
|
||||||
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationArguments;
|
||||||
import org.springframework.boot.ApplicationRunner;
|
import org.springframework.boot.ApplicationRunner;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.xboe.common.utils.IDGenerator;
|
import com.xboe.module.idconfig.IdGeneratorAutoConfig;
|
||||||
import com.xboe.module.idconfig.entity.IPMapping;
|
|
||||||
import com.xboe.module.idconfig.service.IIPMappingService;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动就执行的一些处理
|
* 启动就执行的一些处理
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
|
||||||
@Component
|
@Component
|
||||||
public class ApplicationStartRunner implements ApplicationRunner {
|
public class ApplicationStartRunner implements ApplicationRunner {
|
||||||
|
|
||||||
@@ -32,64 +19,12 @@ public class ApplicationStartRunner implements ApplicationRunner {
|
|||||||
Environment env;
|
Environment env;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
IIPMappingService ipMappingService;
|
IdGeneratorAutoConfig autoConfig;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(ApplicationArguments args) throws Exception {
|
public void run(ApplicationArguments args) throws Exception {
|
||||||
|
//多服务器配置时生成的id根据服务器ip地址不同参数不同,防止不同服务器生成的id重复问题
|
||||||
// Map<String,Integer> ipconfig=new HashMap<>();
|
autoConfig.init();
|
||||||
// ipconfig.put("10.251.186.27",0);//测试环境
|
|
||||||
// ipconfig.put("10.251.132.41",1);
|
|
||||||
// ipconfig.put("10.251.132.42",2);
|
|
||||||
// ipconfig.put("10.251.132.47",3);
|
|
||||||
|
|
||||||
String ip=getLinuxLocalIp();
|
|
||||||
|
|
||||||
IPMapping ipm = ipMappingService.findByIP(ip);
|
|
||||||
Integer workServerId=null;
|
|
||||||
Integer dataCenterId=null;
|
|
||||||
if(ipm!=null) {
|
|
||||||
workServerId=ipm.getWorkNum();
|
|
||||||
dataCenterId=ipm.getDcNum();
|
|
||||||
}else {
|
|
||||||
log.warn("无IP【"+ip+"】的配置的workNum和DataCenterNum,系统自动生成随机数");
|
|
||||||
workServerId=RandomUtils.nextInt(0,31);
|
|
||||||
dataCenterId=RandomUtils.nextInt(0,31);
|
|
||||||
ipm=new IPMapping();
|
|
||||||
ipm.setIp(ip);
|
|
||||||
ipm.setDcNum(dataCenterId);
|
|
||||||
ipm.setWorkNum(workServerId);
|
|
||||||
ipMappingService.save(ipm);
|
|
||||||
}
|
|
||||||
IDGenerator.init(workServerId,dataCenterId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getLinuxLocalIp() throws SocketException {
|
|
||||||
String ip = "";
|
|
||||||
try {
|
|
||||||
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
|
|
||||||
NetworkInterface intf = en.nextElement();
|
|
||||||
//String name = intf.getName();
|
|
||||||
//if (!name.contains("docker") && !name.contains("lo")){
|
|
||||||
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
|
|
||||||
InetAddress inetAddress = enumIpAddr.nextElement();
|
|
||||||
if (!inetAddress.isLoopbackAddress()) {
|
|
||||||
String ipaddress = inetAddress.getHostAddress().toString();
|
|
||||||
if (!ipaddress.contains(":") && !ipaddress.contains("::") && !ipaddress.contains("0:0:") && !ipaddress.contains("fe80")) {
|
|
||||||
ip = ipaddress;
|
|
||||||
//log.error("获取的ip:"+ipaddress);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
}catch (SocketException ex) {
|
|
||||||
ip = "127.0.0.1";
|
|
||||||
//log.error("获取ip地址异常",ex);
|
|
||||||
}
|
|
||||||
//log.error("获取的实际的ip:"+ip);
|
|
||||||
return ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -351,4 +351,21 @@ public class Course extends BaseEntity {
|
|||||||
this.favorites=favorites;
|
this.favorites=favorites;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Course(String id,String name,String summary,String coverImg,String sysCreateAid,String sysCreateBy,Integer type,LocalDateTime publishTime,Integer views,Integer comments,Integer praises,Integer shares,Integer favorites,Float score){
|
||||||
|
super.setId(id);
|
||||||
|
this.name=name;
|
||||||
|
this.summary=summary;
|
||||||
|
this.coverImg=coverImg;
|
||||||
|
super.setSysCreateAid(sysCreateAid);
|
||||||
|
super.setSysCreateBy(sysCreateBy);
|
||||||
|
this.type=type;
|
||||||
|
this.publishTime=publishTime;
|
||||||
|
this.views=views;
|
||||||
|
this.comments=comments;
|
||||||
|
this.praises=praises;
|
||||||
|
this.shares=shares;
|
||||||
|
this.favorites=favorites;
|
||||||
|
this.score=score;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ public class CourseHRBPAuditServiceImpl implements ICourseHRBPAuditService {
|
|||||||
query.setPageIndex(pageIndex);
|
query.setPageIndex(pageIndex);
|
||||||
query.setPageSize(pageSize);
|
query.setPageSize(pageSize);
|
||||||
query.addFields("a","c.name","c.type","c.sysType1","c.sysType2","c.sysType3","c.sysCreateBy");
|
query.addFields("a","c.name","c.type","c.sysType1","c.sysType2","c.sysType3","c.sysCreateBy");
|
||||||
|
//query.addGroupBy("")
|
||||||
query.addFilter(FieldFilters.eqField("a.courseId", "c.id"));
|
query.addFilter(FieldFilters.eqField("a.courseId", "c.id"));
|
||||||
query.addFilter(FieldFilters.eq("a.courseId",info.getCourseId()));
|
query.addFilter(FieldFilters.eq("a.courseId",info.getCourseId()));
|
||||||
|
|
||||||
|
|||||||
@@ -370,8 +370,9 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
if(rs.isEmpty()) {
|
if(rs.isEmpty()) {
|
||||||
log.error("未能查询出数据");
|
log.error("未能查询出数据");
|
||||||
}
|
}
|
||||||
courses.addAll(rs);
|
// courses.addAll(rs);
|
||||||
return courses;
|
rs.addAll(courses);
|
||||||
|
return rs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -424,11 +425,12 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
courseDao.updateFieldById(id,"name","已删除"+name);
|
courseDao.updateFieldById(id,"name","已删除"+name);
|
||||||
//同时添加发布事件,这里的创建人需要修改为教师
|
//同时添加发布事件,这里的创建人需要修改为教师
|
||||||
Course c=courseDao.get(id);
|
Course c=courseDao.get(id);
|
||||||
if(eventSender!=null) {
|
//删除分两种情况,一个是管理员删除,一个是自己删除 ,所以这里的处理移到前端了
|
||||||
eventSender.send("删除课程","PublishCourse", "删除课程【"+c.getName()+"】", c.getId(), "1", c.getName(), c.getSysCreateAid(), c.getSysCreateBy(),"");
|
// if(eventSender!=null) {
|
||||||
}else {
|
// eventSender.send("删除课程","DeleteCourse", "删除课程【"+c.getName()+"】", c.getId(), "1", c.getName(), c.getSysCreateAid(), c.getSysCreateBy(),"");
|
||||||
log.error("未配置事件消息发送的实现");
|
// }else {
|
||||||
}
|
// log.error("未配置事件消息发送的实现");
|
||||||
|
// }
|
||||||
//删除
|
//删除
|
||||||
if(c.getFullTextId()!=null) {
|
if(c.getFullTextId()!=null) {
|
||||||
try {
|
try {
|
||||||
@@ -1040,6 +1042,7 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
QueryBuilder builder = QueryBuilder.from(Course.class);
|
QueryBuilder builder = QueryBuilder.from(Course.class);
|
||||||
builder.addFilter(FieldFilters.eq("deleted",false));
|
builder.addFilter(FieldFilters.eq("deleted",false));
|
||||||
builder.addFilter(FieldFilters.eq("enabled",true));
|
builder.addFilter(FieldFilters.eq("enabled",true));
|
||||||
|
builder.addFilter(FieldFilters.gt("score",4.0f));
|
||||||
builder.setPageSize(3);
|
builder.setPageSize(3);
|
||||||
List<IFieldFilter> iFieldFilters = new ArrayList<>();
|
List<IFieldFilter> iFieldFilters = new ArrayList<>();
|
||||||
iFieldFilters.add(FieldFilters.in("sysType1",strings));
|
iFieldFilters.add(FieldFilters.in("sysType1",strings));
|
||||||
|
|||||||
@@ -72,8 +72,6 @@ public class AloneExamApi extends ApiBaseController {
|
|||||||
@Resource
|
@Resource
|
||||||
private IExamPaperService examPapeService;
|
private IExamPaperService examPapeService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前用户的考试任务,AloneExam
|
* 当前用户的考试任务,AloneExam
|
||||||
* @param pager
|
* @param pager
|
||||||
@@ -84,7 +82,7 @@ public class AloneExamApi extends ApiBaseController {
|
|||||||
public JsonResponse<PageList<AloneExam>> findUserPage(Pagination pager, AloneExam dto) {
|
public JsonResponse<PageList<AloneExam>> findUserPage(Pagination pager, AloneExam dto) {
|
||||||
try {
|
try {
|
||||||
dto.setAid(getCurrent().getAccountId());
|
dto.setAid(getCurrent().getAccountId());
|
||||||
PageList<AloneExam> rs = service.findPage(pager.getPageIndex(), pager.getPageSize(), dto, OrderCondition.desc("sysCreateTime"));
|
PageList<AloneExam> rs = service.findPage(pager.getPageIndex(), pager.getPageSize(), dto, null);
|
||||||
return success(rs);
|
return success(rs);
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
log.error("查询独立考试答卷列表错误", e);
|
log.error("查询独立考试答卷列表错误", e);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import java.time.LocalDateTime;
|
|||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.xboe.core.SysConstant;
|
import com.xboe.core.SysConstant;
|
||||||
@@ -115,7 +116,7 @@ public class AloneExam extends IdBaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开始时间
|
* 开始时间
|
||||||
*/
|
*/
|
||||||
@JsonFormat(pattern = "yyyy--MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@Column(name = "start_time")
|
@Column(name = "start_time")
|
||||||
private LocalDateTime startTime;
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
@@ -126,4 +127,25 @@ public class AloneExam extends IdBaseEntity {
|
|||||||
@Column(name = "end_time")
|
@Column(name = "end_time")
|
||||||
private LocalDateTime endTime;
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
private Float total;
|
||||||
|
|
||||||
|
public AloneExam() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public AloneExam(String id,String aid,String testId,String testName,Integer testDuration,Integer times,Float score,Integer status,LocalDateTime taskTime,LocalDateTime startTime,LocalDateTime endTime) {
|
||||||
|
this.setId(id);
|
||||||
|
this.setAid(aid);
|
||||||
|
this.testId=testId;
|
||||||
|
this.testName=testName;
|
||||||
|
this.testDuration=testDuration;
|
||||||
|
this.times=times;
|
||||||
|
this.score=score;
|
||||||
|
this.status=status;
|
||||||
|
this.taskTime=taskTime;
|
||||||
|
this.startTime=startTime;
|
||||||
|
this.endTime=endTime;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import com.xboe.module.exam.dao.AloneExamAnswerDao;
|
|||||||
import com.xboe.module.exam.dao.AloneExamDao;
|
import com.xboe.module.exam.dao.AloneExamDao;
|
||||||
import com.xboe.module.exam.entity.AloneExam;
|
import com.xboe.module.exam.entity.AloneExam;
|
||||||
import com.xboe.module.exam.entity.AloneExamAnswer;
|
import com.xboe.module.exam.entity.AloneExamAnswer;
|
||||||
|
import com.xboe.module.exam.entity.ExamTest;
|
||||||
import com.xboe.module.exam.service.IAloneExamService;
|
import com.xboe.module.exam.service.IAloneExamService;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -182,29 +183,31 @@ public class AloneExamServiceImpl implements IAloneExamService{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageList<AloneExam> findPage(int pageIndex, int pageSize, AloneExam aea, OrderCondition oc) {
|
public PageList<AloneExam> findPage(int pageIndex, int pageSize, AloneExam aea, OrderCondition oc) {
|
||||||
QueryBuilder query=QueryBuilder.from(AloneExam.class);
|
QueryBuilder query=QueryBuilder.from(AloneExam.class.getSimpleName()+" a,"+ExamTest.class.getSimpleName()+" t");
|
||||||
|
query.addField("new AloneExam(a.id,a.aid,a.testId,a.testName,a.testDuration,a.times,a.score,a.status,a.taskTime,t.entranceTime,t.deadlineTime)");
|
||||||
query.setPageIndex(pageIndex);
|
query.setPageIndex(pageIndex);
|
||||||
query.setPageSize(pageSize);
|
query.setPageSize(pageSize);
|
||||||
|
query.addFilter(FieldFilters.eqField("a.testId","t.id"));
|
||||||
if(oc!=null) {
|
if(oc!=null) {
|
||||||
query.addOrder(oc);
|
query.addOrder(oc);
|
||||||
}else {
|
}else {
|
||||||
query.addOrder(OrderCondition.desc("sysCreateTime"));
|
query.addOrder(OrderCondition.desc("a.sysCreateTime"));
|
||||||
}
|
}
|
||||||
if(aea!=null) {
|
if(aea!=null) {
|
||||||
if(aea.getStatus()!=null) {
|
if(aea.getStatus()!=null) {
|
||||||
query.addFilter(FieldFilters.eq("status",aea.getStatus()));
|
query.addFilter(FieldFilters.eq("a.status",aea.getStatus()));
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotBlank(aea.getTestId())) {
|
if(StringUtils.isNotBlank(aea.getTestId())) {
|
||||||
query.addFilter(FieldFilters.eq("testId",aea.getTestId()));
|
query.addFilter(FieldFilters.eq("a.testId",aea.getTestId()));
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotBlank(aea.getTestName())) {
|
if(StringUtils.isNotBlank(aea.getTestName())) {
|
||||||
query.addFilter(FieldFilters.like("testName",aea.getTestName()));
|
query.addFilter(FieldFilters.like("a.testName",aea.getTestName()));
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotBlank(aea.getAid())) {
|
if(StringUtils.isNotBlank(aea.getAid())) {
|
||||||
query.addFilter(FieldFilters.eq("aid",aea.getAid()));
|
query.addFilter(FieldFilters.eq("a.aid",aea.getAid()));
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotBlank(aea.getName())) {
|
if(StringUtils.isNotBlank(aea.getName())) {
|
||||||
query.addFilter(FieldFilters.eq("name",aea.getName()));
|
query.addFilter(FieldFilters.eq("a.name",aea.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return aeDao.findPage(query.builder());
|
return aeDao.findPage(query.builder());
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package com.xboe.module.interaction.api;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.xboe.common.utils.StringUtil;
|
||||||
import com.xboe.module.interaction.dto.CommentsDto;
|
import com.xboe.module.interaction.dto.CommentsDto;
|
||||||
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;
|
||||||
@@ -71,6 +73,37 @@ public class CommentsApi extends ApiBaseController{
|
|||||||
return success(list);
|
return success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 只显示某个内容下的一级评论,现在只有笔记
|
||||||
|
* */
|
||||||
|
@PostMapping("/list")
|
||||||
|
public JsonResponse<List<Comments>> list(Integer objType,String objId){
|
||||||
|
if(StringUtil.isBlank(objId)){
|
||||||
|
return badRequest("参数异常");
|
||||||
|
}
|
||||||
|
if(objType==null){
|
||||||
|
return badRequest("参数异常");
|
||||||
|
}
|
||||||
|
List<Comments> list = service.list(objType, objId);
|
||||||
|
|
||||||
|
// List<String> ids=new ArrayList<String>();
|
||||||
|
// for(Comments c: list) {
|
||||||
|
// if(c.getReplys()>0) {
|
||||||
|
// ids.add(c.getId());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
List<String> ids = list.stream().map(Comments::getId).collect(Collectors.toList());
|
||||||
|
if(!ids.isEmpty()) {
|
||||||
|
List<Comments> replyList = service.findReplysByCommentIds(20, objType, ids);
|
||||||
|
|
||||||
|
list.addAll(replyList);
|
||||||
|
}
|
||||||
|
return success(list);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(value="/user-reply-list",method= {RequestMethod.GET,RequestMethod.POST})
|
@RequestMapping(value="/user-reply-list",method= {RequestMethod.GET,RequestMethod.POST})
|
||||||
public JsonResponse<List<Comments>> findReplyList(Integer num,String ids,Boolean self,Integer type){
|
public JsonResponse<List<Comments>> findReplyList(Integer num,String ids,Boolean self,Integer type){
|
||||||
|
|||||||
@@ -70,5 +70,10 @@ public class FavoriteDto {
|
|||||||
* */
|
* */
|
||||||
private Float progress;
|
private Float progress;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 课程评分
|
||||||
|
* */
|
||||||
|
private Float score;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,6 +91,11 @@ public class FavoriteTotalDto {
|
|||||||
* */
|
* */
|
||||||
private String qid;
|
private String qid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* score
|
||||||
|
* */
|
||||||
|
private Float score;
|
||||||
|
|
||||||
|
|
||||||
public FavoriteTotalDto() {
|
public FavoriteTotalDto() {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,5 +137,13 @@ public interface ICommentsService {
|
|||||||
PageList<CommentsDto> findAll(int pageIndex, int pageSize, String toaid, String uname);
|
PageList<CommentsDto> findAll(int pageIndex, int pageSize, String toaid, String uname);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 笔记的回复
|
||||||
|
* */
|
||||||
|
List<Comments> list(Integer objType,String objId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -289,6 +289,12 @@ public class CommentsServiceImpl implements ICommentsService{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Comments> list(Integer objType, String objId) {
|
||||||
|
List<Comments> list = dao.findList(FieldFilters.eq("objType", objType), FieldFilters.eq("objId", objId));
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageList<CommentsDto> findCourseTome(int pageIndex, int pageSize, Integer objType, String toaid, String uname, Boolean isread) {
|
public PageList<CommentsDto> findCourseTome(int pageIndex, int pageSize, Integer objType, String toaid, String uname, Boolean isread) {
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ public class FavoritesServiceImpl implements IFavoritesService{
|
|||||||
if(!courseList.isEmpty()) {
|
if(!courseList.isEmpty()) {
|
||||||
QueryBuilder from = QueryBuilder.from(Course.class);
|
QueryBuilder from = QueryBuilder.from(Course.class);
|
||||||
from.addFilter(FieldFilters.in("id",courseList));
|
from.addFilter(FieldFilters.in("id",courseList));
|
||||||
from.addFields("new Course(id,name,summary,coverImg,sysCreateAid,sysCreateBy,type,publishTime,views,comments,praises,shares,favorites)");
|
from.addFields("new Course(id,name,summary,coverImg,sysCreateAid,sysCreateBy,type,publishTime,views,comments,praises,shares,favorites,score)");
|
||||||
List<Course> courses = courseDao.findList(from.builder());
|
List<Course> courses = courseDao.findList(from.builder());
|
||||||
if(!courses.isEmpty()){
|
if(!courses.isEmpty()){
|
||||||
for (Course c : courses) {
|
for (Course c : courses) {
|
||||||
@@ -208,6 +208,7 @@ public class FavoritesServiceImpl implements IFavoritesService{
|
|||||||
favoriteTotalDto.setPraises(c.getPraises());
|
favoriteTotalDto.setPraises(c.getPraises());
|
||||||
favoriteTotalDto.setShares(c.getShares());
|
favoriteTotalDto.setShares(c.getShares());
|
||||||
favoriteTotalDto.setFavorites(c.getFavorites());
|
favoriteTotalDto.setFavorites(c.getFavorites());
|
||||||
|
favoriteTotalDto.setScore(c.getScore());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -438,7 +439,7 @@ public class FavoritesServiceImpl implements IFavoritesService{
|
|||||||
String from=Favorites.class.getSimpleName()+" f,"+Course.class.getSimpleName()+" c";
|
String from=Favorites.class.getSimpleName()+" f,"+Course.class.getSimpleName()+" c";
|
||||||
QueryBuilder query=QueryBuilder.from(from);
|
QueryBuilder query=QueryBuilder.from(from);
|
||||||
query.addFields("f.id","f.sysCreateTime","f.objId","c.name","c.summary","c.type","c.coverImg","c.sysCreateAid","c.sysCreateBy");
|
query.addFields("f.id","f.sysCreateTime","f.objId","c.name","c.summary","c.type","c.coverImg","c.sysCreateAid","c.sysCreateBy");
|
||||||
query.addFields("c.deadTime","c.views","c.comments","c.praises","c.shares","c.favorites","f.objType");
|
query.addFields("c.deadTime","c.views","c.comments","c.praises","c.shares","c.favorites","f.objType","c.score");
|
||||||
query.setPageIndex(pageIndex);
|
query.setPageIndex(pageIndex);
|
||||||
query.setPageSize(pageSize);
|
query.setPageSize(pageSize);
|
||||||
query.addOrder(OrderCondition.desc("f.id"));
|
query.addOrder(OrderCondition.desc("f.id"));
|
||||||
@@ -478,6 +479,7 @@ public class FavoritesServiceImpl implements IFavoritesService{
|
|||||||
dto.setShares(ConvertUtil.toInt(objs[13]));
|
dto.setShares(ConvertUtil.toInt(objs[13]));
|
||||||
dto.setFavorites(ConvertUtil.toInt(objs[14]));
|
dto.setFavorites(ConvertUtil.toInt(objs[14]));
|
||||||
dto.setObjType((Integer) objs[15]);
|
dto.setObjType((Integer) objs[15]);
|
||||||
|
dto.setScore((Float) objs[16]);
|
||||||
result.getList().add(dto);
|
result.getList().add(dto);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,6 +86,9 @@ public class Answer extends IdBaseEntity {
|
|||||||
@Column(name = "replay_name",length = 50)
|
@Column(name = "replay_name",length = 50)
|
||||||
private String replayName;
|
private String replayName;
|
||||||
|
|
||||||
|
@Column(name = "replays")
|
||||||
|
private Integer replays;
|
||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
private List<Answer> answers;
|
private List<Answer> answers;
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ public class AnswerServiceImpl implements IAnswerService {
|
|||||||
answer.setShares(0);
|
answer.setShares(0);
|
||||||
answer.setDeleted(false);
|
answer.setDeleted(false);
|
||||||
answer.setClevel(1);
|
answer.setClevel(1);
|
||||||
|
answer.setReplays(0);
|
||||||
answerDao.save(answer);
|
answerDao.save(answer);
|
||||||
questionDao.updateMultiFieldById(answer.getQid(),UpdateBuilder.create("answers", "answers+1",FieldUpdateType.EXPRESSION));
|
questionDao.updateMultiFieldById(answer.getQid(),UpdateBuilder.create("answers", "answers+1",FieldUpdateType.EXPRESSION));
|
||||||
}
|
}
|
||||||
@@ -150,11 +151,11 @@ public class AnswerServiceImpl implements IAnswerService {
|
|||||||
if(StringUtil.isNoneBlank(qid)){
|
if(StringUtil.isNoneBlank(qid)){
|
||||||
builder.addFilter(FieldFilters.eq("qid",qid));
|
builder.addFilter(FieldFilters.eq("qid",qid));
|
||||||
}
|
}
|
||||||
// if(StringUtil.isNoneBlank(orderType)){
|
if(StringUtil.isNoneBlank(orderType)){
|
||||||
// builder.addOrder(OrderCondition.desc(orderType));
|
builder.addOrder(OrderCondition.desc(orderType));
|
||||||
// }else{
|
}else{
|
||||||
// builder.addOrder(OrderCondition.desc("id"));
|
builder.addOrder(OrderCondition.asc("sysCreateTime"));
|
||||||
// }
|
}
|
||||||
if(StringUtil.isNoneBlank(keyword)){
|
if(StringUtil.isNoneBlank(keyword)){
|
||||||
builder.addFilter(FieldFilters.like("content",keyword));
|
builder.addFilter(FieldFilters.like("content",keyword));
|
||||||
}
|
}
|
||||||
@@ -184,7 +185,12 @@ public class AnswerServiceImpl implements IAnswerService {
|
|||||||
answer.setPraises(0);
|
answer.setPraises(0);
|
||||||
answer.setShares(0);
|
answer.setShares(0);
|
||||||
answer.setDeleted(false);
|
answer.setDeleted(false);
|
||||||
|
answer.setReplays(0);
|
||||||
answerDao.save(answer);
|
answerDao.save(answer);
|
||||||
|
if(StringUtil.isNotBlank(answer.getParentId())){
|
||||||
|
|
||||||
|
answerDao.updateMultiFieldById(answer.getParentId(),UpdateBuilder.create("replays","replays+1",FieldUpdateType.EXPRESSION));
|
||||||
|
}
|
||||||
questionDao.updateMultiFieldById(answer.getQid(),UpdateBuilder.create("answers", "answers+1",FieldUpdateType.EXPRESSION));
|
questionDao.updateMultiFieldById(answer.getQid(),UpdateBuilder.create("answers", "answers+1",FieldUpdateType.EXPRESSION));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import com.xboe.module.teacher.service.ITeacherService;
|
|||||||
import com.xboe.school.study.dto.StudyContentDto;
|
import com.xboe.school.study.dto.StudyContentDto;
|
||||||
import com.xboe.school.study.dto.StudyCourseNameDto;
|
import com.xboe.school.study.dto.StudyCourseNameDto;
|
||||||
import com.xboe.school.study.dto.StudyCourseQuery;
|
import com.xboe.school.study.dto.StudyCourseQuery;
|
||||||
|
import com.xboe.school.study.dto.StudyCourseSimple;
|
||||||
import com.xboe.school.study.entity.StudyCourse;
|
import com.xboe.school.study.entity.StudyCourse;
|
||||||
import com.xboe.school.study.entity.StudyCourseItem;
|
import com.xboe.school.study.entity.StudyCourseItem;
|
||||||
import com.xboe.school.study.entity.StudySignup;
|
import com.xboe.school.study.entity.StudySignup;
|
||||||
@@ -654,14 +655,14 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
* 我的关注 二次查询
|
* 我的关注 二次查询
|
||||||
* */
|
* */
|
||||||
@PostMapping("/follow-ids")
|
@PostMapping("/follow-ids")
|
||||||
public JsonResponse<List<StudyCourse>> followIds(@RequestBody StudyCourseQuery studyCourseQuery){
|
public JsonResponse<List<StudyCourseSimple>> followIds(@RequestBody StudyCourseQuery studyCourseQuery){
|
||||||
if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){
|
if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){
|
||||||
return badRequest("参数异常");
|
return badRequest("参数异常");
|
||||||
}
|
}
|
||||||
if(studyCourseQuery!=null && studyCourseQuery.getAids().isEmpty()){
|
if(studyCourseQuery!=null && studyCourseQuery.getAids().isEmpty()){
|
||||||
return badRequest("无关注人");
|
return badRequest("无关注人");
|
||||||
}
|
}
|
||||||
List<StudyCourse> studyCouseDtos = service.followids(studyCourseQuery);
|
List<StudyCourseSimple> studyCouseDtos = service.followids(studyCourseQuery);
|
||||||
// List<String> ids=new ArrayList<String>();
|
// List<String> ids=new ArrayList<String>();
|
||||||
// for(StudyCourse scourse:studyCouseDtos) {
|
// for(StudyCourse scourse:studyCouseDtos) {
|
||||||
// ids.add(scourse.getCourseId());
|
// ids.add(scourse.getCourseId());
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.xboe.school.study.dto;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class StudyCourseSimple {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String courseName;
|
||||||
|
|
||||||
|
private String courseId;
|
||||||
|
|
||||||
|
private String courseType;
|
||||||
|
|
||||||
|
private Integer source;
|
||||||
|
|
||||||
|
private String courseImage;
|
||||||
|
|
||||||
|
private Float progress;
|
||||||
|
|
||||||
|
private Float lastScore;
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime addTime;
|
||||||
|
|
||||||
|
private String sysType1;
|
||||||
|
|
||||||
|
private String sysType2;
|
||||||
|
|
||||||
|
private String sysType3;
|
||||||
|
|
||||||
|
private String aid;
|
||||||
|
}
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
package com.xboe.school.study.service;
|
package com.xboe.school.study.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.xboe.common.OrderCondition;
|
import com.xboe.common.OrderCondition;
|
||||||
import com.xboe.common.PageList;
|
import com.xboe.common.PageList;
|
||||||
import com.xboe.school.study.dto.StudyCourseNameDto;
|
import com.xboe.school.study.dto.StudyCourseNameDto;
|
||||||
import com.xboe.school.study.dto.StudyCourseQuery;
|
import com.xboe.school.study.dto.StudyCourseQuery;
|
||||||
import com.xboe.school.study.dto.StudyCouseDto;
|
import com.xboe.school.study.dto.StudyCourseSimple;
|
||||||
import com.xboe.school.study.entity.StudyCourse;
|
import com.xboe.school.study.entity.StudyCourse;
|
||||||
import com.xboe.school.study.entity.StudyCourseItem;
|
import com.xboe.school.study.entity.StudyCourseItem;
|
||||||
import com.xboe.school.study.entity.StudySignup;
|
import com.xboe.school.study.entity.StudySignup;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface IStudyCourseService {
|
public interface IStudyCourseService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -81,7 +79,7 @@ public interface IStudyCourseService {
|
|||||||
/**
|
/**
|
||||||
* 二次查询 我的关注
|
* 二次查询 我的关注
|
||||||
* */
|
* */
|
||||||
List<StudyCourse> followids(StudyCourseQuery studyCourseQuery);
|
List<StudyCourseSimple> followids(StudyCourseQuery studyCourseQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询课程最新学习记录的进度
|
* 查询课程最新学习记录的进度
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
|
|
||||||
package com.xboe.school.study.service.impl;
|
package com.xboe.school.study.service.impl;
|
||||||
|
|
||||||
import java.math.BigInteger;
|
|
||||||
import java.sql.Timestamp;
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
@@ -37,6 +33,7 @@ import com.xboe.school.study.dao.StudySignupDao;
|
|||||||
import com.xboe.school.study.dao.StudyTimeDao;
|
import com.xboe.school.study.dao.StudyTimeDao;
|
||||||
import com.xboe.school.study.dto.StudyCourseNameDto;
|
import com.xboe.school.study.dto.StudyCourseNameDto;
|
||||||
import com.xboe.school.study.dto.StudyCourseQuery;
|
import com.xboe.school.study.dto.StudyCourseQuery;
|
||||||
|
import com.xboe.school.study.dto.StudyCourseSimple;
|
||||||
import com.xboe.school.study.entity.StudyCourse;
|
import com.xboe.school.study.entity.StudyCourse;
|
||||||
import com.xboe.school.study.entity.StudyCourseItem;
|
import com.xboe.school.study.entity.StudyCourseItem;
|
||||||
import com.xboe.school.study.entity.StudySignup;
|
import com.xboe.school.study.entity.StudySignup;
|
||||||
@@ -418,18 +415,18 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) {
|
public List<StudyCourseSimple> followids(StudyCourseQuery studyCourseQuery) {
|
||||||
//分两次查询,查询课程,查询学习记录
|
//分两次查询,查询课程,查询学习记录
|
||||||
String courseHql="Select id,coverImg,score from "+Course.class.getSimpleName()+" where id in(?1)";
|
String courseHql="Select id,coverImg,score,name,sysType1,sysType2,sysType3 from "+Course.class.getSimpleName()+" where id in(?1)";
|
||||||
String studyHql="Select courseId,addTime,progress,aid from "+StudyCourse.class.getSimpleName()+" where aid in(?1) and courseId in(?2)";
|
String studyHql="Select courseId,addTime,progress,aid from "+StudyCourse.class.getSimpleName()+" where aid in(?1) and courseId in(?2)";
|
||||||
|
|
||||||
List<StudyCourse> rs=new ArrayList<>();
|
List<StudyCourseSimple> rs=new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
List<Object[]> clist= studyCourseDao.findListFields(courseHql,studyCourseQuery.getIds());
|
List<Object[]> clist= studyCourseDao.findListFields(courseHql,studyCourseQuery.getIds());
|
||||||
List<Object[]> slist= studyCourseDao.findListFields(studyHql,studyCourseQuery.getAids(),studyCourseQuery.getIds());
|
List<Object[]> slist= studyCourseDao.findListFields(studyHql,studyCourseQuery.getAids(),studyCourseQuery.getIds());
|
||||||
//数据数量一般不会太多,不超过20条,所以直接使用嵌套循环
|
//数据数量一般不会太多,不超过20条,所以直接使用嵌套循环
|
||||||
for(Object[] sobjs : slist) {
|
for(Object[] sobjs : slist) {
|
||||||
StudyCourse sc=new StudyCourse();
|
StudyCourseSimple sc=new StudyCourseSimple();
|
||||||
sc.setCourseId(ConvertUtil.toStr(sobjs[0]));
|
sc.setCourseId(ConvertUtil.toStr(sobjs[0]));
|
||||||
sc.setAddTime((LocalDateTime)sobjs[1]);
|
sc.setAddTime((LocalDateTime)sobjs[1]);
|
||||||
sc.setProgress(ConvertUtil.toFloat(sobjs[2]));
|
sc.setProgress(ConvertUtil.toFloat(sobjs[2]));
|
||||||
@@ -440,6 +437,10 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
|||||||
if(cid!=null && cid.equals(sc.getCourseId())) {
|
if(cid!=null && cid.equals(sc.getCourseId())) {
|
||||||
sc.setCourseImage(ConvertUtil.toStr(cobjs[1]));
|
sc.setCourseImage(ConvertUtil.toStr(cobjs[1]));
|
||||||
sc.setLastScore(ConvertUtil.toFloat(cobjs[2]));//课程分数,使用此值来承载
|
sc.setLastScore(ConvertUtil.toFloat(cobjs[2]));//课程分数,使用此值来承载
|
||||||
|
sc.setCourseName(ConvertUtil.toStr(cobjs[3]));
|
||||||
|
sc.setSysType1(ConvertUtil.toStr(cobjs[4]));
|
||||||
|
sc.setSysType2(ConvertUtil.toStr(cobjs[5]));
|
||||||
|
sc.setSysType3(ConvertUtil.toStr(cobjs[6]));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ jasypt.encryptor.algorithm=PBEWithMD5AndDES
|
|||||||
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
||||||
|
|
||||||
# elasticsearch config
|
# elasticsearch config
|
||||||
xboe.elasticsearch.server.ip=127.0.0.1
|
xboe.elasticsearch.server.ip=192.168.0.11
|
||||||
xboe.elasticsearch.server.port=9200
|
xboe.elasticsearch.server.port=9200
|
||||||
xboe.elasticsearch.server.user=
|
xboe.elasticsearch.server.user=
|
||||||
xboe.elasticsearch.server.password=
|
xboe.elasticsearch.server.password=
|
||||||
|
|||||||
@@ -160,7 +160,11 @@ public class BasicDataSyncServiceImpl implements IBasicDataSyncService{
|
|||||||
Object idObj = orgDao.findField("id", FieldFilters.eq("kid", dto.getOldDepartId()));
|
Object idObj = orgDao.findField("id", FieldFilters.eq("kid", dto.getOldDepartId()));
|
||||||
if(idObj!=null) {
|
if(idObj!=null) {
|
||||||
dto.setDepartId(idObj.toString());
|
dto.setDepartId(idObj.toString());
|
||||||
|
}else {
|
||||||
|
log.error("用户【"+dto.getKid()+"】"+dto.getName()+"对应的机构的kid【"+dto.getOldDepartId()+"】本地未查到");
|
||||||
}
|
}
|
||||||
|
}else {
|
||||||
|
log.error("用户【"+dto.getKid()+"】"+dto.getName()+"无关联的机构信息oldDepartId");
|
||||||
}
|
}
|
||||||
//同一个用户工号对应 多个kid的情况,所以直接根据kid查询是不对的,所以这里按工号查询,不使用kid
|
//同一个用户工号对应 多个kid的情况,所以直接根据kid查询是不对的,所以这里按工号查询,不使用kid
|
||||||
User user = userDao.findOne(FieldFilters.eq("userNo", dto.getUserNo()));
|
User user = userDao.findOne(FieldFilters.eq("userNo", dto.getUserNo()));
|
||||||
@@ -208,7 +212,6 @@ public class BasicDataSyncServiceImpl implements IBasicDataSyncService{
|
|||||||
user.setId(a.getId());
|
user.setId(a.getId());
|
||||||
user.setPersonId(person.getId());
|
user.setPersonId(person.getId());
|
||||||
user.setEnterpriseId(dto.getEnterpriseId());
|
user.setEnterpriseId(dto.getEnterpriseId());
|
||||||
user.setDepartId(dto.getDepartId());
|
|
||||||
user.setDescription(dto.getDescription());
|
user.setDescription(dto.getDescription());
|
||||||
user.setDomainId(dto.getDomainId());
|
user.setDomainId(dto.getDomainId());
|
||||||
user.setDuty(dto.getDuty());
|
user.setDuty(dto.getDuty());
|
||||||
@@ -260,7 +263,12 @@ public class BasicDataSyncServiceImpl implements IBasicDataSyncService{
|
|||||||
user.setOrgNamePath(dto.getOrgNamePath());
|
user.setOrgNamePath(dto.getOrgNamePath());
|
||||||
user.setOrgTreeType(dto.getOrgTreeType());
|
user.setOrgTreeType(dto.getOrgTreeType());
|
||||||
user.setEnterpriseId(dto.getEnterpriseId());
|
user.setEnterpriseId(dto.getEnterpriseId());
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(dto.getDepartId())) {
|
||||||
user.setDepartId(dto.getDepartId());
|
user.setDepartId(dto.getDepartId());
|
||||||
|
}else {
|
||||||
|
log.error("用户【"+user+"】无机构信息,不更新此字段");
|
||||||
|
}
|
||||||
user.setRank(dto.getRank());
|
user.setRank(dto.getRank());
|
||||||
user.setSassId(dto.getSassId());
|
user.setSassId(dto.getSassId());
|
||||||
user.setTelephoneNo(dto.getTelephoneNo());
|
user.setTelephoneNo(dto.getTelephoneNo());
|
||||||
|
|||||||
@@ -2,11 +2,13 @@ package com.xboe.primary.service.impl;
|
|||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import com.xboe.basic.entity.Account;
|
import com.xboe.basic.entity.Account;
|
||||||
|
import com.xboe.basic.service.impl.BasicDataSyncServiceImpl;
|
||||||
import com.xboe.dto.OrganizationDto;
|
import com.xboe.dto.OrganizationDto;
|
||||||
import com.xboe.dto.UserDto;
|
import com.xboe.dto.UserDto;
|
||||||
import com.xboe.primary.dao.MainAccountDao;
|
import com.xboe.primary.dao.MainAccountDao;
|
||||||
@@ -18,9 +20,12 @@ import com.xboe.primary.entity.MainOrganization;
|
|||||||
import com.xboe.primary.entity.MainUser;
|
import com.xboe.primary.entity.MainUser;
|
||||||
import com.xboe.primary.service.IMainDbSyncService;
|
import com.xboe.primary.service.IMainDbSyncService;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主数据库同步的实现
|
* 主数据库同步的实现
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Service("allService")
|
@Service("allService")
|
||||||
public class MainDbSyncServiceImpl implements IMainDbSyncService {
|
public class MainDbSyncServiceImpl implements IMainDbSyncService {
|
||||||
|
|
||||||
@@ -95,7 +100,12 @@ public class MainDbSyncServiceImpl implements IMainDbSyncService {
|
|||||||
//更新用户信息,更新账号信息
|
//更新用户信息,更新账号信息
|
||||||
user.setSysId(dto.getKid());
|
user.setSysId(dto.getKid());
|
||||||
user.setName(dto.getName());
|
user.setName(dto.getName());
|
||||||
|
if(StringUtils.isNotBlank(dto.getDepartId())) {
|
||||||
user.setDepartId(dto.getDepartId());
|
user.setDepartId(dto.getDepartId());
|
||||||
|
}else {
|
||||||
|
log.error("主库用户【"+user+"】无机构信息,不更新此字段");
|
||||||
|
}
|
||||||
|
|
||||||
user.setDescription(dto.getDescription());
|
user.setDescription(dto.getDescription());
|
||||||
user.setDomainId(dto.getDomainId());
|
user.setDomainId(dto.getDomainId());
|
||||||
user.setDuty(dto.getDuty());
|
user.setDuty(dto.getDuty());
|
||||||
@@ -142,7 +152,11 @@ public class MainDbSyncServiceImpl implements IMainDbSyncService {
|
|||||||
user=new MainUser();
|
user=new MainUser();
|
||||||
//同步过程中一样,可以不一样。因为此系统当前是一致的,所以统一使用一个
|
//同步过程中一样,可以不一样。因为此系统当前是一致的,所以统一使用一个
|
||||||
user.setId(a.getId());
|
user.setId(a.getId());
|
||||||
|
if(StringUtils.isNotBlank(dto.getDepartId())) {
|
||||||
user.setDepartId(dto.getDepartId());
|
user.setDepartId(dto.getDepartId());
|
||||||
|
}else {
|
||||||
|
log.error("主库新增用户【"+user+"】无机构信息");
|
||||||
|
}
|
||||||
user.setDescription(dto.getDescription());
|
user.setDescription(dto.getDescription());
|
||||||
user.setDomainId(dto.getDomainId());
|
user.setDomainId(dto.getDomainId());
|
||||||
user.setDuty(dto.getDuty());
|
user.setDuty(dto.getDuty());
|
||||||
|
|||||||
Reference in New Issue
Block a user