Commit 987ff803 authored by liuyang's avatar liuyang

fixed bug

parent fd8db1b2
...@@ -43,11 +43,13 @@ public class MainPageTagConfigController { ...@@ -43,11 +43,13 @@ public class MainPageTagConfigController {
@ApiOperation("添加标签") @ApiOperation("添加标签")
@PostMapping("/add") @PostMapping("/add")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR) @RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> add(@RequestBody AddMainPageTagConfigModel model){ public Result<String> add(@RequestBody List<Long> tagIds){
CourseTagPO po = new CourseTagPO(); for (Long tagId : tagIds){
po.setId(model.getTagId()); CourseTagPO po = new CourseTagPO();
po.setRecommend(true); po.setId(tagId);
tagService.updateById(po); po.setRecommend(true);
tagService.updateById(po);
}
return Result.succeed("ok"); return Result.succeed("ok");
} }
@ApiOperation("删除标签") @ApiOperation("删除标签")
......
...@@ -3,7 +3,12 @@ package com.qkdata.biz.management.controller; ...@@ -3,7 +3,12 @@ package com.qkdata.biz.management.controller;
import com.qkdata.biz.common.BizConstants; import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.management.entity.RecommendConfigPO; import com.qkdata.biz.management.entity.RecommendConfigPO;
import com.qkdata.biz.management.service.CourseService;
import com.qkdata.biz.management.service.RecommendConfigService; import com.qkdata.biz.management.service.RecommendConfigService;
import com.qkdata.biz.management.vo.CourseListItemModel;
import com.qkdata.biz.management.vo.QueryCourseModel;
import com.qkdata.biz.management.vo.RecommendConfigModel;
import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.base.model.Result; import com.qkdata.common.base.model.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -13,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -13,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
...@@ -29,18 +35,33 @@ public class RecommendConfigController { ...@@ -29,18 +35,33 @@ public class RecommendConfigController {
@Autowired @Autowired
private RecommendConfigService configService; private RecommendConfigService configService;
@Autowired
private CourseService courseService;
@ApiOperation("待选课程列表")
@PostMapping("/select")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public PageResult<CourseListItemModel> select(@RequestBody QueryCourseModel model){
List<RecommendConfigPO> list = configService.list();
List<Long> courseIds = list.stream().map(RecommendConfigPO::getCourseId).collect(Collectors.toList());
model.setNotInIdList(courseIds);
return courseService.queryPageList(model);
}
@ApiOperation("获取推荐列表") @ApiOperation("获取推荐列表")
@GetMapping("/list") @GetMapping("/list")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR) @RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<List<RecommendConfigPO>> list(){ public Result<List<RecommendConfigModel>> list(){
return Result.succeed(configService.list()); return Result.succeed(configService.listConfig());
} }
@ApiOperation("添加推荐") @ApiOperation("添加推荐")
@PostMapping("/add") @PostMapping("/add")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR) @RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> add(@RequestBody RecommendConfigPO po){ public Result<String> add(@RequestBody List<RecommendConfigPO> list){
configService.save(po); for (RecommendConfigPO po : list){
configService.save(po);
}
return Result.succeed("ok"); return Result.succeed("ok");
} }
@ApiOperation("删除推荐") @ApiOperation("删除推荐")
......
package com.qkdata.biz.management.mapper; package com.qkdata.biz.management.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.enums.CourseStatusEnum; import com.qkdata.biz.enums.CourseStatusEnum;
import com.qkdata.biz.management.entity.CoursePO; import com.qkdata.biz.management.entity.CoursePO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qkdata.biz.management.vo.CourseAllowEnterpriseModel; import com.qkdata.biz.management.vo.CourseAllowEnterpriseModel;
import com.qkdata.biz.management.vo.CourseAttachmentModel; import com.qkdata.biz.management.vo.CourseAttachmentModel;
import com.qkdata.biz.management.vo.CourseListItemModel; import com.qkdata.biz.management.vo.CourseListItemModel;
...@@ -34,5 +34,9 @@ public interface CourseMapper extends BaseMapper<CoursePO> { ...@@ -34,5 +34,9 @@ public interface CourseMapper extends BaseMapper<CoursePO> {
List<CourseAllowEnterpriseModel> selectOrgListByCourseId(Long id); List<CourseAllowEnterpriseModel> selectOrgListByCourseId(Long id);
List<SearchCourseResultModel> searchPageList(Page page, @Param("p") SearchCourseConditionModel model,@Param("enterpriseId") Long enterpriseId); List<SearchCourseResultModel> searchPageList(Page page, @Param("p") SearchCourseConditionModel model);
List<SearchCourseResultModel> recommendList(Page page, @Param("p") SearchCourseConditionModel model);
List<CoursePO> findListByTags(List<Long> tagIds);
} }
package com.qkdata.biz.management.mapper; package com.qkdata.biz.management.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.management.entity.CourseTagPO; import com.qkdata.biz.management.entity.CourseTagPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qkdata.biz.management.vo.CourseTagsModel;
import com.qkdata.biz.management.vo.QueryCourseTagModel; import com.qkdata.biz.management.vo.QueryCourseTagModel;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -22,5 +23,5 @@ public interface CourseTagMapper extends BaseMapper<CourseTagPO> { ...@@ -22,5 +23,5 @@ public interface CourseTagMapper extends BaseMapper<CourseTagPO> {
List<CourseTagPO> queryPageList(Page page, @Param("p") QueryCourseTagModel param); List<CourseTagPO> queryPageList(Page page, @Param("p") QueryCourseTagModel param);
List<CourseTagPO> selectListByCourseId(Long courseId); List<CourseTagsModel> selectListByCourseId(Long courseId);
} }
package com.qkdata.biz.management.mapper; package com.qkdata.biz.management.mapper;
import com.qkdata.biz.management.entity.RecommendConfigPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qkdata.biz.management.entity.RecommendConfigPO;
import com.qkdata.biz.management.vo.RecommendConfigModel; import com.qkdata.biz.management.vo.RecommendConfigModel;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.management.entity.CourseTagPO; import com.qkdata.biz.management.entity.CourseTagPO;
import com.qkdata.biz.management.mapper.CourseTagMapper; import com.qkdata.biz.management.mapper.CourseTagMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qkdata.biz.management.vo.CourseTagsModel;
import com.qkdata.biz.management.vo.QueryCourseTagModel; import com.qkdata.biz.management.vo.QueryCourseTagModel;
import com.qkdata.common.base.enums.CodeEnum; import com.qkdata.common.base.enums.CodeEnum;
import com.qkdata.common.base.model.PageResult; import com.qkdata.common.base.model.PageResult;
...@@ -28,7 +29,7 @@ public class CourseTagService extends ServiceImpl<CourseTagMapper, CourseTagPO> ...@@ -28,7 +29,7 @@ public class CourseTagService extends ServiceImpl<CourseTagMapper, CourseTagPO>
return PageResult.<CourseTagPO>builder().code(CodeEnum.SUCCESS.getCode()).count(page.getTotal()).data(pageList).build(); return PageResult.<CourseTagPO>builder().code(CodeEnum.SUCCESS.getCode()).count(page.getTotal()).data(pageList).build();
} }
public List<CourseTagPO> findListByCourseId(Long courseId) { public List<CourseTagsModel> findListByCourseId(Long courseId) {
return baseMapper.selectListByCourseId(courseId); return baseMapper.selectListByCourseId(courseId);
} }
} }
\ No newline at end of file
package com.qkdata.biz.management.service; package com.qkdata.biz.management.service;
import cn.hutool.core.collection.CollUtil;
import com.aliyuncs.exceptions.ClientException;
import com.google.common.collect.Lists;
import com.qkdata.biz.enums.CourseAllowEnum;
import com.qkdata.biz.management.entity.CourseTagPO;
import com.qkdata.biz.management.entity.RecommendConfigPO; import com.qkdata.biz.management.entity.RecommendConfigPO;
import com.qkdata.biz.management.entity.ResourcePO;
import com.qkdata.biz.management.mapper.RecommendConfigMapper; import com.qkdata.biz.management.mapper.RecommendConfigMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qkdata.biz.management.vo.CourseChaperModel;
import com.qkdata.biz.management.vo.RecommendConfigModel; import com.qkdata.biz.management.vo.RecommendConfigModel;
import com.qkdata.biz.management.vo.VideoInfoModel;
import com.qkdata.biz.sys.service.SysUserService;
import com.qkdata.biz.web.vo.FullUserInfo;
import com.qkdata.common.util.UserContext;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -32,52 +20,11 @@ import java.util.List; ...@@ -32,52 +20,11 @@ import java.util.List;
@Slf4j @Slf4j
@Service @Service
public class RecommendConfigService extends ServiceImpl<RecommendConfigMapper, RecommendConfigPO> { public class RecommendConfigService extends ServiceImpl<RecommendConfigMapper, RecommendConfigPO> {
@Autowired
private CourseService courseService;
@Autowired
private ResourceService resourceService;
@Autowired
private CourseTagService tagService;
@Autowired
private SysUserService sysUserService;
public List<RecommendConfigModel> listConfig() { public List<RecommendConfigModel> listConfig() {
List<RecommendConfigModel> modelList = baseMapper.listConfig(); List<RecommendConfigModel> modelList = baseMapper.listConfig();
List<RecommendConfigModel> resultList = Lists.newArrayList();
for (RecommendConfigModel model : modelList){
if (model.getAllow() == CourseAllowEnum.SPECIFY){
List<Long> orgIds = courseService.getAllowEnterpriseList(model.getCourseId());
String username = UserContext.getUser().getUsername();
FullUserInfo userInfo = sysUserService.findFullUserInfo(username);
boolean hasPerm = false;
for (Long orgId : orgIds){
if (userInfo.getEnterpriseId() != null){
if (orgId.longValue() == userInfo.getEnterpriseId().longValue()){
hasPerm = true;
break;
}
}
}
if (hasPerm){
resultList.add(model);
}else {
continue;
}
}else {
resultList.add(model);
}
List<CourseChaperModel> chaperList = courseService.chaperList(model.getCourseId());
if (CollUtil.isNotEmpty(chaperList)){
CourseChaperModel chaperModel = chaperList.get(0);
ResourcePO resourcePO = resourceService.getById(chaperModel.getResourceId());
if (resourcePO != null){
model.setDuration(resourcePO.getVideoDuration());
} return modelList;
}
List<CourseTagPO> tagList = tagService.findListByCourseId(model.getCourseId());
model.setTags(tagList);
}
return resultList;
} }
} }
\ No newline at end of file
package com.qkdata.biz.management.vo; package com.qkdata.biz.management.vo;
import com.qkdata.biz.enums.CourseAllowEnum;
import com.qkdata.biz.enums.CourseChargeModelEnum; import com.qkdata.biz.enums.CourseChargeModelEnum;
import com.qkdata.biz.enums.CourseStatusEnum; import com.qkdata.biz.enums.CourseStatusEnum;
import com.qkdata.common.constants.Constants; import com.qkdata.common.constants.Constants;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class QueryCourseModel { public class QueryCourseModel {
private int pageIndex = Constants.DEFAULT_PAGE; private int pageIndex = Constants.DEFAULT_PAGE;
...@@ -25,4 +28,12 @@ public class QueryCourseModel { ...@@ -25,4 +28,12 @@ public class QueryCourseModel {
* 课程状态 * 课程状态
*/ */
private CourseStatusEnum status; private CourseStatusEnum status;
/**
* 可见范围
*/
private CourseAllowEnum allow;
/**
* 不包含课程ID列表
*/
private List<Long> notInIdList;
} }
package com.qkdata.biz.management.vo; package com.qkdata.biz.management.vo;
import com.qkdata.biz.enums.CourseAllowEnum;
import com.qkdata.biz.enums.CourseChargeModelEnum;
import com.qkdata.biz.management.entity.CourseTagPO;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class RecommendConfigModel { public class RecommendConfigModel {
/** private Long id;
* 课程ID
*/
private Long courseId; private Long courseId;
/**
* 课程名称
*/
private String courseName; private String courseName;
/**
* 课程封面url
*/
private String courseLogoUrl; private String courseLogoUrl;
/**
* 收费模式
*/
private CourseChargeModelEnum chargeModel;
/**
* 视频时长
*/
private Float duration;
/**
* 标签
*/
private List<CourseTagPO> tags;
/**
* 可见范围
*/
private CourseAllowEnum allow;
} }
...@@ -5,6 +5,7 @@ import lombok.Data; ...@@ -5,6 +5,7 @@ import lombok.Data;
@Data @Data
public class SwiperConfigModel { public class SwiperConfigModel {
private Long id;
/** /**
* 封面图片url * 封面图片url
*/ */
......
...@@ -10,7 +10,6 @@ import com.qkdata.biz.management.service.CourseTagService; ...@@ -10,7 +10,6 @@ import com.qkdata.biz.management.service.CourseTagService;
import com.qkdata.biz.management.service.RecommendConfigService; import com.qkdata.biz.management.service.RecommendConfigService;
import com.qkdata.biz.management.service.SwiperConfigService; import com.qkdata.biz.management.service.SwiperConfigService;
import com.qkdata.biz.management.vo.CourseDetailModel; import com.qkdata.biz.management.vo.CourseDetailModel;
import com.qkdata.biz.management.vo.RecommendConfigModel;
import com.qkdata.biz.management.vo.SwiperConfigModel; import com.qkdata.biz.management.vo.SwiperConfigModel;
import com.qkdata.biz.web.service.UserCenterService; import com.qkdata.biz.web.service.UserCenterService;
import com.qkdata.biz.web.vo.MainPageModel; import com.qkdata.biz.web.vo.MainPageModel;
...@@ -52,14 +51,18 @@ public class MainPageController { ...@@ -52,14 +51,18 @@ public class MainPageController {
public Result<MainPageModel> get(){ public Result<MainPageModel> get(){
List<SwiperConfigModel> swiperConfigModels = swiperConfigService.listConfig(SwiperStatusEnum.ENABLE); List<SwiperConfigModel> swiperConfigModels = swiperConfigService.listConfig(SwiperStatusEnum.ENABLE);
List<CourseTagPO> tagList = courseTagService.list(Wrappers.<CourseTagPO>lambdaQuery().eq(CourseTagPO::getRecommend,true)); List<CourseTagPO> tagList = courseTagService.list(Wrappers.<CourseTagPO>lambdaQuery().eq(CourseTagPO::getRecommend,true));
List<RecommendConfigModel> recommendConfigList = recommendConfigService.listConfig();
MainPageModel model = new MainPageModel(); MainPageModel model = new MainPageModel();
model.setTags(tagList); model.setTags(tagList);
model.setSwiperConfigs(swiperConfigModels); model.setSwiperConfigs(swiperConfigModels);
model.setRecommendConfigs(recommendConfigList);
return Result.succeed(model); return Result.succeed(model);
} }
@ApiOperation("首页推存课程列表")
@PostMapping("/course/recommend/list")
@RequiresRoles(value = {BizConstants.ROLE_USER,BizConstants.ROLE_ENTERPRISE_ADMIN},logical = Logical.OR)
public PageResult<SearchCourseResultModel> recommendCourseList(@RequestBody SearchCourseConditionModel model){
return courseService.mainPageRecommendList(model);
}
@ApiOperation("搜索课程") @ApiOperation("搜索课程")
@PostMapping("/course/search") @PostMapping("/course/search")
...@@ -77,11 +80,11 @@ public class MainPageController { ...@@ -77,11 +80,11 @@ public class MainPageController {
return Result.succeed(tags); return Result.succeed(tags);
} }
@ApiOperation("获取推荐课程") @ApiOperation("详情页关联课程推荐")
@GetMapping("/course/recommend/{courseId}") @GetMapping("/course/recommend/{courseId}")
@RequiresRoles(value = {BizConstants.ROLE_USER,BizConstants.ROLE_ENTERPRISE_ADMIN},logical = Logical.OR) @RequiresRoles(value = {BizConstants.ROLE_USER,BizConstants.ROLE_ENTERPRISE_ADMIN},logical = Logical.OR)
public Result<List<RecommendConfigModel>> courseRecommend(Long courseId){ public Result<List<SearchCourseResultModel>> courseRecommend(Long courseId){
List<RecommendConfigModel> list = courseService.recommend(courseId); List<SearchCourseResultModel> list = courseService.relationRecommend(courseId);
return Result.succeed(list); return Result.succeed(list);
} }
......
package com.qkdata.biz.web.vo; package com.qkdata.biz.web.vo;
import com.qkdata.biz.management.entity.CourseTagPO; import com.qkdata.biz.management.entity.CourseTagPO;
import com.qkdata.biz.management.vo.RecommendConfigModel;
import com.qkdata.biz.management.vo.SwiperConfigModel; import com.qkdata.biz.management.vo.SwiperConfigModel;
import lombok.Data; import lombok.Data;
...@@ -11,5 +10,4 @@ import java.util.List; ...@@ -11,5 +10,4 @@ import java.util.List;
public class MainPageModel { public class MainPageModel {
List<SwiperConfigModel> swiperConfigs; List<SwiperConfigModel> swiperConfigs;
List<CourseTagPO> tags; List<CourseTagPO> tags;
List<RecommendConfigModel> recommendConfigs;
} }
...@@ -28,6 +28,15 @@ ...@@ -28,6 +28,15 @@
<if test="p.status != null"> <if test="p.status != null">
AND c.`status` = #{p.status} AND c.`status` = #{p.status}
</if> </if>
<if test="p.allow != null">
and c.allow = #{p.allow}
</if>
<if test="p.notInIdList != null and p.notInIdList.size > 0">
and c.id not in
<foreach collection="p.notInIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
ORDER BY c.create_time DESC ORDER BY c.create_time DESC
</select> </select>
...@@ -50,48 +59,52 @@ ...@@ -50,48 +59,52 @@
WHERE r.course_id = #{id} WHERE r.course_id = #{id}
</select> </select>
<select id="searchPageList" resultType="com.qkdata.biz.web.vo.SearchCourseResultModel"> <select id="searchPageList" resultType="com.qkdata.biz.web.vo.SearchCourseResultModel">
SELECT SELECT DISTINCT
* c.id course_id,
c.`name` course_name,
c.charge_model,
c.logo_url course_logo_url,
c.teacher_id
FROM FROM
( course c
SELECT LEFT JOIN course_tag_rel r on c.id = r.course_id
c.id course_id, WHERE
c.`name` course_name, c.is_del = 0
c.charge_model, AND c.allow = 'ALL'
c.logo_url course_logo_url, AND c.`status` = 'UP'
c.teacher_id
FROM
course c
WHERE
c.is_del = 0
AND c.allow = 'ALL'
and c.status = 'UP'
UNION
SELECT
c.id course_id,
c.`name` course_name,
c.charge_model,
c.logo_url course_logo_url,
c.teacher_id
FROM
course c
INNER JOIN allow_org_course o ON c.id = o.course_id
WHERE
c.is_del = 0
and c.status = 'UP'
AND c.allow = 'SPECIFY'
AND o.org_id = #{enterpriseId}
) tmp
LEFT JOIN course_tag_rel r on tmp.course_id = r.course_id
WHERE 1= 1
<if test="p.courseName != null and p.courseName != ''"> <if test="p.courseName != null and p.courseName != ''">
and tmp.course_name like concat ('%',#{p.courseName},'%') and c.`name` like concat ('%',#{p.courseName},'%')
</if> </if>
<if test="p.tagId != null"> <if test="p.tagId != null">
and r.tag_id = #{p.tagId} and r.tag_id = #{p.tagId}
</if> </if>
<if test="p.teacherId != null"> <if test="p.teacherId != null">
and tmp.teacher_id = #{p.teacherId} and c.teacher_id = #{p.teacherId}
</if> </if>
</select> </select>
<select id="recommendList" resultType="com.qkdata.biz.web.vo.SearchCourseResultModel">
SELECT c.id course_id,
c.`name` course_name,
c.logo_url course_logo_url,
c.charge_model,
c.allow
from course c
LEFT JOIN recommend_config r on r.course_id = c.id
WHERE c.is_del = 0
and c.`status` = 'UP'
and c.allow = 'ALL'
ORDER BY r.sort_no ASC,c.create_time DESC
</select>
<select id="findListByTags" resultType="com.qkdata.biz.management.entity.CoursePO">
SELECT c.*
FROM course c
INNER JOIN course_tag_rel r on c.id = r.course_id
WHERE c.is_del = 0
and c.`status` = 'UP'
and c.allow = 'ALL'
and r.tag_id in
<foreach collection="tagIds" item="tagId" open="(" close=")" separator=",">
#{tagId}
</foreach>
</select>
</mapper> </mapper>
...@@ -12,8 +12,10 @@ ...@@ -12,8 +12,10 @@
and recommend = 0 and recommend = 0
</if> </if>
</select> </select>
<select id="selectListByCourseId" resultType="com.qkdata.biz.management.entity.CourseTagPO"> <select id="selectListByCourseId" resultType="com.qkdata.biz.management.vo.CourseTagsModel">
select t.* select t.id tag_id,
t.`name` tag_name,
r.course_id
from course_tag t from course_tag t
inner join course_tag_rel r on t.id = r.tag_id inner join course_tag_rel r on t.id = r.tag_id
where r.course_id = #{courseId} where r.course_id = #{courseId}
......
...@@ -3,14 +3,12 @@ ...@@ -3,14 +3,12 @@
<mapper namespace="com.qkdata.biz.management.mapper.RecommendConfigMapper"> <mapper namespace="com.qkdata.biz.management.mapper.RecommendConfigMapper">
<select id="listConfig" resultType="com.qkdata.biz.management.vo.RecommendConfigModel"> <select id="listConfig" resultType="com.qkdata.biz.management.vo.RecommendConfigModel">
SELECT c.id course_id, SELECT r.id,
c.id course_id,
c.`name` course_name, c.`name` course_name,
c.charge_model, c.logo_url course_logo_url
c.logo_url course_logo_url, from course c
c.allow INNER JOIN recommend_config r on c.id = r.course_id
from recommend_config cfg
INNER JOIN course c on cfg.course_id = c.id
and c.status = 'UP'
ORDER BY cfg.sort_no ASC
</select> </select>
</mapper> </mapper>
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
s.`name` course_name s.`name` course_name
from swiper_config c from swiper_config c
INNER JOIN course s on c.course_id = s.id INNER JOIN course s on c.course_id = s.id
and s.status = 'UP'
<if test="status != null"> <if test="status != null">
and c.status = #{status} and c.status = #{status}
</if> </if>
......
package com.qkdata.autogenerator;
import cn.hutool.core.util.RandomUtil;
public class Test {
public static void main(String[] args) {
System.out.println(RandomUtil.randomString(32));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment