Pārlūkot izejas kodu

add:添加曲目审批

liujunchi 3 gadi atpakaļ
vecāks
revīzija
5081a1d16c

+ 17 - 4
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.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.auth.api.enums.SysUserType;
 import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
+import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
@@ -172,7 +173,7 @@ public class MusicSheetController extends BaseController {
      */
     @PostMapping("/student")
     @ApiOperation(value = "学生详情-乐谱")
-    public HttpResponseResult<PageInfo<StudentMusicSheetOrderVo>> student(@RequestBody StudentMusicSheetOrderSearch query) {
+    public HttpResponseResult<PageInfo<StudentMusicSheetOrderVo>> student(@Valid @RequestBody StudentMusicSheetOrderSearch query) {
         return succeed(PageUtil.pageInfo(musicSheetService.selectStudentOrderPage(PageUtil.getPage(query),query)));
     }
 
@@ -182,17 +183,29 @@ public class MusicSheetController extends BaseController {
      */
     @PostMapping("/teacher")
     @ApiOperation(value = "老师详情-乐谱")
-    public HttpResponseResult<PageInfo<TeacherMusicSheetVo>> teacher(@RequestBody TeacherMusicSheetSearch query) {
+    public HttpResponseResult<PageInfo<TeacherMusicSheetVo>> teacher(@Valid @RequestBody TeacherMusicSheetSearch query) {
         return succeed(PageUtil.pageInfo(musicSheetService.selectTeacherPage(PageUtil.getPage(query),query)));
     }
 
     /**
      * 审核中心-乐谱审核
      */
-    @PostMapping("/audit")
-    @ApiOperation(value = "审核中心-乐谱审核")
+    @PostMapping("/audit/list")
+    @ApiOperation(value = "审核中心-乐谱审核列表")
     public HttpResponseResult<PageInfo<TeacherMusicSheetVo>> audit(@RequestBody TeacherMusicSheetAuditSearch query) {
         return succeed(PageUtil.pageInfo(musicSheetService.selectAuditPage(PageUtil.getPage(query),query)));
     }
 
+    /**
+     * 审核中心-乐谱审核
+     */
+    @PostMapping("/audit")
+    @ApiOperation(value = "审核中心-乐谱审核")
+    public HttpResponseResult<Boolean> audit(@Valid @RequestBody TeacherMusicSheetAuditReq param) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        return status(musicSheetService.audit(param,sysUser.getId()));
+    }
 }

+ 55 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherMusicSheetAuditReq.java

@@ -0,0 +1,55 @@
+package com.yonge.cooleshow.biz.dal.dto.req;
+
+
+import com.yonge.cooleshow.biz.dal.enums.AuditEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * Description 曲目审核参数
+ *
+ * @author liujunchi
+ * @date 2022-04-02
+ */
+@ApiModel(value = "TeacherMusicSheetAuditReq对象", description = "曲目审核")
+public class TeacherMusicSheetAuditReq {
+
+    @ApiModelProperty(value = "曲目id",required = true)
+    @NotNull(message = "曲目id不能为空 ")
+    private Long musicSheetId;
+
+    @ApiModelProperty(value = "审批状态(1:通过,2:不通过)",required = true)
+    @NotNull(message = "审批状态不为空 ")
+    private AuditEnum auditStatus;
+
+    @ApiModelProperty(value = "审核理由",required = true)
+    @NotBlank(message = "审核理由不能为空 ")
+    private String remark;
+
+    public Long getMusicSheetId() {
+        return musicSheetId;
+    }
+
+    public void setMusicSheetId(Long musicSheetId) {
+        this.musicSheetId = musicSheetId;
+    }
+
+    public AuditEnum getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(AuditEnum auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetAuditSearch.java

@@ -3,17 +3,19 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.StateEnum;
 import com.yonge.cooleshow.biz.dal.support.Query;
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
 /**
- * Description 老师详情 乐谱
+ * Description 老师乐谱审核
  *
  * @author liujunchi
  * @date 2022-04-02
  */
+@ApiModel(value = "TeacherMusicSheetAuditSearch", description = "老师乐谱审核查询")
 public class TeacherMusicSheetAuditSearch extends Query {
 
     @ApiModelProperty("老师编号/名称/电话")

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetSearch.java

@@ -2,9 +2,11 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.support.Query;
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 
 /**
@@ -13,9 +15,11 @@ import java.util.Date;
  * @author liujunchi
  * @date 2022-04-02
  */
+@ApiModel(value = "TeacherMusicSheetSearch", description = "老师详情乐谱查询")
 public class TeacherMusicSheetSearch extends Query {
 
     @ApiModelProperty(value = "老师编号",required = true)
+    @NotNull(message = "老师ID不为空")
     private Long teacherId;
 
     @ApiModelProperty("乐谱编号/名称/作曲人")

+ 4 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAuthRecord.java

@@ -4,6 +4,7 @@ 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.biz.dal.enums.AuditEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -27,7 +28,7 @@ public class MusicSheetAuthRecord implements Serializable {
     private Long musicSheetId;
     @ApiModelProperty("审核状态 0:审核中;1:通过;2:未通过 ")
 	@TableField(value = "audit_state_")
-    private Integer auditState;
+    private AuditEnum auditState;
     @ApiModelProperty("审核人 ")
 	@TableField(value = "verify_user_id_")
     private Long verifyUserId;
@@ -59,11 +60,11 @@ public class MusicSheetAuthRecord implements Serializable {
         this.musicSheetId = musicSheetId;
     }
     
-	public Integer getAuditState() {
+	public AuditEnum getAuditState() {
         return auditState;
     }
 
-    public void setAuditState(Integer auditState) {
+    public void setAuditState(AuditEnum auditState) {
         this.auditState = auditState;
     }
     

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

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
 
 /**
@@ -10,4 +11,12 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
  */
 public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthRecord>  {
 
+    /**
+     * 曲目审核
+     *
+     * @param param 审核信息
+     * @param userId 用户id
+     * @return boolean
+     */
+    boolean audit(TeacherMusicSheetAuditReq param, Long userId);
 }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.enums.SysUserType;
 import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
+import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.dto.search.*;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -139,4 +140,13 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @return page
      */
     IPage<TeacherMusicSheetVo> selectAuditPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetAuditSearch query);
+
+    /**
+     * 审核曲目
+     *
+     * @param param 审核信息
+     * @param userId 审核员id
+     * @return boolean
+     */
+    boolean audit(TeacherMusicSheetAuditReq param, Long userId);
 }

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

@@ -2,13 +2,40 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 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.service.MusicSheetAuthRecordService;
+import com.yonge.cooleshow.common.exception.BizException;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
 
 
 @Service
 public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthRecordDao, MusicSheetAuthRecord> implements MusicSheetAuthRecordService {
 
-	
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean audit(TeacherMusicSheetAuditReq param, Long userId) {
+
+        List<MusicSheetAuthRecord> list = this.lambdaQuery()
+                                              .eq(MusicSheetAuthRecord::getMusicSheetId, param.getMusicSheetId())
+                                              .eq(MusicSheetAuthRecord::getVerifyUserId, userId)
+                                              .list();
+        if (!CollectionUtils.isEmpty(list)) {
+            throw  new BizException("曲目已经过审批");
+        }
+
+        MusicSheetAuthRecord musicSheetAuthRecord = new MusicSheetAuthRecord();
+        musicSheetAuthRecord.setMusicSheetId(param.getMusicSheetId());
+        musicSheetAuthRecord.setCreateTime(new Date());
+        musicSheetAuthRecord.setAuditState(param.getAuditStatus());
+        musicSheetAuthRecord.setReason(param.getRemark());
+        musicSheetAuthRecord.setVerifyUserId(userId);
+        return this.save(musicSheetAuthRecord);
+    }
 }

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

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.enums.SysUserType;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
 import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
+import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.dto.search.*;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.AuditEnum;
@@ -58,6 +59,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
     @Autowired
     private StudentService studentService;
 
+    @Autowired
+    private MusicSheetAuthRecordService musicSheetAuthRecordService;
+
     public MusicSheetDao getDao() {
         return musicSheetDao;
     }
@@ -220,4 +224,21 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
     public IPage<TeacherMusicSheetVo> selectAuditPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetAuditSearch query) {
         return page.setRecords(baseMapper.selectAuditPage(page,query));
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean audit(TeacherMusicSheetAuditReq param, Long userId) {
+
+        MusicSheet musicSheet = this.getById(param.getMusicSheetId());
+        if (musicSheet == null) {
+            throw  new BizException("未找到曲目信息");
+        }
+
+        if (musicSheetAuthRecordService.audit(param,userId)) {
+            musicSheet.setAuditStatus(param.getAuditStatus());
+            return this.updateById(musicSheet);
+        } else {
+            return false;
+        }
+    }
 }