瀏覽代碼

Merge remote-tracking branch 'origin/master'

liweifan 3 年之前
父節點
當前提交
a4f32490ee
共有 36 個文件被更改,包括 481 次插入147 次删除
  1. 17 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsArticleController.java
  2. 17 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsCollectController.java
  3. 17 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsFollowController.java
  4. 15 63
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsLikeController.java
  5. 13 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsReplyController.java
  6. 11 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsArticleDao.java
  7. 2 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsReplyDao.java
  8. 20 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsReplySearch.java
  9. 5 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsReply.java
  10. 12 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsArticleService.java
  11. 2 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsCollectService.java
  12. 2 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsFollowService.java
  13. 4 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsLikeService.java
  14. 6 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsReplyService.java
  15. 43 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsArticleServiceImpl.java
  16. 14 3
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsAuthRecordServiceImpl.java
  17. 23 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsCollectServiceImpl.java
  18. 31 5
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsFollowServiceImpl.java
  19. 23 1
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsLikeServiceImpl.java
  20. 43 8
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsReplyServiceImpl.java
  21. 25 7
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsArticleVo.java
  22. 35 7
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsReplyVo.java
  23. 46 0
      cooleshow-bbs/src/main/resources/config/mybatis/BbsArticleMapper.xml
  24. 3 0
      cooleshow-bbs/src/main/resources/config/mybatis/BbsReplyMapper.xml
  25. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysUserServiceImpl.java
  26. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeStatisticalVo.java
  27. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberAuditMapper.xml
  28. 7 9
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  29. 3 6
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java
  30. 3 3
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupNoticeController.java
  31. 4 5
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java
  32. 6 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherHomeController.java
  33. 12 5
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/MusicAlbumController.java
  34. 0 7
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/MusicSheetController.java
  35. 4 4
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicAlbumController.java
  36. 0 8
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicSheetController.java

+ 17 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsArticleController.java

@@ -3,10 +3,13 @@ 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.BbsReplySearch;
 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.cooleshow.bbs.vo.BbsAuthRecordVo;
+import com.yonge.cooleshow.bbs.vo.BbsReplyVo;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -23,6 +26,7 @@ import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
 import com.yonge.cooleshow.bbs.entity.BbsArticle;
 import com.yonge.cooleshow.bbs.service.BbsArticleService;
 
+import javax.validation.constraints.NotNull;
 import java.util.List;
 import java.util.Map;
 
@@ -78,4 +82,17 @@ public class BbsArticleController extends BaseController {
         bbsArticleService.articleTop(article);
         return succeed();
     }
+
+    @GetMapping("/info")
+    @ApiOperation(value = "详情-文章")
+    public HttpResponseResult<BbsArticleVo> articleInfo(@NotNull Long articleId) {
+        return succeed(bbsArticleService.articleInfo(articleId));
+    }
+
+    @PostMapping("/reply")
+    @ApiOperation(value = "详情-文章评论列表")
+    public HttpResponseResult<PageInfo<BbsReplyVo>> articleReply(@RequestBody BbsReplySearch query) {
+        IPage<BbsReplyVo> pages =bbsArticleService.articleReply(PageUtil.getPage(query), query);
+        return succeed(PageUtil.pageInfo(pages));
+    }
 }

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

@@ -1,6 +1,8 @@
 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.toolset.base.page.PageInfo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -10,9 +12,11 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
 
 import com.yonge.cooleshow.bbs.vo.BbsCollectVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsCollectSearch;
@@ -23,10 +27,22 @@ import com.yonge.cooleshow.bbs.service.BbsCollectService;
 @RequestMapping("/bbsCollect")
 @Api(value = "收藏", tags = "收藏")
 public class BbsCollectController extends BaseController {
-
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
     @Autowired
     private BbsCollectService bbsCollectService;
 
+	@GetMapping("/collect")
+	@ApiOperation(value = "详情-收藏/取消收藏")
+	public HttpResponseResult collect(@NotNull Long articleId) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (user == null || null == user.getId()) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		bbsCollectService.collect(user.getId(), articleId);
+		return succeed();
+	}
+
 	/**
      * 查询单条
      */

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

@@ -1,6 +1,8 @@
 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.toolset.base.page.PageInfo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -10,9 +12,11 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
 
 import com.yonge.cooleshow.bbs.vo.BbsFollowVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsFollowSearch;
@@ -23,9 +27,21 @@ import com.yonge.cooleshow.bbs.service.BbsFollowService;
 @RequestMapping("/bbsFollow")
 @Api(value = "关注", tags = "关注")
 public class BbsFollowController extends BaseController {
-
     @Autowired
     private BbsFollowService bbsFollowService;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@GetMapping("/follow")
+	@ApiOperation(value = "详情-关注/取消关注")
+	public HttpResponseResult follow(@NotNull Long followId) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (user == null || null == user.getId()) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		bbsFollowService.follow(user.getId(), followId);
+		return succeed();
+	}
 
 	/**
      * 查询单条

+ 15 - 63
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsLikeController.java

@@ -1,7 +1,7 @@
 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.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
@@ -10,78 +10,30 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
 
-import com.yonge.cooleshow.bbs.vo.BbsLikeVo;
-import com.yonge.cooleshow.bbs.dto.search.BbsLikeSearch;
-import com.yonge.cooleshow.bbs.entity.BbsLike;
 import com.yonge.cooleshow.bbs.service.BbsLikeService;
 
 @RestController
 @RequestMapping("/bbsLike")
 @Api(value = "点赞", tags = "点赞")
 public class BbsLikeController extends BaseController {
-
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
     @Autowired
     private BbsLikeService bbsLikeService;
 
-	/**
-     * 查询单条
-     */
-    @GetMapping("/detail/{id}")
-    @ApiOperation(value = "详情", notes = "传入id")
-    public HttpResponseResult<BbsLikeVo> detail(@PathVariable("id") Long id) {
-    	return succeed(bbsLikeService.detail(id));
-	}
-    
-    /**
-     * 查询分页
-     */
-    @PostMapping("/page")
-    @ApiOperation(value = "查询分页", notes = "传入bbsLikeSearch")
-    public HttpResponseResult<PageInfo<BbsLikeVo>> page(@RequestBody BbsLikeSearch query) {
-		IPage<BbsLikeVo> pages = bbsLikeService.selectPage(PageUtil.getPage(query), query);
-        return succeed(PageUtil.pageInfo(pages));
-	}
-    
-    /**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperation(value = "新增", notes = "传入bbsLike")
-	public HttpResponseResult save(@Valid @RequestBody BbsLike bbsLike) {
-    	return status(bbsLikeService.save(bbsLike));
-	}
-    
-    /**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperation(value = "修改", notes = "传入bbsLike")
-	public HttpResponseResult update(@Valid @RequestBody BbsLike bbsLike) {
-        return status(bbsLikeService.updateById(bbsLike));
-	}
-    
-    /**
-	 * 新增或修改
-	 */
-    @PostMapping("/submit")
-    @ApiOperation(value = "新增或修改", notes = "传入bbsLike")
-	public HttpResponseResult submit(@Valid @RequestBody BbsLike bbsLike) {
-        return status(bbsLikeService.saveOrUpdate(bbsLike));
+    @GetMapping("/like")
+    @ApiOperation(value = "详情-点赞/取消点赞")
+    public HttpResponseResult dolike(@NotNull Long articleId) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        bbsLikeService.dolike(articleId, 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("参数不能为空");
-		}
-		return status(bbsLikeService.removeByIds(StringUtil.toLongList(ids)));
-	}
 }

+ 13 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsReplyController.java

@@ -5,6 +5,7 @@ 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.entity.BbsReply;
 import com.yonge.cooleshow.bbs.service.BbsReplyService;
 import com.yonge.cooleshow.bbs.vo.BbsReplyAuditVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -15,6 +16,7 @@ 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.*;
 
 import javax.validation.Valid;
@@ -30,6 +32,17 @@ public class BbsReplyController extends BaseController {
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
+	@PostMapping("/reply")
+	@ApiOperation(value = "详情-评论文章")
+	public HttpResponseResult reply(@Validated @RequestBody BbsReply reply) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (user == null || null == user.getId()) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		reply.setUserId(user.getId());
+		bbsReplyService.replyArticle(reply);
+		return succeed();
+	}
 
 	@PostMapping("/audit/list")
 	@ApiOperation(value = "后台-评论审核列表")

+ 11 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsArticleDao.java

@@ -4,6 +4,8 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.bbs.dto.search.BbsReplySearch;
+import com.yonge.cooleshow.bbs.vo.BbsReplyVo;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.bbs.entity.BbsArticle;
 import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
@@ -32,4 +34,13 @@ public interface BbsArticleDao extends BaseMapper<BbsArticle> {
      * @return: com.yonge.cooleshow.bbs.vo.BbsArticleVo
      */
     List<BbsArticleVo> selectPage(@Param("page") IPage page, @Param("param") BbsArticleSearch bbsArticle);
+
+    /**
+     * 查询文章详情
+     * @param articleId
+     * @return
+     */
+    BbsArticleVo articleInfo(Long articleId);
+
+    List<BbsReplyVo> articleReply(@Param("page")IPage<BbsReplyVo> page,@Param("param") BbsReplySearch query);
 }

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

@@ -56,4 +56,6 @@ public interface BbsReplyDao extends BaseMapper<BbsReply> {
 	 * @return
 	 */
 	List<BbsReplyAuditVo> selectAuditListPage(@Param("page") IPage<BbsReplyAuditVo> page, @Param("query") BbsReplySearch query);
+
+	String selectConfig(String paramName);
 }

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

