liujunchi 3 gadi atpakaļ
vecāks
revīzija
46cb5ae272
50 mainītis faili ar 974 papildinājumiem un 308 dzēšanām
  1. 16 16
      audio-analysis/src/main/java/com/yonge/audio/AudioAnalysisServerApplication.java
  2. 12 11
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/AuthServerApplication.java
  3. 32 50
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsArticleController.java
  4. 18 2
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsAuthRecordController.java
  5. 1 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsPrivateMessageController.java
  6. 42 62
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsReplyController.java
  7. 3 6
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsArticleDao.java
  8. 2 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsAuthRecordDao.java
  9. 9 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsReplyAuthRecordDao.java
  10. 10 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsReplyDao.java
  11. 2 2
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/MessageReadDto.java
  12. 63 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/ReplyAuditDto.java
  13. 23 11
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsAuthRecordSearch.java
  14. 4 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsPrivateMessageSearch.java
  15. 12 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsReplySearch.java
  16. 6 3
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsArticle.java
  17. 7 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsAuthRecord.java
  18. 103 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsReplyAuthRecord.java
  19. 23 6
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsArticleService.java
  20. 8 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsAuthRecordService.java
  21. 0 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsConfigLabelService.java
  22. 20 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsReplyAuthRecordService.java
  23. 19 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsReplyService.java
  24. 107 4
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsArticleServiceImpl.java
  25. 27 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsAuthRecordServiceImpl.java
  26. 38 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsReplyAuthRecordServiceImpl.java
  27. 30 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsReplyServiceImpl.java
  28. 8 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/valid/OtherGroup.java
  29. 51 30
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsAuthRecordVo.java
  30. 100 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsReplyAuditVo.java
  31. 11 11
      cooleshow-bbs/src/main/resources/config/mybatis/BbsArticleMapper.xml
  32. 22 22
      cooleshow-bbs/src/main/resources/config/mybatis/BbsAuthRecordMapper.xml
  33. 6 0
      cooleshow-bbs/src/main/resources/config/mybatis/BbsReplyAuthRecordMapper.xml
  34. 30 1
      cooleshow-bbs/src/main/resources/config/mybatis/BbsReplyMapper.xml
  35. 4 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/AppConstant.java
  36. 2 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/task/OrderTimeOutCancelTask.java
  37. 3 8
      cooleshow-task/pom.xml
  38. 12 10
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/TaskApplication.java
  39. 0 16
      cooleshow-task/src/main/resources/bootstrap-dev.properties
  40. 3 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java
  41. 18 16
      cooleshow-user/user-biz/pom.xml
  42. 4 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  43. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java
  44. 14 9
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java
  45. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuthRecordServiceImpl.java
  46. 10 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  47. 2 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  48. 2 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  49. 3 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/task/TaskController.java
  50. 3 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

+ 16 - 16
audio-analysis/src/main/java/com/yonge/audio/AudioAnalysisServerApplication.java

@@ -3,6 +3,8 @@ package com.yonge.audio;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.yonge.cooleshow.common.constant.AppConstant;
+import com.yonge.toolset.base.BaseApplication;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -24,28 +26,26 @@ import com.yonge.audio.config.LocalFastJsonHttpMessageConverter;
 @EnableFeignClients("com.yonge.cooleshow")
 @MapperScan(basePackages = {"com.yonge.cooleshow.biz.dal.dao", "com.yonge.toolset.payment.core.dao"})
 @ComponentScan(basePackages = {
-		"com.yonge.netty",  "com.yonge.cooleshow.auth", "com.yonge.cooleshow.biz",
-		"com.yonge.cooleshow.common", "com.yonge.cooleshow.common.security",
-		"com.yonge.toolset.thirdparty", "com.yonge.toolset.payment"
+        "com.yonge.netty", "com.yonge.cooleshow", "com.yonge.toolset"
 })
 @Configuration
 @EnableSwagger2Doc
 public class AudioAnalysisServerApplication {
 
-	public static void main(String[] args) {
-		SpringApplication.run(AudioAnalysisServerApplication.class, args);
-	}
+    public static void main(String[] args) {
+        BaseApplication.run(AppConstant.APPLICATION_AUDIO_ANALYSIS, AudioAnalysisServerApplication.class, args);
+    }
+
+    @Bean
+    @LoadBalanced
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
 
-	@Bean
-	@LoadBalanced
-	public RestTemplate restTemplate() {
-		return new RestTemplate();
-	}
-	
-	@Bean
-    public HttpMessageConverters fastJsonHttpMessageConverters(){
-		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
-        List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
+    @Bean
+    public HttpMessageConverters fastJsonHttpMessageConverters() {
+        LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
+        List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
         fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
         converter.setSupportedMediaTypes(fastMediaTypes);
         return new HttpMessageConverters(converter);

+ 12 - 11
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/AuthServerApplication.java

@@ -1,7 +1,8 @@
 package com.yonge.cooleshow.auth;
 
+import com.yonge.cooleshow.common.constant.AppConstant;
+import com.yonge.toolset.base.BaseApplication;
 import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.client.loadbalancer.LoadBalanced;
@@ -18,19 +19,19 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 @EnableDiscoveryClient
 @EnableFeignClients
 @MapperScan("com.yonge.cooleshow.auth.dal.dao")
-@ComponentScan(basePackages={"com.yonge.cooleshow", "com.yonge.toolset.log","com.yonge.toolset.thirdparty"})
+@ComponentScan(basePackages = {"com.yonge.cooleshow", "com.yonge.toolset"})
 @Configuration
 @EnableSwagger2Doc
 @EnableAsync
 public class AuthServerApplication {
 
-	public static void main(String[] args) {
-		SpringApplication.run(AuthServerApplication.class, args);
-	}
-	
-	@Bean
-	@LoadBalanced
-	public RestTemplate restTemplate(){
-		return new RestTemplate();
-	}
+    public static void main(String[] args) {
+        BaseApplication.run(AppConstant.APPLICATION_AUTH, AuthServerApplication.class, args);
+    }
+
+    @Bean
+    @LoadBalanced
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
 }

+ 32 - 50
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsArticleController.java

@@ -5,25 +5,27 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.bbs.enums.ArticleEnum;
 import com.yonge.cooleshow.bbs.valid.AddGroup;
+import com.yonge.cooleshow.bbs.valid.OtherGroup;
+import com.yonge.cooleshow.bbs.valid.UpdateGroup;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 import com.yonge.toolset.mybatis.support.PageUtil;
-import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
-
 import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
 import com.yonge.cooleshow.bbs.entity.BbsArticle;
 import com.yonge.cooleshow.bbs.service.BbsArticleService;
 
+import java.util.List;
+import java.util.Map;
+
 @RestController
 @RequestMapping("/bbsArticle")
 @Api(value = "文章", tags = "文章")
@@ -34,7 +36,7 @@ public class BbsArticleController extends BaseController {
     private BbsArticleService bbsArticleService;
 
     @PostMapping("/addArticle")
-    @ApiOperation(value = "发布文章")
+    @ApiOperation(value = "详情-发布文章")
     public HttpResponseResult addArticle(@Validated(AddGroup.class) @RequestBody BbsArticle bbsArticle) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
@@ -45,55 +47,35 @@ public class BbsArticleController extends BaseController {
         return succeed();
     }
 
-    /**
-     * 查询单条
-     */
-    @GetMapping("/detail/{id}")
-    @ApiOperation(value = "详情", notes = "传入id")
-    public HttpResponseResult<BbsArticleVo> detail(@PathVariable("id") Long id) {
-        return succeed(bbsArticleService.detail(id));
-    }
-
-    /**
-     * 查询分页
-     */
-    @PostMapping("/page")
-    @ApiOperation(value = "查询分页", notes = "传入bbsArticleSearch")
-    public HttpResponseResult<PageInfo<BbsArticleVo>> page(@RequestBody BbsArticleSearch query) {
-        IPage<BbsArticleVo> pages = bbsArticleService.selectPage(PageUtil.getPage(query), query);
-        return succeed(PageUtil.pageInfo(pages));
-
-    }
-
-    /**
-     * 修改
-     */
-    @PostMapping("/update")
-    @ApiOperation(value = "修改", notes = "传入bbsArticle")
-    public HttpResponseResult update(@Valid @RequestBody BbsArticle bbsArticle) {
-        return status(bbsArticleService.updateById(bbsArticle));
-    }
-
-    /**
-     * 新增或修改
-     */
-    @PostMapping("/submit")
-    @ApiOperation(value = "新增或修改", notes = "传入bbsArticle")
-    public HttpResponseResult submit(@Valid @RequestBody BbsArticle bbsArticle) {
-        return status(bbsArticleService.saveOrUpdate(bbsArticle));
+    @PostMapping("/updateArticle")
+    @ApiOperation(value = "详情-修改文章")
+    public HttpResponseResult updateArticle(@Validated(UpdateGroup.class) @RequestBody BbsArticle bbsArticle) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        bbsArticleService.updateArticle(bbsArticle, user.getId());
+        return succeed();
     }
 
-    /**
-     * 删除
-     */
-    @PostMapping("/remove")
-    @ApiOperation(value = "逻辑删除", notes = "传入ids")
-    public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-        if (StringUtil.isEmpty(ids)) {
-            return failed("参数不能为空");
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "ids", dataType = "List", value = "文章id集合"),
+    })
+    @PostMapping("/deleteArticle")
+    @ApiOperation(value = "详情-删除文章")
+    public HttpResponseResult deleteArticle(@RequestBody Map<String, List<Long>> ids) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        return status(bbsArticleService.removeByIds(StringUtil.toLongList(ids)));
+        bbsArticleService.deleteArticle(ids, user);
+        return succeed();
     }
 
-
+    @PostMapping("/top")
+    @ApiOperation(value = "后台管理-置顶文章")
+    public HttpResponseResult articleTop(@Validated(OtherGroup.class) @RequestBody BbsArticle article) {
+        bbsArticleService.articleTop(article);
+        return succeed();
+    }
 }

