mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-18 23:36:52 +08:00
标签管理选择标签没有进行关联,以及热点标签超过十个没有判断
This commit is contained in:
@@ -99,9 +99,8 @@ public class CourseTagApi extends ApiBaseController {
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/changeHotStatus",method= RequestMethod.POST)
|
||||
public JsonResponse<Void> changeHotStatus(Long id,Boolean isHot){
|
||||
courseTagService.changeHotStatus(id,isHot);
|
||||
return success(null);
|
||||
public JsonResponse<Boolean> changeHotStatus(Long id,Boolean isHot){
|
||||
return courseTagService.changeHotStatus(id,isHot);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -113,4 +113,12 @@ public class CourseTagRelationDao extends BaseDao<CourseTagRelation> {
|
||||
.collect(Collectors.toList());
|
||||
return new PageList<CourseTagRelationDto>(list,totalresults!=null?totalresults.size():0);
|
||||
}
|
||||
|
||||
public boolean countHotTags() {
|
||||
String sql = "SELECT COUNT(*) FROM boe_course_tag WHERE is_hot = 1";
|
||||
Query query = entityManager.createNativeQuery(sql);
|
||||
Object result = query.getSingleResult();
|
||||
long count = Long.parseLong(result.toString());
|
||||
return count >= 10;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,16 +2,10 @@ package com.xboe.module.course.service;
|
||||
|
||||
import com.xboe.common.OrderCondition;
|
||||
import com.xboe.common.PageList;
|
||||
import com.xboe.core.CurrentUser;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.orm.IFieldFilter;
|
||||
import com.xboe.module.article.entity.Article;
|
||||
import com.xboe.module.course.dto.CourseTagQueryDto;
|
||||
import com.xboe.module.course.dto.CourseTagRelationDto;
|
||||
import com.xboe.module.course.entity.CourseTag;
|
||||
import com.xboe.module.course.entity.CourseTagRelation;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -48,11 +42,12 @@ public interface ICourseTagService {
|
||||
|
||||
/**
|
||||
* 修改指定id的课程标签的热点属性
|
||||
*
|
||||
* @param id
|
||||
* @param isHot
|
||||
* @return
|
||||
*/
|
||||
void changeHotStatus(Long id,Boolean isHot);
|
||||
JsonResponse<Boolean> changeHotStatus(Long id, Boolean isHot);
|
||||
|
||||
/**
|
||||
* 解除指定id的课程和某个标签之间的关联关系
|
||||
@@ -89,4 +84,6 @@ public interface ICourseTagService {
|
||||
List<CourseTag> getTagsByIds(String id);
|
||||
|
||||
CourseTag getTagByName(String tagName);
|
||||
|
||||
void bindTag(String id, String tags);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import javax.management.Query;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.core.orm.*;
|
||||
import com.xboe.module.course.service.ICourseTagService;
|
||||
import com.xboe.school.study.dao.StudyCourseDao;
|
||||
import com.xboe.school.study.entity.StudyCourse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -98,7 +99,8 @@ public class CourseServiceImpl implements ICourseService {
|
||||
|
||||
@Resource
|
||||
private CourseHRBPAuditDao courseHRBPAuditDao;
|
||||
|
||||
@Resource
|
||||
private ICourseTagService courseTagService;
|
||||
|
||||
@Resource
|
||||
private SysLogAuditDao logAuditDao;//审核日志记录
|
||||
@@ -1022,7 +1024,9 @@ public class CourseServiceImpl implements ICourseService {
|
||||
publishUtil.removeByDocId(c.getFullTextId());
|
||||
|
||||
}
|
||||
|
||||
// 添加课程对应的标签
|
||||
String tags = full.getCourse().getTags();
|
||||
courseTagService.bindTag(c.getId(), tags);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.xboe.module.course.service.impl;
|
||||
|
||||
import com.xboe.common.OrderCondition;
|
||||
import com.xboe.common.PageList;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.orm.FieldFilters;
|
||||
import com.xboe.core.orm.IFieldFilter;
|
||||
import com.xboe.core.orm.QueryBuilder;
|
||||
@@ -14,7 +15,6 @@ import com.xboe.module.course.entity.Course;
|
||||
import com.xboe.module.course.entity.CourseTag;
|
||||
import com.xboe.module.course.entity.CourseTagRelation;
|
||||
import com.xboe.module.course.entity.CourseTypeTagRelation;
|
||||
import com.xboe.module.course.service.ICourseService;
|
||||
import com.xboe.module.course.service.ICourseTagService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -40,7 +40,6 @@ public class CourseTagServiceImpl implements ICourseTagService {
|
||||
PublishCourseUtil publishUtil;
|
||||
@Resource
|
||||
private CourseTagRelationDao courseTagRelationDao;
|
||||
|
||||
@Resource
|
||||
private CourseTypeTagRelationDao courseTypeTagRelationDao;
|
||||
@Resource
|
||||
@@ -106,18 +105,32 @@ public class CourseTagServiceImpl implements ICourseTagService {
|
||||
|
||||
/**
|
||||
* 修改指定id的课程标签的热点属性
|
||||
*
|
||||
* @param id
|
||||
* @param isHot
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void changeHotStatus(Long id, Boolean isHot) {
|
||||
public JsonResponse<Boolean> changeHotStatus(Long id, Boolean isHot) {
|
||||
// 当标签切换为热点标签时才会判断,超过十个热点标签则禁止设置
|
||||
JsonResponse<Boolean> objectJsonResponse = new JsonResponse<>();
|
||||
if (isHot){
|
||||
if (courseTagRelationDao.countHotTags()){
|
||||
objectJsonResponse.setStatus(400);
|
||||
objectJsonResponse.setMessage("超过十个热点标签,无法进行设置");
|
||||
objectJsonResponse.setResult(false);
|
||||
return objectJsonResponse;
|
||||
}
|
||||
}
|
||||
CourseTag courseTag = courseTagDao.findOne(FieldFilters.eq("id", String.valueOf(id)));
|
||||
if (courseTag!=null){
|
||||
courseTag.setIsHot(isHot);
|
||||
courseTag.setLastSetHotTime(isHot?LocalDateTime.now():null);
|
||||
courseTagDao.update(courseTag);
|
||||
}
|
||||
objectJsonResponse.setStatus(200);
|
||||
objectJsonResponse.setMessage("修改成功");
|
||||
return objectJsonResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -243,6 +256,32 @@ public class CourseTagServiceImpl implements ICourseTagService {
|
||||
return courseTag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindTag(String id, String tags) {
|
||||
// 将tags转换为数组
|
||||
String[] tagIds = tags.split(",");
|
||||
List<Long> tagIdList = new ArrayList<>();
|
||||
for (String tagId : tagIds){
|
||||
tagIdList.add(Long.valueOf(tagId));
|
||||
}
|
||||
for (Long tagId : tagIdList){
|
||||
// 查询课程是否绑定了标签
|
||||
QueryBuilder query=QueryBuilder.from(CourseTagRelation.class);
|
||||
List<IFieldFilter> filters = new ArrayList<>();
|
||||
filters.add(FieldFilters.eq("courseId",Long.valueOf(id)));
|
||||
filters.add(FieldFilters.eq("tagId",Long.valueOf(tagId)));
|
||||
query.addFilters(filters);
|
||||
List<CourseTagRelation> courseTagRelationList = courseTagRelationDao.findList(query.builder());
|
||||
// 如果没有绑定标签,那么就进行绑定
|
||||
if (courseTagRelationList==null || courseTagRelationList.size()==0){
|
||||
CourseTagRelation courseTagRelation = new CourseTagRelation();
|
||||
courseTagRelation.setTagId(Long.valueOf(tagId));
|
||||
courseTagRelation.setCourseId(Long.valueOf(id));
|
||||
courseTagRelationDao.save(courseTagRelation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public CourseTag getTagByName(String tagName) {
|
||||
CourseTag courseTag = courseTagDao.getTagByName(tagName);
|
||||
|
||||
Reference in New Issue
Block a user