@@ -19,6 +19,26 @@ public class BbsReplySearch extends QueryInfo{
 	@ApiModelProperty("评论审核状态 DOING :审核中,PASS:审核 通过,REJECT:拒绝")
 	private ArticleEnum status;
 
+	@ApiModelProperty(value = "文章id",hidden = true)
+	private Long articleId;
+	private Long parentId;
+
+	public Long getParentId() {
+		return parentId;
+	}
+
+	public void setParentId(Long parentId) {
+		this.parentId = parentId;
+	}
+
+	public Long getArticleId() {
+		return articleId;
+	}
+
+	public void setArticleId(Long articleId) {
+		this.articleId = articleId;
+	}
+
 	public Long getUserId() {
 		return userId;
 	}

+ 5 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsReply.java

@@ -14,6 +14,9 @@ import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * 文章评论
  */
@@ -31,6 +34,7 @@ public class BbsReply implements Serializable {
 
     @ApiModelProperty("文章id")
     @TableField(value = "article_id")
+    @NotNull(message = "文章id不能为空")
     private Long articleId;
 
     @ApiModelProperty("评论者id")
@@ -39,6 +43,7 @@ public class BbsReply implements Serializable {
 
     @ApiModelProperty("评论内容")
     @TableField(value = "content_")
+    @NotBlank(message = "评论内容不能为空")
     private String content;
 
     @ApiModelProperty("审核中:DOING,通过:PASS,驳回:REJECT")

+ 12 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsArticleService.java

@@ -3,9 +3,11 @@ 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.dto.search.BbsReplySearch;
 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.vo.BbsReplyVo;
 
 import java.util.List;
 import java.util.Map;
@@ -53,4 +55,14 @@ public interface BbsArticleService extends IService<BbsArticle> {
      * @date 2022-06-09
      */
     IPage<BbsArticleVo> selectPage(IPage<BbsArticleVo> page, BbsArticleSearch query);
+
+    /**
+     * 查询详情
+     *
+     * @param articleId
+     * @return
+     */
+    BbsArticleVo articleInfo(Long articleId);
+
+    IPage<BbsReplyVo> articleReply(IPage<BbsReplyVo> page, BbsReplySearch query);
 }

+ 2 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsCollectService.java

@@ -28,4 +28,6 @@ public interface BbsCollectService extends IService<BbsCollect>  {
  	 * @date 2022-06-09
      */
     IPage<BbsCollectVo> selectPage(IPage<BbsCollectVo> page, BbsCollectSearch query);
+
+    void collect(Long userId, Long articleId);
 }

+ 2 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsFollowService.java

@@ -26,4 +26,6 @@ public interface BbsFollowService extends IService<BbsFollow>  {
  	 * @date 2022-06-09
      */
     IPage<BbsFollowVo> selectPage(IPage<BbsFollowVo> page, BbsFollowSearch query);
+
+    void follow(Long userId, Long followId);
 }

+ 4 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsLikeService.java

@@ -2,12 +2,13 @@ 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.vo.BbsLikeVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsLikeSearch;
 import com.yonge.cooleshow.bbs.entity.BbsLike;
+import com.yonge.cooleshow.bbs.vo.BbsLikeVo;
 
 /**
  * 点赞 服务类
+ *
  * @author liweifan
  * @date 2022-06-09
  */
@@ -26,4 +27,6 @@ public interface BbsLikeService extends IService<BbsLike>  {
  	 * @date 2022-06-09
      */
     IPage<BbsLikeVo> selectPage(IPage<BbsLikeVo> page, BbsLikeSearch query);
+
+    void dolike(Long articleId, Long userId);
 }

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

@@ -63,4 +63,10 @@ public interface BbsReplyService extends IService<BbsReply>  {
 	 * @return
 	 */
 	boolean audit(ReplyAuditDto auditDto);
+
+	/**
+	 * 评论文章
+	 * @param reply
+	 */
+    void replyArticle(BbsReply reply);
 }

+ 43 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsArticleServiceImpl.java

@@ -7,11 +7,14 @@ 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.dto.search.BbsReplySearch;
 import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
 import com.yonge.cooleshow.bbs.enums.ArticleEnum;
 import com.yonge.cooleshow.bbs.enums.YesOrNoEnum;
+import com.yonge.cooleshow.bbs.vo.BbsReplyVo;
 import com.yonge.toolset.base.exception.BizException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -22,13 +25,17 @@ import com.yonge.cooleshow.bbs.dao.BbsArticleDao;
 import com.yonge.cooleshow.bbs.service.BbsArticleService;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 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);
+    private final static String VIEW = "view";
 
+    @Resource(name = "redis1")
+    private RedisTemplate redisTemplate;
     @Autowired
     private BbsAuthRecordDao authRecordDao;
 
@@ -137,4 +144,40 @@ public class BbsArticleServiceImpl extends ServiceImpl<BbsArticleDao, BbsArticle
     public IPage<BbsArticleVo> selectPage(IPage<BbsArticleVo> page, BbsArticleSearch query) {
         return page.setRecords(baseMapper.selectPage(page, query));
     }
+
+    /**
+     * @Description: 查询文章详情
+     * @Author: cy
+     * @Date: 2022/6/14
+     */
+    @Override
+    public BbsArticleVo articleInfo(Long articleId) {
+        BbsArticleVo bbsArticle = baseMapper.articleInfo(articleId);
+        redisTemplate.opsForHash().increment(VIEW, String.valueOf(articleId), 1);
+        return bbsArticle;
+    }
+
+    /**
+     * @Description: 文章评论列表
+     * @Author: cy
+     * @Date: 2022/6/14
+     */
+    @Override
+    public IPage<BbsReplyVo> articleReply(IPage<BbsReplyVo> page, BbsReplySearch query) {
+        query.setStatus(ArticleEnum.PASS);
+        List<BbsReplyVo> allReply = baseMapper.articleReply(null, query);
+        for (BbsReplyVo replyVo : allReply) {
+            List<BbsReplyVo> list = new ArrayList<>();
+
+            findChildren(replyVo, list);
+            replyVo.setChildren(list);
+        }
+
+        return page.setRecords(allReply);
+    }
+
+
+    public void findChildren(BbsReplyVo replyVo, List<BbsReplyVo> list) {
+
+    }
 }

+ 14 - 3
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsAuthRecordServiceImpl.java

@@ -8,6 +8,7 @@ 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.enums.ArticleEnum;
 import com.yonge.cooleshow.bbs.service.BbsAuthRecordService;
 import com.yonge.cooleshow.bbs.vo.BbsAuthRecordVo;
 import org.slf4j.Logger;
@@ -16,6 +17,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+
 @Service
 public class BbsAuthRecordServiceImpl extends ServiceImpl<BbsAuthRecordDao, BbsAuthRecord> implements BbsAuthRecordService {
     private final static Logger log = LoggerFactory.getLogger(BbsAuthRecordServiceImpl.class);
@@ -41,9 +44,17 @@ public class BbsAuthRecordServiceImpl extends ServiceImpl<BbsAuthRecordDao, BbsA
     @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()));