+ 18 - 2
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsAuthRecordController.java

@@ -2,8 +2,11 @@ package com.yonge.cooleshow.bbs.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.bbs.dto.search.BbsAuthRecordSearch;
+import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
 import com.yonge.cooleshow.bbs.service.BbsAuthRecordService;
+import com.yonge.cooleshow.bbs.valid.UpdateGroup;
 import com.yonge.cooleshow.bbs.vo.BbsAuthRecordVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -12,9 +15,10 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-
 @RestController
 @RequestMapping("/bbsAuthRecord")
 @Api(value = "文章审核", tags = "文章审核")
@@ -25,9 +29,21 @@ public class BbsAuthRecordController extends BaseController {
     private BbsAuthRecordService bbsAuthRecordService;
 
     @PostMapping("/page")
-    @ApiOperation(value = "查询分页")
+    @ApiOperation(value = "后台管理-审核-查询文章审核列表")
     public HttpResponseResult<PageInfo<BbsAuthRecordVo>> page(@RequestBody BbsAuthRecordSearch query) {
         IPage<BbsAuthRecordVo> pages = bbsAuthRecordService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }
+
+    @PostMapping("/update")
+    @ApiOperation(value = "后台管理-审核-修改文章审核状态")
+    public HttpResponseResult<PageInfo<BbsAuthRecordVo>> updateAuditState(@Validated(UpdateGroup.class) @RequestBody BbsAuthRecord record) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        record.setVerifyUserId(user.getId());
+        bbsAuthRecordService.updateAuditState(record);
+        return succeed();
+    }
 }

+ 1 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsPrivateMessageController.java