+        ArticleEnum auditState = record.getAuditState();
+        if (auditState.equals(ArticleEnum.PASS)) {
+            bbsArticleDao.update(null, Wrappers.<BbsArticle>lambdaUpdate()
+                    .eq(BbsArticle::getId, record.getArticleId())
+                    .set(BbsArticle::getStatus, record.getAuditState())
+                    .set(BbsArticle::getExamineTime, new Date()));
+        } else {
+            bbsArticleDao.update(null, Wrappers.<BbsArticle>lambdaUpdate()
+                    .eq(BbsArticle::getId, record.getArticleId())
+                    .set(BbsArticle::getStatus, record.getAuditState()));
+        }
         baseMapper.insert(record);
     }
 }

+ 23 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsCollectServiceImpl.java

@@ -1,6 +1,7 @@
 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 org.springframework.stereotype.Service;
 import org.slf4j.Logger;
@@ -25,5 +26,26 @@ public class BbsCollectServiceImpl extends ServiceImpl<BbsCollectDao, BbsCollect
     public IPage<BbsCollectVo> selectPage(IPage<BbsCollectVo> page, BbsCollectSearch query){
         return page.setRecords(baseMapper.selectPage(page, query));
     }
-	
+
+    /**
+     * @Description: 收藏/取消收藏
+     * @Author: cy
+     * @Date: 2022/6/13
+     */
+    @Override
+    public void collect(Long userId, Long articleId) {
+        BbsCollect collect = baseMapper.selectOne(Wrappers.<BbsCollect>lambdaQuery()
+                .eq(BbsCollect::getArticleId, articleId)
+                .eq(BbsCollect::getCollectUserId, userId));
+        if (collect==null){
+            BbsCollect bbsCollect = new BbsCollect();
+            bbsCollect.setArticleId(articleId);
+            bbsCollect.setCollectUserId(userId);
+            baseMapper.insert(bbsCollect);
+        }else {
+            baseMapper.delete(Wrappers.<BbsCollect>lambdaQuery()
+                    .eq(BbsCollect::getArticleId, articleId)
+                    .eq(BbsCollect::getCollectUserId, userId));
+        }
+    }
 }

+ 31 - 5
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsFollowServiceImpl.java