@@ -56,7 +56,7 @@ public class BbsPrivateMessageController extends BaseController {
 
 	@PostMapping("/page/message")
 	@ApiOperation(value = "私信人员消息列表", notes = "传入bbsPrivateMessageSearch")
-	public HttpResponseResult<PageInfo<BbsPrivateMessageDto>> pageMessage(@RequestBody BbsPrivateMessageSearch query) {
+	public HttpResponseResult<PageInfo<BbsPrivateMessageDto>> pageMessage(@RequestBody @Valid BbsPrivateMessageSearch query) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (user == null || user.getId() == null) {
 			throw  new BizException("请重新登录");

+ 42 - 62
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsReplyController.java

@@ -1,87 +1,67 @@
 package com.yonge.cooleshow.bbs.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.bbs.dto.ReplyAuditDto;
+import com.yonge.cooleshow.bbs.dto.search.BbsReplySearch;
+import com.yonge.cooleshow.bbs.service.BbsReplyService;
+import com.yonge.cooleshow.bbs.vo.BbsReplyAuditVo;
+import com.yonge.cooleshow.bbs.vo.BbsReplyVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-
+import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
-
 import com.yonge.toolset.utils.string.StringUtil;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 
-import com.yonge.cooleshow.bbs.vo.BbsReplyVo;
-import com.yonge.cooleshow.bbs.dto.search.BbsReplySearch;
-import com.yonge.cooleshow.bbs.entity.BbsReply;
-import com.yonge.cooleshow.bbs.service.BbsReplyService;
-
 @RestController
 @RequestMapping("/bbsReply")
-@Api(value = "文章评论", tags = "文章评论")
+@Api(value = "文章评论", tags = "内容评论")
 public class BbsReplyController extends BaseController {
 
     @Autowired
     private BbsReplyService bbsReplyService;
 
-	/**
-     * 查询单条
-     */
-    @GetMapping("/detail/{id}")
-    @ApiOperation(value = "详情", notes = "传入id")
-    public HttpResponseResult<BbsReplyVo> detail(@PathVariable("id") Long id) {
-    	return succeed(bbsReplyService.detail(id));
-	}
-    
-    /**
-     * 查询分页
-     */
-    @PostMapping("/page")
-    @ApiOperation(value = "查询分页", notes = "传入bbsReplySearch")
-    public HttpResponseResult<PageInfo<BbsReplyVo>> page(@RequestBody BbsReplySearch query) {
-		IPage<BbsReplyVo> pages = bbsReplyService.selectPage(PageUtil.getPage(query), query);
-        return succeed(PageUtil.pageInfo(pages));
-	}
-    
-    /**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperation(value = "新增", notes = "传入bbsReply")
-	public HttpResponseResult save(@Valid @RequestBody BbsReply bbsReply) {
-    	return status(bbsReplyService.save(bbsReply));
-	}
-    
-    /**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperation(value = "修改", notes = "传入bbsReply")
-	public HttpResponseResult update(@Valid @RequestBody BbsReply bbsReply) {
-        return status(bbsReplyService.updateById(bbsReply));
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+
+	@PostMapping("/audit/list")
+	@ApiOperation(value = "后台-评论审核列表")
+	public HttpResponseResult<PageInfo<BbsReplyAuditVo>> auditList(@RequestBody BbsReplySearch query) {
+
+		IPage<BbsReplyAuditVo> pages = bbsReplyService.selectAuditListPage(PageUtil.getPage(query), query);
+		return succeed(PageUtil.pageInfo(pages));
 	}
-    
-    /**
-	 * 新增或修改
-	 */
-    @PostMapping("/submit")
-    @ApiOperation(value = "新增或修改", notes = "传入bbsReply")
-	public HttpResponseResult submit(@Valid @RequestBody BbsReply bbsReply) {
-        return status(bbsReplyService.saveOrUpdate(bbsReply));
-    }
 
- 	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-        if (StringUtil.isEmpty(ids)) {
+	@PostMapping("/remove/{id}")
+	@ApiOperation(value = "后台-评论删除", notes = "传入id")
+	public HttpResponseResult remove(@PathVariable Long id) {
+        if (id != null) {
 			return failed("参数不能为空");
 		}
-		return status(bbsReplyService.removeByIds(StringUtil.toLongList(ids)));
+		return status(bbsReplyService.removeById(id));
+	}
+
+
+
+	@PostMapping("/audit")
+	@ApiOperation(value = "后台-评论审核")
+	public HttpResponseResult audit(@RequestBody @Valid ReplyAuditDto auditDto) {
+
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (user == null || null == user.getId()) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		auditDto.setVerityUserId(user.getId());
+		return status(bbsReplyService.audit(auditDto));
 	}
 }

+ 3 - 6
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsArticleDao.java

@@ -9,7 +9,6 @@ import com.yonge.cooleshow.bbs.entity.BbsArticle;
 import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
 
-
 public interface BbsArticleDao extends BaseMapper<BbsArticle> {
     /**
      * 发布文章
@@ -19,13 +18,11 @@ public interface BbsArticleDao extends BaseMapper<BbsArticle> {
     void addArticle(BbsArticle bbsArticle);
 
     /**
-     * 查询详情
+     * 删除文章
      *
-     * @author liweifan
-     * @date 2022-06-09 17:27:11
-     * @return: com.yonge.cooleshow.bbs.vo.BbsArticleVo
+     * @param list
      */
-    BbsArticleVo detail(@Param("id") Long id);
+    void deleteArticle(List<Long> list);
 
     /**
      * 分页查询

+ 2 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsAuthRecordDao.java

@@ -11,7 +11,8 @@ import java.util.List;
 
 public interface BbsAuthRecordDao extends BaseMapper<BbsAuthRecord> {
     /**
-     * 查询审核列表
+     * 查询文章审核列表
+     *
      * @param page
      * @param bbsArticle
      * @return

+ 9 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsReplyAuthRecordDao.java

@@ -0,0 +1,9 @@
+package com.yonge.cooleshow.bbs.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yonge.cooleshow.bbs.entity.BbsReplyAuthRecord;
+
+
+public interface BbsReplyAuthRecordDao extends BaseMapper<BbsReplyAuthRecord>{
+	
+}

+ 10 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsReplyDao.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.bbs.vo.BbsReplyAuditVo;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.bbs.entity.BbsReply;
 import com.yonge.cooleshow.bbs.vo.BbsReplyVo;
@@ -46,4 +47,13 @@ public interface BbsReplyDao extends BaseMapper<BbsReply> {
 	 * @return
 	 */
 	List<BbsReplyVo> selectReplyPage(@Param("page") IPage<BbsReplyVo> page, @Param("query") BbsReplySearch query);
+
+	/**
+	 * 评论审核列表
+	 *
+	 * @param page
+	 * @param query
+	 * @return
+	 */
+	List<BbsReplyAuditVo> selectAuditListPage(@Param("page") IPage<BbsReplyAuditVo> page, @Param("query") BbsReplySearch query);
 }

+ 2 - 2
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/MessageReadDto.java

@@ -21,13 +21,13 @@ public class MessageReadDto {
     private Long userId;
 
     @ApiModelProperty(value = "私信对象id",required = true)
-    @NotNull(message = "私信对象id不能为空")
+    @NotNull(message = "私信对象id不能为空 ")
     private Long sendUserId;
 
     @ApiModelProperty(value = "阅读时间",required = true)
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @NotNull(message = "阅读时间不能为空")
+    @NotNull(message = "阅读时间不能为空 ")
     private Date readTime;
 
     public Long getUserId() {

+ 63 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/ReplyAuditDto.java

@@ -0,0 +1,63 @@
+package com.yonge.cooleshow.bbs.dto;
+
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-06-13
+ */
+@ApiModel("评论审核信息")
+public class ReplyAuditDto {
+
+    @ApiModelProperty("评论id")
+    @NotNull(message = "评论id不能为空")
+    private Long replyId;
+
+    @ApiModelProperty("审核状态 审核中:DOING,通过:PASS,驳回:REJECT")
+    @NotNull(message = "审核状态不能为空")
+    private ArticleEnum status;
+
+    @ApiModelProperty(value = "审核人id",hidden = true)
+    private Long  verityUserId;
+
+    @ApiModelProperty("审核理由")
+    private String reason;
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Long getReplyId() {
+        return replyId;
+    }
+
+    public void setReplyId(Long replyId) {
+        this.replyId = replyId;
+    }
+
+    public ArticleEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(ArticleEnum status) {
+        this.status = status;
+    }
+
+    public Long getVerityUserId() {
+        return verityUserId;
+    }
+
+    public void setVerityUserId(Long verityUserId) {
+        this.verityUserId = verityUserId;
+    }
+}

+ 23 - 11
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsAuthRecordSearch.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.bbs.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -17,7 +18,10 @@ public class BbsAuthRecordSearch extends QueryInfo {
     private Long labelId;
 
     @ApiModelProperty(value = "审核中:DOING,通过:PASS,驳回:REJECT")
-    private String auditState;
+    private ArticleEnum auditState;
+
+    @ApiModelProperty("0:正常 1:删除")
+    private Boolean delFlag;
 
     @ApiModelProperty(value = "开始时间")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -29,14 +33,6 @@ public class BbsAuthRecordSearch extends QueryInfo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
-    public Long getLabelId() {
-        return labelId;
-    }
-
-    public void setLabelId(Long labelId) {
-        this.labelId = labelId;
-    }
-
     @Override
     public String getSearch() {
         return search;
@@ -47,14 +43,30 @@ public class BbsAuthRecordSearch extends QueryInfo {
         this.search = search;
     }
 
-    public String getAuditState() {
+    public Long getLabelId() {
+        return labelId;
+    }
+
+    public void setLabelId(Long labelId) {
+        this.labelId = labelId;
+    }
+
+    public ArticleEnum getAuditState() {
         return auditState;
     }
 
-    public void setAuditState(String auditState) {
+    public void setAuditState(ArticleEnum auditState) {
         this.auditState = auditState;
     }
 
+    public Boolean getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(Boolean delFlag) {
+        this.delFlag = delFlag;
+    }
+
     public Date getStartTime() {
         return startTime;
     }

+ 4 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsPrivateMessageSearch.java

@@ -4,6 +4,8 @@ import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * @Author: liweifan
  * @Data: 2022-06-09 17:27:11
@@ -15,7 +17,8 @@ public class BbsPrivateMessageSearch extends QueryInfo{
 	@ApiModelProperty(value = "当前用户id",hidden = true)
 	private Long userId;
 
-	@ApiModelProperty("私信对象userid")
+	@ApiModelProperty(value = "私信对象userid",required = true)
+	@NotNull(message = "私信对象不能为空")
 	private Long receiverUserId;
 
 	public Long getUserId() {

+ 12 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsReplySearch.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.bbs.dto.search;
 
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -15,6 +16,9 @@ public class BbsReplySearch extends QueryInfo{
 	@ApiModelProperty(value = "论坛登录用户id",hidden = true)
 	private Long userId;
 
+	@ApiModelProperty("评论审核状态 DOING :审核中,PASS:审核 通过,REJECT:拒绝")
+	private ArticleEnum status;
+
 	public Long getUserId() {
 		return userId;
 	}
@@ -22,4 +26,12 @@ public class BbsReplySearch extends QueryInfo{
 	public void setUserId(Long userId) {
 		this.userId = userId;
 	}
+
+	public ArticleEnum getStatus() {
+		return status;
+	}
+
+	public void setStatus(ArticleEnum status) {
+		this.status = status;
+	}
 }

+ 6 - 3
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsArticle.java

@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.yonge.cooleshow.bbs.enums.ArticleEnum;
 import com.yonge.cooleshow.bbs.enums.YesOrNoEnum;
 import com.yonge.cooleshow.bbs.valid.AddGroup;
+import com.yonge.cooleshow.bbs.valid.OtherGroup;
+import com.yonge.cooleshow.bbs.valid.UpdateGroup;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -28,6 +30,7 @@ public class BbsArticle implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id_", type = IdType.AUTO)
+    @NotNull(groups = {UpdateGroup.class,OtherGroup.class}, message = "文章id不能为空")
     private Long id;
 
     @ApiModelProperty("发布者id")
@@ -36,17 +39,17 @@ public class BbsArticle implements Serializable {
 
     @ApiModelProperty("文章标题")
     @TableField(value = "title_")
-    @NotBlank(groups = {AddGroup.class},message = "标题不能为空")
+    @NotBlank(groups = {AddGroup.class}, message = "标题不能为空")
     private String title;
 
     @ApiModelProperty("文章内容")
     @TableField(value = "content_")
-    @NotBlank(groups = {AddGroup.class},message = "内容不能为空")
+    @NotBlank(groups = {AddGroup.class}, message = "内容不能为空")
     private String content;
 
     @ApiModelProperty("标签id")
     @TableField(value = "label_id_")
-    @NotNull(groups = {AddGroup.class},message = "标签id不能为空")
+    @NotNull(groups = {AddGroup.class}, message = "标签id不能为空")
     private Integer labelId;
 
     @ApiModelProperty("标签名称(冗余字段)")

+ 7 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsAuthRecord.java

@@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import com.yonge.cooleshow.bbs.valid.UpdateGroup;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -21,18 +24,21 @@ public class BbsAuthRecord implements Serializable {
 
     @ApiModelProperty("文章id")
     @TableField(value = "article_id_")
+    @NotNull(groups = {UpdateGroup.class}, message = "文章id不能为空")
     private Long articleId;
 
-    @ApiModelProperty("审核id")
+    @ApiModelProperty("审核id")
     @TableField(value = "verify_user_id_")
     private Long verifyUserId;
 
     @ApiModelProperty("审核中:DOING,通过:PASS,驳回:REJECT")
     @TableField(value = "audit_state_")
+    @NotNull(groups = {UpdateGroup.class}, message = "审核状态不能为空")
     private ArticleEnum auditState;
 
     @ApiModelProperty("审核理由")
     @TableField(value = "reason_")
+    @NotBlank(groups = {UpdateGroup.class}, message = "审核理由不能为空")
     private String reason;
 
     @TableField(value = "created_time_")

+ 103 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsReplyAuthRecord.java

@@ -0,0 +1,103 @@
+package com.yonge.cooleshow.bbs.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 文章审核表
+ */
+@TableName("bbs_reply_auth_record")
+@ApiModel(value = "BbsReplyAuthRecord对象", description = "文章审核表")
+public class BbsReplyAuthRecord implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+    @ApiModelProperty("评论id ")
+    @TableField(value = "reply_id_")
+    private Long replyId;
+    @ApiModelProperty("审核中:DOING,通过:PASS,驳回:REJECT ")
+    @TableField(value = "audit_state_")
+    private ArticleEnum auditState;
+    @ApiModelProperty("审核人 ")
+    @TableField(value = "verify_user_id_")
+    private Long verifyUserId;
+    @ApiModelProperty("审核理由 ")
+    @TableField(value = "reason_")
+    private String reason;
+    @TableField(value = "create_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    @TableField(value = "update_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getReplyId() {
+        return replyId;
+    }
+
+    public void setReplyId(Long replyId) {
+        this.replyId = replyId;
+    }
+
+    public ArticleEnum getAuditState() {
+        return auditState;
+    }
+
+    public void setAuditState(ArticleEnum auditState) {
+        this.auditState = auditState;
+    }
+
+    public Long getVerifyUserId() {
+        return verifyUserId;
+    }
+
+    public void setVerifyUserId(Long verifyUserId) {
+        this.verifyUserId = verifyUserId;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+}

+ 23 - 6
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsArticleService.java

@@ -2,10 +2,14 @@ package com.yonge.cooleshow.bbs.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
 import com.yonge.cooleshow.bbs.entity.BbsArticle;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 文章 服务类
  *
@@ -13,21 +17,34 @@ import com.yonge.cooleshow.bbs.entity.BbsArticle;
  * @date 2022-06-09
  */
 public interface BbsArticleService extends IService<BbsArticle> {
-
     /**
-     * 发布文章
+     * 详情-发布文章
      *
      * @param bbsArticle
      */
     void addArticle(BbsArticle bbsArticle);
 
     /**
-     * 查询详情
+     * 详情-修改文章
      *
-     * @author liweifan
-     * @date 2022-06-09
+     * @param bbsArticle
+     */
+    void updateArticle(BbsArticle bbsArticle, Long userId);
+
+    /**
+     * 详情-删除文章
+     *
+     * @param ids
+     * @param user
+     */
+    void deleteArticle(Map<String, List<Long>> ids, SysUser user);
+
+    /**
+     * 后台管理-置顶文章
+     *
+     * @param article
      */
-    BbsArticleVo detail(Long id);
+    void articleTop(BbsArticle article);
 
     /**
      * 分页查询

+ 8 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsAuthRecordService.java

@@ -8,11 +8,18 @@ import com.yonge.cooleshow.bbs.vo.BbsAuthRecordVo;
 
 public interface BbsAuthRecordService extends IService<BbsAuthRecord> {
     /**
-     * 分页查询
+     * 后台管理-审核-查询文章审核列表
      *
      * @param page
      * @param query
      * @return
      */
     IPage<BbsAuthRecordVo> selectPage(IPage<BbsAuthRecordVo> page, BbsAuthRecordSearch query);
+
+    /**
+     * 后台管理-审核-修改文章审核状态
+     *
+     * @param record
+     */
+    void updateAuditState(BbsAuthRecord record);
 }

+ 0 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsConfigLabelService.java

@@ -15,7 +15,6 @@ import java.util.List;
  * @date 2022-06-09
  */
 public interface BbsConfigLabelService extends IService<BbsConfigLabel> {
-
     /**
      * 查询详情
      *

+ 20 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsReplyAuthRecordService.java

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.bbs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.bbs.dto.ReplyAuditDto;
+import com.yonge.cooleshow.bbs.entity.BbsReplyAuthRecord;
+
+/**
+ * 文章审核表 服务类
+ * @author liweifan
+ * @date 2022-06-13
+ */
+public interface BbsReplyAuthRecordService extends IService<BbsReplyAuthRecord>  {
+
+    /**
+     * 评论审核
+     *
+     * @param auditDto 审核信息
+     */
+    void audit(ReplyAuditDto auditDto);
+}

+ 19 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsReplyService.java

@@ -2,6 +2,8 @@ package com.yonge.cooleshow.bbs.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.bbs.dto.ReplyAuditDto;
+import com.yonge.cooleshow.bbs.vo.BbsReplyAuditVo;
 import com.yonge.cooleshow.bbs.vo.BbsReplyVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsReplySearch;
 import com.yonge.cooleshow.bbs.entity.BbsReply;
@@ -44,4 +46,21 @@ public interface BbsReplyService extends IService<BbsReply>  {
 	 * @return
 	 */
 	IPage<BbsReplyVo> selectReplyPage(IPage<BbsReplyVo> page, BbsReplySearch query);
+
+	/**
+	 * 评论审核列表
+	 *
+	 * @param page 分页
+	 * @param query 查询条件
+	 * @return
+	 */
+	IPage<BbsReplyAuditVo> selectAuditListPage(IPage<BbsReplyAuditVo> page, BbsReplySearch query);
+
+	/**
+	 * 评论审核
+	 *
+	 * @param auditDto 审核信息
+	 * @return
+	 */
+	boolean audit(ReplyAuditDto auditDto);
 }

+ 107 - 4
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsArticleServiceImpl.java

@@ -1,8 +1,17 @@
 package com.yonge.cooleshow.bbs.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.auth.api.enums.SysUserType;
+import com.yonge.cooleshow.bbs.dao.BbsAuthRecordDao;
+import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
 import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import com.yonge.cooleshow.bbs.enums.YesOrNoEnum;
+import com.yonge.toolset.base.exception.BizException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -11,23 +20,117 @@ import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
 import com.yonge.cooleshow.bbs.dao.BbsArticleDao;
 import com.yonge.cooleshow.bbs.service.BbsArticleService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class BbsArticleServiceImpl extends ServiceImpl<BbsArticleDao, BbsArticle> implements BbsArticleService {
     private final static Logger log = LoggerFactory.getLogger(BbsArticleServiceImpl.class);
 
+    @Autowired
+    private BbsAuthRecordDao authRecordDao;
+
+    /**
+     * @Description: 详情-发布文章
+     * @Author: cy
+     * @Date: 2022/6/11
+     */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void addArticle(BbsArticle bbsArticle) {
         //状态为null,默认审核中,否则为草稿
         if (bbsArticle.getStatus() == null) {
             bbsArticle.setStatus(ArticleEnum.DOING);
-        } else bbsArticle.setStatus(ArticleEnum.DRAFT);
-        baseMapper.addArticle(bbsArticle);
+            baseMapper.addArticle(bbsArticle);
+
+            //新增审核记录
+            BbsAuthRecord authRecord = new BbsAuthRecord();
+            authRecord.setVerifyUserId(bbsArticle.getUserId());
+            authRecord.setArticleId(bbsArticle.getId());
+            authRecord.setAuditState(ArticleEnum.DOING);
+            authRecordDao.insert(authRecord);
+        } else {
+            bbsArticle.setStatus(ArticleEnum.DRAFT);
+            baseMapper.addArticle(bbsArticle);
+        }
+    }
+
+    /**
+     * @Description: 详情-修改文章
+     * @Author: cy
+     * @Date: 2022/6/11
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateArticle(BbsArticle bbsArticle, Long userId) {
+        BbsArticle article = baseMapper.selectById(bbsArticle.getId());
+        if (article == null) {
+            throw new BizException("文章不存在");
+        }
+        if (!userId.equals(article.getUserId())) {
+            throw new BizException("只能修改自己的文章");
+        }
+
+        bbsArticle.setStatus(ArticleEnum.DOING);
+        baseMapper.updateById(bbsArticle);
+
+        //删除原审核记录
+        authRecordDao.delete(Wrappers.<BbsAuthRecord>lambdaQuery()
+                .eq(BbsAuthRecord::getArticleId, bbsArticle.getId())
+                .eq(BbsAuthRecord::getAuditState, ArticleEnum.DOING));
+
+        //新增审核记录
+        BbsAuthRecord authRecord = new BbsAuthRecord();
+        authRecord.setVerifyUserId(bbsArticle.getUserId());
+        authRecord.setArticleId(bbsArticle.getId());
+        authRecord.setAuditState(ArticleEnum.DOING);
+        authRecordDao.insert(authRecord);
+    }
+
+    /**
+     * @Description: 详情-删除文章
+     * @Author: cy
+     * @Date: 2022/6/11
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteArticle(Map<String, List<Long>> ids, SysUser user) {
+        List<Long> list = ids.get("ids");
+        if (CollectionUtils.isEmpty(list)) {
+            throw new BizException("文章id不能为空");
+        }
+
+        //当前用户为管理员
+        if (user.getUserType().contains(SysUserType.SYSTEM.getCode())) {
+            baseMapper.deleteArticle(list);
+        } else {
+            List<BbsArticle> articles = baseMapper.selectBatchIds(list);
+            List<Long> idList = articles.stream().map(BbsArticle::getUserId).distinct().collect(Collectors.toList());
+            if (idList.size() != 1 || !user.getId().equals(idList.get(0))) {
+                throw new BizException("无法删除他人文章");
+            }
+            baseMapper.deleteArticle(list);
+        }
     }
 
+    /**
+     * @Description: 后台管理-置顶文章
+     * @Author: cy
+     * @Date: 2022/6/11
+     */
     @Override
-    public BbsArticleVo detail(Long id) {
-        return baseMapper.detail(id);
+    @Transactional(rollbackFor = Exception.class)
+    public void articleTop(BbsArticle article) {
+        BbsArticle bbsArticle = baseMapper.selectById(article.getId());
+        YesOrNoEnum topFlag = bbsArticle.getTopFlag();
+        if (topFlag.getCode() == 0) {
+            article.setTopFlag(YesOrNoEnum.YES);//未置顶 -> 置顶
+        } else {
+            article.setTopFlag(YesOrNoEnum.NO);//置顶 -> 未置顶
+        }
+        baseMapper.updateById(article);
     }
 
     @Override

+ 27 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsAuthRecordServiceImpl.java

@@ -1,22 +1,49 @@
 package com.yonge.cooleshow.bbs.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.bbs.dao.BbsArticleDao;
 import com.yonge.cooleshow.bbs.dao.BbsAuthRecordDao;
 import com.yonge.cooleshow.bbs.dto.search.BbsAuthRecordSearch;
+import com.yonge.cooleshow.bbs.entity.BbsArticle;
 import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
 import com.yonge.cooleshow.bbs.service.BbsAuthRecordService;
 import com.yonge.cooleshow.bbs.vo.BbsAuthRecordVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 @Service
 public class BbsAuthRecordServiceImpl extends ServiceImpl<BbsAuthRecordDao, BbsAuthRecord> implements BbsAuthRecordService {
     private final static Logger log = LoggerFactory.getLogger(BbsAuthRecordServiceImpl.class);
 
+    @Autowired
+    private BbsArticleDao bbsArticleDao;
+
+    /**
+     * @Description: 后台管理-审核-查询文章审核列表
+     * @Author: cy
+     * @Date: 2022/6/11
+     */
     @Override
     public IPage<BbsAuthRecordVo> selectPage(IPage<BbsAuthRecordVo> page, BbsAuthRecordSearch query) {
         return page.setRecords(baseMapper.selectPage(page, query));
     }
+
+    /**
+     * @Description: 后台管理-审核-修改文章审核状态
+     * @Author: cy
+     * @Date: 2022/6/11
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateAuditState(BbsAuthRecord record) {
+        bbsArticleDao.update(null, Wrappers.<BbsArticle>lambdaUpdate()
+                .eq(BbsArticle::getId, record.getArticleId())
+                .set(BbsArticle::getStatus, record.getAuditState()));
+        baseMapper.insert(record);
+    }
 }

+ 38 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsReplyAuthRecordServiceImpl.java

@@ -0,0 +1,38 @@
+package com.yonge.cooleshow.bbs.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.bbs.dao.BbsReplyAuthRecordDao;
+import com.yonge.cooleshow.bbs.dto.ReplyAuditDto;
+import com.yonge.cooleshow.bbs.entity.BbsReplyAuthRecord;
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import com.yonge.cooleshow.bbs.service.BbsReplyAuthRecordService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+
+@Service
+public class BbsReplyAuthRecordServiceImpl extends ServiceImpl<BbsReplyAuthRecordDao, BbsReplyAuthRecord> implements
+        BbsReplyAuthRecordService {
+    private final static Logger log = LoggerFactory.getLogger(BbsReplyAuthRecordServiceImpl.class);
+
+
+    @Override
+    public void audit(ReplyAuditDto auditDto) {
+        this.lambdaUpdate()
+                .eq(BbsReplyAuthRecord::getReplyId, auditDto.getReplyId())
+                .eq(BbsReplyAuthRecord::getAuditState, ArticleEnum.DOING.getCode())
+                .remove();
+        BbsReplyAuthRecord bbsReplyAuthRecord = new BbsReplyAuthRecord();
+
+        bbsReplyAuthRecord.setReplyId(auditDto.getReplyId());
+        bbsReplyAuthRecord.setAuditState(auditDto.getStatus());
+        bbsReplyAuthRecord.setReason(auditDto.getReason());
+        bbsReplyAuthRecord.setCreateTime(new Date());
+        bbsReplyAuthRecord.setVerifyUserId(auditDto.getVerityUserId());
+        bbsReplyAuthRecord.setUpdateTime(new Date());
+        this.save(bbsReplyAuthRecord);
+    }
+}

+ 30 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsReplyServiceImpl.java

@@ -2,6 +2,12 @@ package com.yonge.cooleshow.bbs.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.bbs.dto.ReplyAuditDto;
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import com.yonge.cooleshow.bbs.service.BbsReplyAuthRecordService;
+import com.yonge.cooleshow.bbs.vo.BbsReplyAuditVo;
+import com.yonge.toolset.base.exception.BizException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -16,6 +22,10 @@ import com.yonge.cooleshow.bbs.service.BbsReplyService;
 public class BbsReplyServiceImpl extends ServiceImpl<BbsReplyDao, BbsReply> implements BbsReplyService {
     private final static Logger log = LoggerFactory.getLogger(BbsReplyServiceImpl.class);
 
+
+    @Autowired
+    private BbsReplyAuthRecordService replyAuthRecordService;
+
 	@Override
     public BbsReplyVo detail(Long id) {
         return baseMapper.detail(id);
@@ -36,4 +46,24 @@ public class BbsReplyServiceImpl extends ServiceImpl<BbsReplyDao, BbsReply> impl
         return page.setRecords(baseMapper.selectReplyPage(page, query));
     }
 
+    @Override
+    public IPage<BbsReplyAuditVo> selectAuditListPage(IPage<BbsReplyAuditVo> page, BbsReplySearch query) {
+        return page.setRecords(baseMapper.selectAuditListPage(page, query));
+    }
+
+    @Override
+    public boolean audit(ReplyAuditDto auditDto) {
+        BbsReply bbsReply = this.getById(auditDto.getReplyId());
+        if (bbsReply == null) {
+            throw  new BizException("未找到当前评论信息");
+        }
+        if(!ArticleEnum.DOING.getCode().equals(bbsReply.getStatus().getCode())) {
+            throw  new BizException("评论已经审核");
+        }
+        bbsReply.setStatus(auditDto.getStatus());
+        this.updateById(bbsReply);
+        replyAuthRecordService.audit(auditDto);
+        return true;
+    }
+
 }

+ 8 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/valid/OtherGroup.java

@@ -0,0 +1,8 @@
+package com.yonge.cooleshow.bbs.valid;
+
+/**
+ * @author: cy
+ * @date: 2022/3/31 09:54
+ */
+public interface OtherGroup {
+}

+ 51 - 30
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsAuthRecordVo.java

@@ -1,43 +1,56 @@
 package com.yonge.cooleshow.bbs.vo;
 
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import com.yonge.cooleshow.bbs.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
 import java.util.Date;
 
 @ApiModel
 public class BbsAuthRecordVo implements Serializable {
+    @ApiModelProperty("文章id")
     private Long articleId;
+
+    @ApiModelProperty("文章标题")
     private String title;
+
+    @ApiModelProperty("发布者id")
     private Long userId;
+
+    @ApiModelProperty("发布者昵称")
     private String userName;
+
+    @ApiModelProperty("发布者真实姓名")
     private String realName;
+
+    @ApiModelProperty("发布者手机号")
     private String phone;
+
+    @ApiModelProperty("标签id")
     private Long labelId;
+
+    @ApiModelProperty("标签名")
     private String labelName;
-    private String status;
-    private Integer replyFlag;
+
+    @ApiModelProperty("是否可评论 0:不可评论 1:可评论")
+    private YesOrNoEnum replyFlag;
+
+    @ApiModelProperty("文章发布时间")
     private Date articleCreatedTime;
-    private String auditState;
-    private String reason;
-    private Date createdTime;
-    private Date updatedTime;
 
-    public Date getCreatedTime() {
-        return createdTime;
-    }
+    @ApiModelProperty("审核状态 审核中:DOING,通过:PASS,驳回:REJECT")
+    private ArticleEnum auditState;
 
-    public void setCreatedTime(Date createdTime) {
-        this.createdTime = createdTime;
-    }
+    @ApiModelProperty("审核理由")
+    private String reason;
 
-    public Date getUpdatedTime() {
-        return updatedTime;
-    }
+    @ApiModelProperty("审核时间")
+    private Date createdTime;
 
-    public void setUpdatedTime(Date updatedTime) {
-        this.updatedTime = updatedTime;
-    }
+    @ApiModelProperty("审核更新时间")
+    private Date updatedTime;
 
     public Long getArticleId() {
         return articleId;
@@ -103,19 +116,11 @@ public class BbsAuthRecordVo implements Serializable {
         this.labelName = labelName;
     }
 
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public Integer getReplyFlag() {
+    public YesOrNoEnum getReplyFlag() {
         return replyFlag;
     }
 
-    public void setReplyFlag(Integer replyFlag) {
+    public void setReplyFlag(YesOrNoEnum replyFlag) {
         this.replyFlag = replyFlag;
     }
 
@@ -127,11 +132,11 @@ public class BbsAuthRecordVo implements Serializable {
         this.articleCreatedTime = articleCreatedTime;
     }
 
-    public String getAuditState() {
+    public ArticleEnum getAuditState() {
         return auditState;
     }
 
-    public void setAuditState(String auditState) {
+    public void setAuditState(ArticleEnum auditState) {
         this.auditState = auditState;
     }
 
@@ -142,4 +147,20 @@ public class BbsAuthRecordVo implements Serializable {
     public void setReason(String reason) {
         this.reason = reason;
     }
+
+    public Date getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public Date getUpdatedTime() {
+        return updatedTime;
+    }
+
+    public void setUpdatedTime(Date updatedTime) {
+        this.updatedTime = updatedTime;
+    }
 }

+ 100 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsReplyAuditVo.java

@@ -0,0 +1,100 @@
+package com.yonge.cooleshow.bbs.vo;
+
+import com.yonge.cooleshow.bbs.entity.BbsReply;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.beanutils.BeanUtils;
+
+import java.util.Date;
+
+
+public class BbsReplyAuditVo extends BbsReply {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("话题标题")
+    private String articleTitle;
+
+
+    @ApiModelProperty("评论人昵称")
+    private String userName;
+
+    @ApiModelProperty("评论人真实姓名")
+    private String realName;
+
+    @ApiModelProperty("评论人手机号")
+    private String phone;
+
+    @ApiModelProperty("审核人昵称")
+    private String verifyName;
+
+    @ApiModelProperty("审核理由")
+    private String reason;
+
+    @ApiModelProperty("审核时间")
+    private Date verifyTime;
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getVerifyName() {
+        return verifyName;
+    }
+
+    public void setVerifyName(String verifyName) {
+        this.verifyName = verifyName;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Date getVerifyTime() {
+        return verifyTime;
+    }
+
+    public void setVerifyTime(Date verifyTime) {
+        this.verifyTime = verifyTime;
+    }
+
+    public BbsReplyAuditVo buildVo(BbsReply bbsReply) {
+        try {
+            BeanUtils.copyProperties(this, bbsReply);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return this;
+    }
+
+    public String getArticleTitle() {
+        return articleTitle;
+    }
+
+    public void setArticleTitle(String articleTitle) {
+        this.articleTitle = articleTitle;
+    }
+}

+ 11 - 11
cooleshow-bbs/src/main/resources/config/mybatis/BbsArticleMapper.xml

@@ -42,30 +42,30 @@
         , t.del_flag_ as delFlag
         </sql>
 
-    <insert id="addArticle">
+    <insert id="addArticle" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO bbs_article
         (user_id_,title_,content_,label_id_,label_name_,status_,reply_flag_)
         VALUES(#{userId},#{title},#{content},#{labelId},#{labelName},#{status},#{replyFlag})
     </insert>
-    <select id="detail" resultType="com.yonge.cooleshow.bbs.vo.BbsArticleVo">
-        SELECT
-            <include refid="baseColumns"/>
-        FROM bbs_article t
-        where t.id_ = #{id}
-    </select>
+    <update id="deleteArticle" parameterType="java.util.List">
+        UPDATE bbs_article SET del_flag_=1 WHERE id_ IN
+        <foreach collection="list" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
     <select id="selectPage" resultType="com.yonge.cooleshow.bbs.vo.BbsArticleVo">
 		SELECT         
         	<include refid="baseColumns" />
 		FROM bbs_article t
         <where>
-            <if test="param.status != null and param.status != ''">
-                and #{param.status,jdbcType=VARCHAR} = t.status_
+            <if test="param.status != null ">
+                and #{param.status} = t.status_
             </if>
             <if test="param.search != null and param.search != ''">
                 and t.title_ like  concat('%',#{param.search},'%')
             </if>
             <if test="param.label != null">
-                and t.label_id_ = #{param.label,jdbcType=BIGINT}
+                and t.label_id_ = #{param.label}
             </if>
             <if test="param.userId != null" >
                 and t.user_id_ = #{param.userId}
@@ -74,7 +74,7 @@
                 and t.del_flag_ = #{param.delFlag}
             </if>
         </where>
-        order by
+        order by find_in_set(t.top_flag_,1),
             <if test="param.sort != null">
                 <choose>
                     <when test="param.sort == 'HOT'">

+ 22 - 22
cooleshow-bbs/src/main/resources/config/mybatis/BbsAuthRecordMapper.xml

@@ -11,7 +11,6 @@
         u.phone_ AS phone,
         a.label_id_ AS labelId,
         l.label_name_ AS labelName,
-        a.status_ AS `status`,
         a.reply_flag_ AS replyFlag,
         a.created_time_ AS articleCreatedTime,
         r.audit_state_ AS auditState,
@@ -23,26 +22,27 @@
         LEFT JOIN bbs_auth_record r ON a.id_=r.article_id_
         LEFT JOIN bbs_config_label l ON a.label_id_ = l.id_
         WHERE a.status_ IN ('DOING','PASS','REJECT')
-        <where>
-            <if test="null != param.search and '' != param.search">
-                AND (
-                u.username_ LIKE CONCAT('%', #{param.search}, '%') OR
-                u.phone_ LIKE CONCAT('%', #{param.search}, '%') OR
-                a.title_ LIKE CONCAT('%', #{param.search}, '%')
-                )
-            </if>
-            <if test="param.auditState !=null and param.auditState !=''">
-                AND a.label_id_ = #{param.labelId}
-            </if>
-            <if test="param.auditState !=null and param.auditState !=''">
-                AND r.audit_state_ = #{param.auditState}
-            </if>
-            <if test="param.startTime !=null">
-                <![CDATA[AND a.create_time_ >= #{param.startTime} ]]>
-            </if>
-            <if test="param.endTime !=null">
-                <![CDATA[AND a.create_time_ <= #{param.endTime} ]]>
-            </if>
-        </where>
+        <if test="null != param.search and '' != param.search">
+            AND (
+            u.username_ LIKE CONCAT('%', #{param.search}, '%') OR
+            u.phone_ LIKE CONCAT('%', #{param.search}, '%') OR
+            a.title_ LIKE CONCAT('%', #{param.search}, '%')
+            )
+        </if>
+        <if test="param.labelId !=null">
+            AND a.label_id_ = #{param.labelId}
+        </if>
+        <if test="param.auditState !=null">
+            AND r.audit_state_ = #{param.auditState}
+        </if>
+        <if test="param.delFlag !=null">
+            AND a.del_flag_ = #{param.delFlag}
+        </if>
+        <if test="param.startTime !=null">
+            <![CDATA[AND a.created_time_ >= #{param.startTime} ]]>
+        </if>
+        <if test="param.endTime !=null">
+            <![CDATA[AND a.created_time_ <= #{param.endTime} ]]>
+        </if>
     </select>
 </mapper>

+ 6 - 0
cooleshow-bbs/src/main/resources/config/mybatis/BbsReplyAuthRecordMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yonge.cooleshow.bbs.dao.BbsReplyAuthRecordDao">
+
+
+</mapper>

+ 30 - 1
cooleshow-bbs/src/main/resources/config/mybatis/BbsReplyMapper.xml

@@ -56,7 +56,6 @@
         from bbs_reply br
         left join bbs_article ba on br.article_id = ba.id_
         <where>
-            ba.del_flag_ = 0
             <if test="query.userId != null">
                 and  br.user_id_ = #{query.userId}
             </if>
@@ -86,4 +85,34 @@
         </where>
         order by br.created_time_ desc
     </select>
+
+	<select id="selectAuditListPage" resultType="com.yonge.cooleshow.bbs.vo.BbsReplyAuditVo">
+        select
+        br.id_ as id
+        , br.parent_id_ as parentId
+        , br.article_id as articleId
+        , br.user_id_ as userId
+        , br.content_ as content
+        , br.status_ as status
+        , br.created_time_ as createdTime
+        , br.updated_time_ as updatedTime
+        ,ba.title_ as articleTitle
+        , su.username_ as userName
+        ,su.real_name_ as realName
+        ,su.phone_ as phone
+        ,verify.username_ as verifyName
+        ,brar.reason_ as reason
+        ,brar.update_time_ as verifyTime
+        from bbs_reply br
+        left join bbs_article ba on br.article_id = ba.id_
+        left join bbs_reply_auth_record brar on br.id_ = brar.reply_id_
+        left join sys_user su on br.user_id_ = su.id_
+        left join sys_user verify on verify.id_ = brar.verify_user_id_
+        <where>
+            ba.del_flag_ = 0
+            <if test="query.status != null">
+                and #{query.status} = brar.audit_state_
+            </if>
+        </where>
+    </select>
 </mapper>

+ 4 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/AppConstant.java

@@ -45,5 +45,9 @@ public interface AppConstant {
      * WEBSOCKET
      */
     String APPLICATION_WEBSOCKET = "websocket";
+    /**
+     * 音频分析
+     */
+    String APPLICATION_AUDIO_ANALYSIS = "audio-analysis";
 
 }

+ 2 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/task/OrderTimeOutCancelTask.java

@@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 /**
  * 取消超时订单并解锁库存的定时器
@@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/task")
+@ApiIgnore
 public class OrderTimeOutCancelTask {
     private Logger LOGGER =LoggerFactory.getLogger(OrderTimeOutCancelTask.class);
     @Autowired

+ 3 - 8
cooleshow-task/pom.xml

@@ -33,8 +33,6 @@
 			<artifactId>quartz</artifactId>
 		</dependency>
 
-
-
 		<dependency>
 			<groupId>com.alibaba</groupId>
 			<artifactId>druid-spring-boot-starter</artifactId>
@@ -46,12 +44,9 @@
 		</dependency>
 
 		<dependency>
-			<groupId>mysql</groupId>
-			<artifactId>mysql-connector-java</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.mybatis.spring.boot</groupId>
-			<artifactId>mybatis-spring-boot-starter</artifactId>
+			<groupId>com.yonge.toolset</groupId>
+			<artifactId>toolset-mybatis</artifactId>
+			<version>${project.toolset.version}</version>
 		</dependency>
 
 		<dependency>

+ 12 - 10
cooleshow-task/src/main/java/com/yonge/cooleshow/task/TaskApplication.java

@@ -1,5 +1,7 @@
 package com.yonge.cooleshow.task;
 
+import com.yonge.cooleshow.common.constant.AppConstant;
+import com.yonge.toolset.base.BaseApplication;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -18,19 +20,19 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 @EnableDiscoveryClient
 @EnableFeignClients("com.yonge.cooleshow")
 @MapperScan("com.yonge.cooleshow.task.dal.dao")
-@ComponentScan(basePackages = { "com.yonge.cooleshow.task", "com.yonge.cooleshow.auth", "com.yonge.cooleshow.common", "com.yonge.cooleshow.common.security" })
+@ComponentScan(basePackages = {"com.yonge.cooleshow", "com.yonge.toolset"})
 @Configuration
 @EnableSwagger2Doc
 @EnableAsync
 public class TaskApplication {
 
-	public static void main(String[] args) {
-		SpringApplication.run(TaskApplication.class, args);
-	}
-	
-	@Bean
-	@LoadBalanced
-	public RestTemplate restTemplate(){
-		return new RestTemplate();
-	}
+    public static void main(String[] args) {
+        BaseApplication.run(AppConstant.APPLICATION_TASK, TaskApplication.class, args);
+    }
+
+    @Bean
+    @LoadBalanced
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
 }

+ 0 - 16
cooleshow-task/src/main/resources/bootstrap-dev.properties

@@ -1,16 +0,0 @@
-#\u6307\u5b9a\u5f00\u53d1\u73af\u5883
-#spring.profiles.active=dev
-#\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
-#\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=6f8374a9-598f-4889-bb17-476070ffb8de
-#\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
-spring.cloud.nacos.config.group=DEFAULT_GROUP
-#\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}
-spring.cloud.nacos.config.prefix=task
-#\u6307\u5b9a\u6587\u4ef6\u540e\u7f00
-spring.cloud.nacos.config.file-extension=yaml
-#\u662f\u5426\u52a8\u6001\u5237\u65b0
-spring.cloud.nacos.config.refresh.enabled=true
-#\u662f\u5426\u542f\u7528nacos\u914d\u7f6e\u4e2d\u5fc3
-spring.cloud.nacos.config.enabled=true

+ 3 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java

@@ -3,11 +3,13 @@ package com.yonge.cooleshow.admin.task;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 /**
  * @Author: liweifan
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/task")
+@ApiIgnore
 public class TaskController extends BaseController {
     @Autowired
     private UserOrderService userOrderService;

+ 18 - 16
cooleshow-user/user-biz/pom.xml

@@ -22,26 +22,10 @@
         <dependency>
             <groupId>com.yonge.cooleshow</groupId>
             <artifactId>cooleshow-common</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>thirdparty-component</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>toolset-mybatis</artifactId>
             <version>${project.version}</version>
         </dependency>
 
         <dependency>
-            <groupId>com.yonge.toolset</groupId>
-            <artifactId>toolset-emoji</artifactId>
-            <version>1.0</version>
-        </dependency>
-
-        <dependency>
             <groupId>com.spring4all</groupId>
             <artifactId>swagger-spring-boot-starter</artifactId>
         </dependency>
@@ -81,6 +65,24 @@
 
         <dependency>
             <groupId>com.yonge.toolset</groupId>
+            <artifactId>thirdparty-component</artifactId>
+            <version>${project.toolset.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-mybatis</artifactId>
+            <version>${project.toolset.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-emoji</artifactId>
+            <version>${project.toolset.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
             <artifactId>toolset-payment</artifactId>
             <version>${project.toolset.version}</version>
         </dependency>

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -85,7 +85,10 @@ public interface CourseScheduleStudentPaymentDao extends BaseMapper<CourseSchedu
      * @author zx
      * @date 2022/5/7 16:44
      */
-    void adjustPlayMidiAndMusicSheet(Long scheduleId, Long userId, String content, String musicSheetJson);
+    void adjustPlayMidiAndMusicSheet(@Param("scheduleId") Long scheduleId,
+                                     @Param("userId") Long userId,
+                                     @Param("content") String content,
+                                     @Param("musicSheetJson") String musicSheetJson);
 
     //查询报课学员
     List<CourseScheduleStudentVo> selectUser();

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java

@@ -19,4 +19,11 @@ public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthReco
      * @return boolean
      */
     boolean audit(TeacherMusicSheetAuditReq param, Long userId);
+
+    /**
+     * 设置曲目审核中状态
+     *
+     * @param musicSheetId 曲目id
+     */
+    void setAuditDoing(Long musicSheetId);
 }

+ 14 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java

@@ -25,6 +25,8 @@ import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 /**
@@ -260,6 +262,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     public void pushDownloadMusicSheetMsg(ImNetworkMusicSheetDto musicSheetDto) throws Exception {
         Long courseScheduleId = Optional.ofNullable(musicSheetDto).map(ImNetworkBaseDto::getRoomId).orElseThrow(() -> new BizException("房间编号不能为空"));
         Long accompanimentId = Optional.ofNullable(musicSheetDto).map(ImNetworkMusicSheetDto::getAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
+        log.info("pushDownloadMusicSheetMsg: courseScheduleId:{} ,accompanimentId:{} ,deviceType:{}", courseScheduleId,accompanimentId);
         Long userId = sysUserService.getUserId();
         List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
                 queryBySheetIdAndCourseId(accompanimentId, courseScheduleId, null, null, 0);
@@ -335,6 +338,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
                     deviceType == ImNetworkDeviceTypeEnum.MUSIC_SHEET ||
                     deviceType == ImNetworkDeviceTypeEnum.ACCOMPANIMENT) {
                 List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentService.getDao().queryByCourseId(Long.parseLong(deviceControl.getRoomId()));
+
                 for (CourseScheduleStudentPayment studentPayment : studentPayments) {
                     deviceControl.setUserId(studentPayment.getUserId());
                     controlDevice(deviceControl);
@@ -355,20 +359,21 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void controlDevice(ImNetworkDeviceControlDto deviceControl) throws Exception {
-        log.info("controlDevice in deviceControl = {}", deviceControl);
         SysUser sysUser = sysUserService.getUser();
         String roomId = deviceControl.getRoomId();
         Long userId = deviceControl.getUserId();
-        if(deviceControl.getEnable()){
+        Boolean enable = deviceControl.getEnable();
+        log.info("controlDevice: roomId:{} ,deviceType:{} ,enable:{} ,userId:{}", roomId,deviceControl.getDeviceType(),enable);
+        if(enable){
             long scheduleId = Long.parseLong(roomId);
-            ImNetworkDeviceStateChangedMessage deviceResourceMessage = new ImNetworkDeviceStateChangedMessage(deviceControl.getDeviceType().ordinal(),deviceControl.getEnable());
+            ImNetworkDeviceStateChangedMessage deviceResourceMessage = new ImNetworkDeviceStateChangedMessage(deviceControl.getDeviceType().ordinal(),enable);
             deviceResourceMessage.setUserId(userId.toString());
             switch (deviceControl.getDeviceType()) {
                 case EXAM_SONG:
                     ImNetworkRoomMusicSheetDownloadData msg = courseScheduleStudentPaymentService.getMemberExamSong(scheduleId, userId);
-                    msg.setEnable(deviceControl.getEnable());
+                    msg.setEnable(enable);
                     courseScheduleStudentPaymentService.getDao().adjustExamSong(scheduleId,userId, JSON.toJSONString(msg));
-                    imHelper.publishMessage(userId.toString(), deviceControl.getRoomId(), deviceResourceMessage, 1);
+                    imHelper.publishMessage(userId.toString(), roomId, deviceResourceMessage, 1);
                     break;
                 case MUSIC_SHEET:
                     Integer musicSheetId = Optional.ofNullable(deviceControl.getMusicSheetAccompanimentId()).
@@ -449,7 +454,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void approveControlDevice(ImNetworkDeviceControlDto deviceControl) throws Exception {
-        log.info("approveControlDevice: deviceControl={}", deviceControl);
+        log.info("approveControlDevice: roomId:{} ,deviceType:{} ,enable:{}", deviceControl.getRoomId(),deviceControl.getDeviceType(),deviceControl.getEnable());
         SysUser sysUser = sysUserService.getUser();
         ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(deviceControl.getRoomId(), sysUser.getId())).
                 orElseThrow(()-> new BizException("用户不在房间内"));
@@ -488,7 +493,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deviceStatusSync(ImNetworkDeviceControlDto deviceStatusSync) throws Exception {
-        log.info("deviceStatusSync: deviceStatusSync={}", deviceStatusSync);
+        log.info("deviceStatusSync: enable:{} ,roomId:{} ,deviceType:{}", deviceStatusSync.getEnable(),deviceStatusSync.getRoomId(),deviceStatusSync.getDeviceType());
         Long userId = sysUserService.getUserId();
         ImNetworkDeviceTypeEnum deviceType = deviceStatusSync.getDeviceType();
         ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().
@@ -541,7 +546,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void rejectControlDevice(ImNetworkDeviceControlDto deviceControl) throws Exception {
-        log.info("rejectControlDevice: deviceControl={}", deviceControl);
+        log.info("rejectControlDevice: roomId:{} ,deviceType:{}", deviceControl.getRoomId(),deviceControl.getDeviceType());
         SysUser sysUser = sysUserService.getUser();
         ImNetworkControlDeviceNotifyMessage msg = new ImNetworkControlDeviceNotifyMessage(ImNetworkActionEnum.REJECT.ordinal());
         msg.setType(deviceControl.getDeviceType().ordinal());
@@ -560,7 +565,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         Long roomId = Optional.ofNullable(musicSheetDto).map(ImNetworkBaseDto::getRoomId).orElseThrow(() -> new BizException("房间编号不能为空"));
         Long accompanimentId = Optional.ofNullable(musicSheetDto).map(ImNetworkMusicSheetDto::getAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
         Integer status = Optional.ofNullable(musicSheetDto).map(ImNetworkMusicSheetDto::getStatus).orElseThrow(() -> new BizException("伴奏下载状态不能为空"));
-        log.info("musicSheetDownNotify: musicSheetDto={}", musicSheetDto);
+        log.info("musicSheetDownNotify: roomId:{} ,accompanimentId:{} ,status:{}", roomId,accompanimentId,status);
         Long userId = sysUserService.getUserId();
         List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().queryBySheetIdAndCourseId(accompanimentId, roomId,userId, null, null);
         if(CollectionUtils.isEmpty(studentMusicSheetResults)){

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuthRecordServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAuthRecordDao;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
 import com.yonge.toolset.base.exception.BizException;
 import org.springframework.stereotype.Service;
@@ -22,6 +23,12 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
     @Transactional(rollbackFor = Exception.class)
     public boolean audit(TeacherMusicSheetAuditReq param, Long userId) {
 
+        // 删除审核中的状态
+        this.lambdaUpdate()
+                .eq(MusicSheetAuthRecord::getMusicSheetId,param.getMusicSheetId())
+                .eq(MusicSheetAuthRecord::getAuditState, AuthStatusEnum.DOING.getCode())
+                .remove();
+
         MusicSheetAuthRecord musicSheetAuthRecord = new MusicSheetAuthRecord();
         musicSheetAuthRecord.setMusicSheetId(param.getMusicSheetId());
         musicSheetAuthRecord.setCreateTime(new Date());
@@ -30,4 +37,19 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         musicSheetAuthRecord.setVerifyUserId(userId);
         return this.saveOrUpdate(musicSheetAuthRecord);
     }
+
+    @Override
+    public void setAuditDoing(Long musicSheetId) {
+        List<MusicSheetAuthRecord> list = this.lambdaQuery()
+                                              .eq(MusicSheetAuthRecord::getMusicSheetId, musicSheetId)
+                                              .eq(MusicSheetAuthRecord::getAuditState, AuthStatusEnum.DOING.getCode())
+                                              .list();
+        if (!CollectionUtils.isEmpty(list)) {
+            return;
+        }
+        MusicSheetAuthRecord musicSheetAuthRecord = new MusicSheetAuthRecord();
+        musicSheetAuthRecord.setMusicSheetId(musicSheetId);
+        musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
+        this.saveOrUpdate(musicSheetAuthRecord);
+    }
 }

+ 10 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java

@@ -109,6 +109,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
         musicSheet.setState(YesOrNoEnum.NO);
         this.saveOrUpdate(musicSheet);
 
+        if (AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
+            musicSheetAuthRecordService.setAuditDoing(musicSheet.getId());
+        }
+
         Long sheetId = musicSheet.getId();
         List<MusicSheetAccompaniment> list = musicSheetDto.getBackground();
         list.forEach(musicSheetAccompaniment -> musicSheetAccompaniment.setMusicSheetId(sheetId).setCreateBy(userId).setCreateTime(new Date()));
@@ -376,7 +380,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
             musicSheet.setUpdateTime(new Date());
             musicSheet.setUpdateBy(userId);
             musicSheet.setState(YesOrNoEnum.NO);
-            return this.saveOrUpdate(musicSheet);
+            this.saveOrUpdate(musicSheet);
+            if (AuthStatusEnum.DOING.getCode().equals(musicSheet.getAuditStatus().getCode())) {
+                musicSheetAuthRecordService.setAuditDoing(musicSheet.getId());
+            }
+
+            return true;
         }
     }
 

+ 2 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -64,10 +64,10 @@
         UPDATE course_schedule_student_payment cssp
         <set>
             <if test="content == null or content == ''">
-                cssp.open_play_midi_ = NULL,cssp.updated_time_ = NOW()
+                cssp.open_play_midi_ = NULL,cssp.updated_time_ = NOW(),
             </if>
             <if test="content != null and content != ''">
-                cssp.open_play_midi_ = #{content},cssp.updated_time_ = NOW()
+                cssp.open_play_midi_ = #{content},cssp.updated_time_ = NOW(),
             </if>
             <if test="examSongJson != null">
                 cssp.exam_song_download_json_ = #{examSongJson}

+ 2 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -431,7 +431,7 @@
         ,ms.play_speed_ as playSpeed
         ,ms.music_price_ as musicPrice
         ,ms.create_time_ as createTime
-        ,ms.audit_status_ as auditStatus
+        ,msar.audit_state_ as auditStatus
         ,su2.username_ as auditName
         from music_sheet ms
         left join sys_user su on su.id_ = ms.create_by_
@@ -448,7 +448,7 @@
                 and su2.username_ like concat('%',#{param.auditName},'%')
             </if>
             <if test="param.authStatus != null">
-                and ms.audit_status_ = #{param.authStatus}
+                and msar.audit_state_ = #{param.authStatus}
             </if>
             <if test="param.startTime != null">
                 and ms.create_time_ &gt; #{param.startTime}

+ 3 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/task/TaskController.java

@@ -4,10 +4,12 @@ import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
 
@@ -17,6 +19,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/task")
+@ApiIgnore
 public class TaskController extends BaseController {
     @Autowired
     private StudentTotalService studentTotalService;

+ 3 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

@@ -6,10 +6,12 @@ import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
 
@@ -19,6 +21,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/task")
+@ApiIgnore
 public class TaskController extends BaseController {
     @Autowired
     private TeacherTotalService teacherTotalService;