@@ -1,7 +1,9 @@
 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 org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -10,20 +12,44 @@ import com.yonge.cooleshow.bbs.vo.BbsFollowVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsFollowSearch;
 import com.yonge.cooleshow.bbs.dao.BbsFollowDao;
 import com.yonge.cooleshow.bbs.service.BbsFollowService;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 
 @Service
 public class BbsFollowServiceImpl extends ServiceImpl<BbsFollowDao, BbsFollow> implements BbsFollowService {
     private final static Logger log = LoggerFactory.getLogger(BbsFollowServiceImpl.class);
 
-	@Override
+    @Override
     public BbsFollowVo detail(Long id) {
         return baseMapper.detail(id);
     }
-    
-     @Override
-    public IPage<BbsFollowVo> selectPage(IPage<BbsFollowVo> page, BbsFollowSearch query){
+
+    @Override
+    public IPage<BbsFollowVo> selectPage(IPage<BbsFollowVo> page, BbsFollowSearch query) {
         return page.setRecords(baseMapper.selectPage(page, query));
     }
-	
+
+    /**
+     * @Description: 关注/取消关注
+     * @Author: cy
+     * @Date: 2022/6/13
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void follow(Long userId, Long followId) {
+        BbsFollow bbsFollow = baseMapper.selectOne(Wrappers.<BbsFollow>lambdaQuery()
+                .eq(BbsFollow::getUserId, userId)
+                .eq(BbsFollow::getFriendUserId, followId));
+        if (bbsFollow == null) {
+            BbsFollow follow = new BbsFollow();
+            follow.setUserId(userId);
+            follow.setFriendUserId(followId);
+            baseMapper.insert(follow);
+        } else {
+            baseMapper.delete(Wrappers.<BbsFollow>lambdaQuery()
+                    .eq(BbsFollow::getUserId, userId)
+                    .eq(BbsFollow::getFriendUserId, followId));
+        }
+    }
 }

+ 23 - 1
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsLikeServiceImpl.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.bbs.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -11,10 +12,15 @@ import com.yonge.cooleshow.bbs.dto.search.BbsLikeSearch;
 import com.yonge.cooleshow.bbs.dao.BbsLikeDao;
 import com.yonge.cooleshow.bbs.service.BbsLikeService;
 
+import javax.annotation.Resource;
 
 @Service
 public class BbsLikeServiceImpl extends ServiceImpl<BbsLikeDao, BbsLike> implements BbsLikeService {
     private final static Logger log = LoggerFactory.getLogger(BbsLikeServiceImpl.class);
+    private final static String LIKE = "like:";
+
+    @Resource(name = "redis1")
+    private RedisTemplate redisTemplate;
 
 	@Override
     public BbsLikeVo detail(Long id) {
@@ -25,5 +31,21 @@ public class BbsLikeServiceImpl extends ServiceImpl<BbsLikeDao, BbsLike> impleme
     public IPage<BbsLikeVo> selectPage(IPage<BbsLikeVo> page, BbsLikeSearch query){
         return page.setRecords(baseMapper.selectPage(page, query));
     }
-	
+
+    /**
+     * @Description: 点赞/取消点赞
+     * @Author: cy
+     * @Date: 2022/6/13
+     */
+    @Override
+    public void dolike(Long articleId, Long userId) {
+        String key = LIKE + articleId;
+        Boolean isLike = redisTemplate.opsForSet().isMember(key, userId);
+
+        if (isLike) {
+            redisTemplate.opsForSet().remove(key, userId);
+        } else {
+            redisTemplate.opsForSet().add(key, userId);
+        }
+    }
 }

+ 43 - 8
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsReplyServiceImpl.java

@@ -2,8 +2,14 @@ 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.dao.BbsArticleDao;
+import com.yonge.cooleshow.bbs.dao.BbsReplyAuthRecordDao;
 import com.yonge.cooleshow.bbs.dto.ReplyAuditDto;
+import com.yonge.cooleshow.bbs.entity.BbsArticle;
+import com.yonge.cooleshow.bbs.entity.BbsReplyAuthRecord;
 import com.yonge.cooleshow.bbs.enums.ArticleEnum;
+import com.yonge.cooleshow.bbs.enums.YesOrNoEnum;
+import com.yonge.cooleshow.bbs.service.BbsArticleService;
 import com.yonge.cooleshow.bbs.service.BbsReplyAuthRecordService;
 import com.yonge.cooleshow.bbs.vo.BbsReplyAuditVo;
 import com.yonge.toolset.base.exception.BizException;
@@ -22,17 +28,20 @@ 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;
+    @Autowired
+    private BbsReplyAuthRecordDao authRecordDao;
+    @Autowired
+    private BbsArticleDao articleDao;
 
-	@Override
+    @Override
     public BbsReplyVo detail(Long id) {
         return baseMapper.detail(id);
     }
-    
-     @Override
-    public IPage<BbsReplyVo> selectPage(IPage<BbsReplyVo> page, BbsReplySearch query){
+
+    @Override
+    public IPage<BbsReplyVo> selectPage(IPage<BbsReplyVo> page, BbsReplySearch query) {
         return page.setRecords(baseMapper.selectPage(page, query));
     }
 
@@ -55,10 +64,10 @@ public class BbsReplyServiceImpl extends ServiceImpl<BbsReplyDao, BbsReply> impl
     public boolean audit(ReplyAuditDto auditDto) {
         BbsReply bbsReply = this.getById(auditDto.getReplyId());
         if (bbsReply == null) {
-            throw  new BizException("未找到当前评论信息");
+            throw new BizException("未找到当前评论信息");
         }
-        if(!ArticleEnum.DOING.getCode().equals(bbsReply.getStatus().getCode())) {
-            throw  new BizException("评论已经审核");
+        if (!ArticleEnum.DOING.getCode().equals(bbsReply.getStatus().getCode())) {
+            throw new BizException("评论已经审核");
         }
         bbsReply.setStatus(auditDto.getStatus());
         this.updateById(bbsReply);
@@ -66,4 +75,30 @@ public class BbsReplyServiceImpl extends ServiceImpl<BbsReplyDao, BbsReply> impl
         return true;
     }
 
+    /**
+     * @Description: 评论文章
+     * @Author: cy
+     * @Date: 2022/6/14
+     */
+    @Override
+    public void replyArticle(BbsReply reply) {
+        BbsArticle article = articleDao.selectById(reply.getArticleId());
+        if (article == null) {
+            throw new BizException("评论的文章不存在");
+        }
+
+        String paramValue = baseMapper.selectConfig("bbs_reply_audit");
+        if (paramValue != null && paramValue.equals(YesOrNoEnum.YES.getCode().toString())) {//需审核
+            reply.setStatus(ArticleEnum.DOING);
+            baseMapper.insert(reply);
+
+            BbsReplyAuthRecord authRecord = new BbsReplyAuthRecord();
+            authRecord.setReplyId(reply.getId());
+            authRecord.setAuditState(ArticleEnum.DOING);
+            authRecordDao.insert(authRecord);
+        } else {//不用审核
+            reply.setStatus(ArticleEnum.PASS);
+            baseMapper.insert(reply);
+        }
+    }
 }

+ 25 - 7
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsArticleVo.java

@@ -12,13 +12,31 @@ import org.apache.commons.beanutils.BeanUtils;
 public class BbsArticleVo extends BbsArticle{
 	private static final long serialVersionUID = 1L;
     
-    public BbsArticleVo buildVo(BbsArticle bbsArticle){
-        try {
-            BeanUtils.copyProperties(this,bbsArticle);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return this;
+    private String userName;
+    private String realName;
+    private String avatar;
+
+    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 getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
 }

+ 35 - 7
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/vo/BbsReplyVo.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.beanutils.BeanUtils;
 
+import java.util.List;
+
 /**
  * @Author: liweifan
  * @Data: 2022-06-09 17:27:11
@@ -15,15 +17,41 @@ public class BbsReplyVo extends BbsReply {
 
     @ApiModelProperty("话题标题")
     private String articleTitle;
+    private String userName;
+    private String realName;
+    private String avatar;
+    private List<BbsReplyVo> children;
+
+    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 getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public List<BbsReplyVo> getChildren() {
+        return children;
+    }
 
-    public BbsReplyVo buildVo(BbsReply bbsReply) {
-        try {
-            BeanUtils.copyProperties(this, bbsReply);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return this;
+    public void setChildren(List<BbsReplyVo> children) {
+        this.children = children;
     }
 
     public String getArticleTitle() {

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

@@ -85,4 +85,50 @@
 
         t.created_time_ desc
 	</select>
+    <select id="articleInfo" resultType="com.yonge.cooleshow.bbs.vo.BbsArticleVo">
+        SELECT
+            t.id_ as id
+             , t.user_id_ as userId
+             , u.username_ as userName
+             , u.real_name_ as realName
+             , u.avatar_ as avatar
+             , t.title_ as title
+             , t.content_ as content
+             , t.label_id_ as labelId
+             , b.label_name_ as labelName
+             , t.views_count_ as viewsCount
+             , t.likes_count_ as likesCount
+             , t.comments_count_ as commentsCount
+             , t.collects_count_ as collectsCount
+             , t.status_ as status
+             , t.top_flag_ as topFlag
+             , t.reply_flag_ as replyFlag
+             , t.examine_time_ as examineTime
+             , t.created_time_ as createdTime
+             , t.updated_time_ as updatedTime
+             , t.del_flag_ as delFlag
+        FROM bbs_article t
+        LEFT JOIN bbs_config_label b ON t.label_id_ = b.id_
+        LEFT JOIN sys_user u ON t.user_id_ = u.id_
+    </select>
+    <select id="articleReply" resultType="com.yonge.cooleshow.bbs.vo.BbsReplyVo">
+        SELECT
+            r.*,
+            u.username_ AS userName,
+            u.real_name_ AS realName,
+            u.avatar_ AS avatar
+        FROM bbs_reply r
+        LEFT JOIN sys_user u ON r.user_id_=u.id_
+        <where>
+            <if test="param.articleId !=null">
+               AND r.article_id=#{param.articleId}
+            </if>
+            <if test="param.status !=null">
+                AND r.status_=#{param.status}
+            </if>
+            <if test="param.parentId !=null">
+                AND r.parent_id_=#{param.parentId}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 3 - 0
cooleshow-bbs/src/main/resources/config/mybatis/BbsReplyMapper.xml

@@ -115,4 +115,7 @@
             </if>
         </where>
     </select>
+    <select id="selectConfig" resultType="java.lang.String" parameterType="java.lang.String">
+        SELECT param_value_ FROM sys_config WHERE param_name_=#{paramName}
+    </select>
 </mapper>

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

@@ -32,7 +32,7 @@ public class SysUserServiceImpl implements SysUserService {
 
     @Override
     public SysUser findUserById(Long userId) {
-        Optional<SysUser> optional = Optional.ofNullable(sysUserFeignService.queryUserInfo());
+        Optional<SysUser> optional = Optional.ofNullable(sysUserFeignService.queryUserById(userId));
         optional.map(SysUser::getId).
                 orElseThrow(()-> new BizException("请登录"));
         return optional.get();

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeStatisticalVo.java

@@ -33,6 +33,17 @@ public class TeacherHomeStatisticalVo {
     @ApiModelProperty("我的收入")
     private BigDecimal decimal;
 
+    @ApiModelProperty("琴房剩余时长")
+    private Integer pianoTime;
+
+    public Integer getPianoTime() {
+        return pianoTime;
+    }
+
+    public void setPianoTime(Integer pianoTime) {
+        this.pianoTime = pianoTime;
+    }
+
     public Integer getCourseSchedule() {
         return courseSchedule;
     }

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberAuditMapper.xml

@@ -84,7 +84,7 @@
         from im_group_member_audit igma
         left join im_group ig on ig.id_ = igma.group_id_
         left join sys_user su on igma.user_id_ = su.id_
-        left join sys_user su2 on ig.create_by_ = su.id_
+        left join sys_user su2 on ig.create_by_ = su2.id_
         where  igma.id_ in ( #{auditIds})
     </select>
 </mapper>

+ 7 - 9
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -1,23 +1,23 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.utils.validator.ValidationKit;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * 即时通讯群组(ImGroup)表控制层
@@ -35,14 +35,13 @@ public class ImGroupController extends BaseController {
     @Resource
     private ImGroupService imGroupService;
     @Resource
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
 
     @ApiOperation("创建群聊")
     @PostMapping(value = "/create")
     public HttpResponseResult create(@Valid @RequestBody ImGroup imGroup, BindingResult bindingResult) throws Exception {
         ValidationKit.ignoreFields(bindingResult,"id");
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        imGroup.setCreateBy(sysUser.getId());
+        imGroup.setCreateBy(sysUserService.getUserId());
         imGroupService.create(imGroup);
         return succeed();
     }
@@ -64,8 +63,7 @@ public class ImGroupController extends BaseController {
     @PostMapping(value = "/queryAll")
     public HttpResponseResult<List<ImGroup>> queryAll(@Valid @RequestBody ImGroupSearchDto imGroupSearchDto, BindingResult bindingResult) throws Exception {
         ValidationKit.ignoreFields(bindingResult,"createUserId");
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        imGroupSearchDto.setUserId(sysUser.getId());
+        imGroupSearchDto.setUserId(sysUserService.getUserId());
         return succeed(imGroupService.queryAll(imGroupSearchDto));
     }
 

+ 3 - 6
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java

@@ -1,14 +1,12 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
 import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
@@ -41,14 +39,13 @@ public class ImGroupMemberAuditController extends BaseController {
     @Resource
     private ImGroupMemberAuditService imGroupMemberAuditService;
     @Resource
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
 
     @ApiOperation("申请入群")
     @PostMapping(value = "/apply")
     public HttpResponseResult apply(@Valid @RequestBody ImGroupMemberAudit imGroupMemberAudit) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
         imGroupMemberAudit.setRoleType(ImGroupMemberRoleType.TEACHER);
-        imGroupMemberAudit.setUserId(sysUser.getId());
+        imGroupMemberAudit.setUserId(sysUserService.getUserId());
         imGroupMemberAuditService.apply(imGroupMemberAudit);
         return succeed();
     }

+ 3 - 3
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupNoticeController.java

@@ -34,7 +34,7 @@ public class ImGroupNoticeController extends BaseController {
 
     @ApiOperation("新增群公告")
     @PostMapping(value = "/create")
-    public HttpResponseResult<Boolean> create(@Valid @RequestBody ImGroupNotice imGroupNotice, BindingResult bindingResult){
+    public HttpResponseResult create(@Valid @RequestBody ImGroupNotice imGroupNotice, BindingResult bindingResult){
         ValidationKit.ignoreFields(bindingResult,"id");
         imGroupNoticeService.create(imGroupNotice);
         return succeed();
@@ -42,14 +42,14 @@ public class ImGroupNoticeController extends BaseController {
 
     @ApiOperation("删除群公告")
     @PostMapping(value = "/del/{noticeId}")
-    public HttpResponseResult<Boolean> del(@ApiParam(value = "群公告编号", required = true) @PathVariable("noticeId") Long noticeId){
+    public HttpResponseResult del(@ApiParam(value = "群公告编号", required = true) @PathVariable("noticeId") Long noticeId){
         imGroupNoticeService.del(noticeId);
         return succeed();
     }
 
     @ApiOperation("修改群公告")
     @PostMapping(value = "/update")
-    public HttpResponseResult<Boolean> modify(@Valid @RequestBody ImGroupNotice imGroupNotice){
+    public HttpResponseResult modify(@Valid @RequestBody ImGroupNotice imGroupNotice){
         imGroupNoticeService.modify(imGroupNotice);
         return succeed();
     }

+ 4 - 5
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java

@@ -3,10 +3,9 @@ package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import io.swagger.annotations.*;
@@ -33,7 +32,7 @@ public class ImUserFriendController extends BaseController {
     @Resource
     private ImUserFriendService imUserFriendService;
     @Resource
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
 
     @SuppressWarnings("unchecked")//因为返回是集合,这里提示你集合内容较多排序可能回耗费性能
     @ApiImplicitParams({
@@ -42,10 +41,9 @@ public class ImUserFriendController extends BaseController {
     @ApiOperation("获取通讯录成员列表")
     @PostMapping(value = "/queryAll")
     public HttpResponseResult<List<ImUserFriend>> queryAll(@RequestBody Map<String, Object> params) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
         Object search = params.get("search");
         List<ImUserFriend> record = imUserFriendService.list(Wrappers.<ImUserFriend>query().lambda()
-                .eq(ImUserFriend::getUserId, sysUser.getId())
+                .eq(ImUserFriend::getUserId, sysUserService.getUserId())
                 .and(Objects.nonNull(search) && StringUtils.isNotEmpty(search.toString()),
                         e -> e.eq(ImUserFriend::getFriendId, search)
                                 .or().like(ImUserFriend::getFriendNickname, search))
@@ -58,5 +56,6 @@ public class ImUserFriendController extends BaseController {
     public HttpResponseResult<ImUserFriend> getDetail(@ApiParam(value = "用户编号", required = true) @PathVariable("userId") Long userId) throws Exception {
         return succeed(imUserFriendService.getDetail(userId));
     }
+
 }
 

+ 6 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherHomeController.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
 import com.yonge.cooleshow.biz.dal.vo.CountVo;
+import com.yonge.cooleshow.biz.dal.vo.PianoRoomTimeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeStatisticalVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -66,6 +67,10 @@ public class TeacherHomeController extends BaseController {
         // 我的收入
         BigDecimal decimal = userAccountRecordService.getMonthDecimal(sysUser.getId());
 
+
+        // 琴房剩余时长
+        PianoRoomTimeVo pianoRoomTimeVo = courseScheduleService.selectRemainTime(sysUser.getId());
+
         TeacherHomeStatisticalVo teacherHomeStatisticalVo = new TeacherHomeStatisticalVo();
         teacherHomeStatisticalVo.setCourseHomework(courseHomework);
         teacherHomeStatisticalVo.setCourseScheduleReplied(courseScheduleReplied);
@@ -73,6 +78,7 @@ public class TeacherHomeController extends BaseController {
         teacherHomeStatisticalVo.setDecimal(decimal);
         teacherHomeStatisticalVo.setMusicSheet(musicSheet);
         teacherHomeStatisticalVo.setStudentReplied(studentReplied);
+        teacherHomeStatisticalVo.setPianoTime(pianoRoomTimeVo.getRemainTime());
         return succeed(teacherHomeStatisticalVo);
     }
 

+ 12 - 5
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/MusicAlbumController.java

@@ -3,14 +3,10 @@ package com.yonge.cooleshow.website.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.biz.dal.dto.search.MusicAlbumDetailSearch;
-import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -22,7 +18,7 @@ import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
+import java.util.Base64;
 
 /**
  * 专辑表 web 控制层
@@ -71,4 +67,15 @@ public class MusicAlbumController extends BaseController {
         IPage<MusicAlbumVo> albumVoIPage = musicAlbumService.favoriteAlbum(PageUtil.getPage(query), search);
         return succeed(PageUtil.pageInfo(albumVoIPage));
     }
+
+
+
+    public static void main(String[] args) {
+
+        String base64ClientCredentials = Base64.getEncoder().encodeToString((1 + ":" + 123123).getBytes());
+
+        System.out.println(base64ClientCredentials);
+        byte[] decode = Base64.getDecoder().decode(base64ClientCredentials.getBytes());
+        System.out.println(new String(decode));
+    }
 }

+ 0 - 7
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/MusicSheetController.java

@@ -4,26 +4,19 @@ 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.biz.dal.dto.MusicSheetDto;
-import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.vo.AlbumAndSheetVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetWebsiteDetailVo;
 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.base.page.QueryInfo;
-import com.yonge.toolset.base.util.StringUtil;
-import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;

+ 4 - 4
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicAlbumController.java

@@ -5,7 +5,6 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
-import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
@@ -14,12 +13,13 @@ import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 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.base.page.QueryInfo;
 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.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 

+ 0 - 8
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicSheetController.java

@@ -3,13 +3,9 @@ package com.yonge.cooleshow.website.controller.open;
 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.biz.dal.dto.MusicSheetDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
-import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
@@ -21,16 +17,12 @@ import com.yonge.cooleshow.biz.dal.vo.MusicSheetWebsiteDetailVo;
 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.base.page.QueryInfo;
 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.web.bind.annotation.*;
 
-import javax.validation.Valid;
-import java.util.Date;
-
 /**
  * 曲谱表 web 控制层
  * @author yzp