瀏覽代碼

老师风采修改

liweifan 3 年之前
父節點
當前提交
4bde20ead6
共有 16 個文件被更改,包括 441 次插入75 次删除
  1. 60 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherStyleVideoController.java
  2. 18 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherStyleVideoDao.java
  3. 74 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherStyleVideoSearch.java
  4. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java
  5. 62 32
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherStyleVideo.java
  6. 27 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherStyleVideoService.java
  7. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  8. 35 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherStyleVideoServiceImpl.java
  9. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  10. 7 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/DistributedLock.java
  11. 32 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherStyleVideoVo.java
  12. 87 34
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherStyleVideoMapper.xml
  13. 17 2
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/TeacherController.java
  14. 1 1
      toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/core/service/impl/SysConfigPaymentServiceImpl.java
  15. 10 3
      toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/OriginalWxAppTemplate.java
  16. 1 1
      toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/constant/WxpayConstant.java

+ 60 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherStyleVideoController.java

@@ -0,0 +1,60 @@
+package com.yonge.cooleshow.admin.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.req.AuthOperaReq;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
+
+import com.yonge.toolset.base.page.PageInfo;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+
+import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleVideoSearch;
+import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping("/teacherStyleVideo")
+@Api(value = "教师风采视频表", tags = "教师风采视频表")
+public class TeacherStyleVideoController extends BaseController {
+    @Autowired
+    private TeacherStyleVideoService teacherStyleVideoService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    /**
+     * 查询单条
+     */
+    @GetMapping("/detail/{id}")
+    @ApiOperation(value = "详情", notes = "传入id")
+    public HttpResponseResult<TeacherStyleVideoVo> detail(@PathVariable("id") Long id) {
+        return succeed(teacherStyleVideoService.detail(id));
+    }
+
+    /**
+     * 查询分页
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "查询分页", notes = "传入teacherStyleVideoSearch")
+    public HttpResponseResult<PageInfo<TeacherStyleVideoVo>> page(@RequestBody TeacherStyleVideoSearch query) {
+        IPage<TeacherStyleVideoVo> pages = teacherStyleVideoService.selectPage(PageUtil.getPage(query), query);
+        return succeed(PageUtil.pageInfo(pages));
+    }
+
+
+    @PostMapping("/doAuth")
+    @ApiOperation(value = "审核", notes = "传入authOperaDto")
+    @PreAuthorize("@pcs.hasPermissions('teacherAuthMusicianRecord/doAuth')")
+    public HttpResponseResult<Boolean> doAuth(@Valid @RequestBody AuthOperaReq authOperaReq) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        return teacherStyleVideoService.doAuth(authOperaReq, sysUser);
+    }
+}

+ 18 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherStyleVideoDao.java

@@ -6,12 +6,30 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleVideoSearch;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
 import org.apache.ibatis.annotations.Param;
 
 public interface TeacherStyleVideoDao extends BaseMapper<TeacherStyleVideo> {
+
+    /**
+     * 查询详情
+     * @author liweifan
+     * @date 2022-05-17 11:40:18
+     * @return: com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo
+     */
+    TeacherStyleVideoVo detail(@Param("id") Long id);
+
+    /**
+     * 分页查询
+     * @author liweifan
+     * @date 2022-05-17 11:40:18
+     * @return: com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo
+     */
+    List<TeacherStyleVideoVo> selectPage(@Param("page") IPage page, @Param("param") TeacherStyleVideoSearch teacherStyleVideo);
+
     /***
      * 查询老师风采视频
      * @author liweifan

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

@@ -0,0 +1,74 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022-05-17 11:40:18
+ */
+@ApiModel(value = "TeacherStyleVideoSearch对象", description = "教师风采视频表查询对象")
+public class TeacherStyleVideoSearch extends QueryInfo{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "老师编号/名称/电话")
+    private String search;
+    @ApiModelProperty(value = "审批人")
+    private String verifyUser;
+    @ApiModelProperty(value = "申请开始时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    @ApiModelProperty(value = "申请结束时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+    @ApiModelProperty(value = "审核状态  UNPAALY、未申请 DOING、审核中 PASS、通过 UNPASS、不通过")
+    private AuthStatusEnum authStatus;
+
+    public String getSearch() {
+        return search;
+    }
+
+    public void setSearch(String search) {
+        this.search = search;
+    }
+
+    public String getVerifyUser() {
+        return verifyUser;
+    }
+
+    public void setVerifyUser(String verifyUser) {
+        this.verifyUser = verifyUser;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public AuthStatusEnum getAuthStatus() {
+        return authStatus;
+    }
+
+    public void setAuthStatus(AuthStatusEnum authStatus) {
+        this.authStatus = authStatus;
+    }
+}

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.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.biz.dal.enums.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 62 - 32
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherStyleVideo.java

@@ -1,6 +1,10 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
-import com.baomidou.mybatisplus.annotation.*;
+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.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -16,49 +20,43 @@ import org.springframework.format.annotation.DateTimeFormat;
 @TableName("teacher_style_video")
 @ApiModel(value = "TeacherStyleVideo对象", description = "教师风采视频表")
 public class TeacherStyleVideo implements Serializable {
-	private static final long serialVersionUID = 1L;
-    /**
-     * 视频id
-     */
-    @ApiModelProperty("视频id ")
+    private static final long serialVersionUID = 1L;
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
-    /**
-    * 对应user表用户编号 
-    */
-    @ApiModelProperty("对应user表用户编号 ")
+    @ApiModelProperty("老师编号 ")
     @TableField(value = "user_id_")
     private Long userId;
-    /** 
-    * 视频地址 
-    */
     @ApiModelProperty("视频地址 ")
-	@TableField(value = "video_url_")
+    @TableField(value = "video_url_")
     private String videoUrl;
-    /** 
-    * 视频说明 
-    */
     @ApiModelProperty("视频说明 ")
-	@TableField(value = "describe_")
+    @TableField(value = "describe_")
     private String describe;
-    /** 
-    * 视频浏览量 
-    */
     @ApiModelProperty("视频浏览量 ")
-	@TableField(value = "browse_")
+    @TableField(value = "browse_")
     private Integer browse;
-	@TableField(value = "create_time_")
+    @ApiModelProperty("是否审核时可见 (0:否  1:是) ")
+    @TableField(value = "audit_version_")
+    private YesOrNoEnum auditVersion;
+    @ApiModelProperty("审核状态 DOING、审核中 PASS、通过 UNPASS、不通过 ")
+    @TableField(value = "auth_status_")
+    private AuthStatusEnum authStatus;
+    @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_")
+    @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;
-
-    @TableField("audit_version_")
-    @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
-    private YesOrNoEnum auditVersion = YesOrNoEnum.NO;
+    @ApiModelProperty(value = "假删除 false : 未删除 true:已删除",hidden = true)
+    private Boolean delFlag = false;
 
     public Long getId() {
         return id;
@@ -100,6 +98,38 @@ public class TeacherStyleVideo implements Serializable {
         this.browse = browse;
     }
 
+    public YesOrNoEnum getAuditVersion() {
+        return auditVersion;
+    }
+
+    public void setAuditVersion(YesOrNoEnum auditVersion) {
+        this.auditVersion = auditVersion;
+    }
+
+    public AuthStatusEnum getAuthStatus() {
+        return authStatus;
+    }
+
+    public void setAuthStatus(AuthStatusEnum authStatus) {
+        this.authStatus = authStatus;
+    }
+
+    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;
     }
@@ -116,11 +146,11 @@ public class TeacherStyleVideo implements Serializable {
         this.updateTime = updateTime;
     }
 
-    public YesOrNoEnum getAuditVersion() {
-        return auditVersion;
+    public Boolean getDelFlag() {
+        return delFlag;
     }
 
-    public void setAuditVersion(YesOrNoEnum auditVersion) {
-        this.auditVersion = auditVersion;
+    public void setDelFlag(Boolean delFlag) {
+        this.delFlag = delFlag;
     }
 }

+ 27 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherStyleVideoService.java

@@ -2,7 +2,10 @@ package com.yonge.cooleshow.biz.dal.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.biz.dal.dto.req.AuthOperaReq;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleVideoSearch;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
@@ -17,6 +20,30 @@ import java.util.List;
  * @date 2022-03-24
  */
 public interface TeacherStyleVideoService extends IService<TeacherStyleVideo>  {
+    /**
+     * 查询详情
+     * @author liweifan
+     * @date 2022-05-17
+     */
+    TeacherStyleVideoVo detail(Long id);
+
+    /**
+     * 分页查询
+     * @author liweifan
+     * @date 2022-05-17
+     */
+    IPage<TeacherStyleVideoVo> selectPage(IPage<TeacherStyleVideoVo> page, TeacherStyleVideoSearch query);
+
+    /***
+     * 审核
+     * @author liweifan
+     * @param: authOperaReq
+     * @param: sysUser
+     * @updateTime 2022/3/22 20:06
+     * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.lang.Boolean>
+     */
+    HttpResponseResult<Boolean> doAuth(AuthOperaReq authOperaReq, SysUser sysUser) throws Exception;
+
     /***
      * 查询用户的风采视频
      * @author liweifan

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

@@ -345,6 +345,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
         createList.forEach(o -> {
             o.setUserId(teacherDto.getUserId());
+            o.setAuthStatus(AuthStatusEnum.DOING);
             o.setAuditVersion(YesOrNoEnum.NO);
         });
 

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

@@ -2,15 +2,25 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.req.AuthOperaReq;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleVideoSearch;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
+import com.yonge.cooleshow.biz.dal.entity.TeacherAuthMusicianRecord;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import org.apache.commons.beanutils.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.dao.TeacherStyleVideoDao;
 import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -18,6 +28,31 @@ import java.util.List;
 public class TeacherStyleVideoServiceImpl extends ServiceImpl<TeacherStyleVideoDao, TeacherStyleVideo> implements TeacherStyleVideoService {
 
     @Override
+    public TeacherStyleVideoVo detail(Long id) {
+        return baseMapper.detail(id);
+    }
+
+    @Override
+    public IPage<TeacherStyleVideoVo> selectPage(IPage<TeacherStyleVideoVo> page, TeacherStyleVideoSearch query){
+        return page.setRecords(baseMapper.selectPage(page, query));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResponseResult<Boolean> doAuth(AuthOperaReq authOperaReq, SysUser sysUser) throws Exception {
+        TeacherStyleVideo build = baseMapper.selectById(authOperaReq.getId());
+        if (!AuthStatusEnum.DOING.equals(build.getAuthStatus())) {
+            return HttpResponseResult.failed("审核单已审核");
+        }
+
+        build.setAuthStatus(authOperaReq.getPass() ? AuthStatusEnum.PASS : AuthStatusEnum.UNPASS);
+        build.setReason(authOperaReq.getReason());
+        build.setVerifyUserId(sysUser.getId());
+        build.setUpdateTime(new Date());
+        return HttpResponseResult.succeed(baseMapper.updateById(build) > 0);
+    }
+
+    @Override
     public List<TeacherStyleVideo> selectListByUserId(Long userId) {
         return baseMapper.selectListByUserId(userId);
     }

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

@@ -462,7 +462,14 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         userOrder.setUserId(orderReq.getUserId());
         userOrder.setOrderName(orderReq.getOrderName());
         userOrder.setOrderType(orderReq.getOrderType());
-        userOrder.setOrderDesc(orderReq.getOrderDesc());
+
+        String desc = "";
+        if (StringUtil.isEmpty(orderReq.getOrderDesc())) {
+            desc += orderReq.getOrderType().getMsg() + "-" + orderReq.getOrderName();
+        } else {
+            desc = orderReq.getOrderDesc();
+        }
+        userOrder.setOrderDesc(desc);
         userOrder.setStatus(OrderStatusEnum.WAIT_PAY);
         userOrder.setUserNote(orderReq.getUserNote());
         userOrder.setCreateTime(new Date());

+ 7 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/DistributedLock.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.support;
 
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.utils.string.StringUtil;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
@@ -102,7 +103,12 @@ public class DistributedLock {
         } catch (BizException e) {
             throw e;
         } catch (ExecutionException e) {
-            throw new BizException(e.getCause().getMessage());
+            String message = e.getCause().getMessage();
+            if(StringUtil.isEmpty(message)){
+                throw new RuntimeException("任务执行异常");
+            }else{
+                throw new BizException(message);
+            }
         } catch (Exception e) {
             log.error("callIfLockCanGet error lockKey {}", lockName);
             throw new RuntimeException("任务执行异常");

+ 32 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherStyleVideoVo.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
+import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -11,12 +12,35 @@ import io.swagger.annotations.ApiModelProperty;
  */
 @ApiModel(value = "TeacherStyleVideoVo", description = "老师风采信息")
 public class TeacherStyleVideoVo extends TeacherStyleVideo {
+    @ApiModelProperty(value = "真实姓名")
+    private String realName;
+    @ApiModelProperty("手机号 ")
+    private String phone;
+
     @ApiModelProperty(value = "老师是否在直播中 0否 1是")
     private YesOrNoEnum liveing;
     @ApiModelProperty("头像地址")
     private String avatar;
     @ApiModelProperty("老师昵称")
     private String username;
+    @ApiModelProperty("审核人 ")
+    private String verifyUser;
+
+    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 YesOrNoEnum getLiveing() {
         return liveing;
@@ -41,4 +65,12 @@ public class TeacherStyleVideoVo extends TeacherStyleVideo {
     public void setUsername(String username) {
         this.username = username;
     }
+
+    public String getVerifyUser() {
+        return verifyUser;
+    }
+
+    public void setVerifyUser(String verifyUser) {
+        this.verifyUser = verifyUser;
+    }
 }

+ 87 - 34
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherStyleVideoMapper.xml

@@ -2,36 +2,90 @@
 <!DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.TeacherStyleVideoDao">
 	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo">
-			<result column="id_" property="id" />
-			<result column="user_id_" property="userId" />
-	        <result column="video_url_" property="videoUrl" />
-	        <result column="describe_" property="describe" />
-	        <result column="browse_" property="browse" />
-	        <result column="create_time_" property="createTime" />
-	        <result column="update_time_" property="updateTime" />
-		</resultMap>
+		<result column="id_" property="id" />
+		<result column="user_id_" property="userId" />
+		<result column="video_url_" property="videoUrl" />
+		<result column="describe_" property="describe" />
+		<result column="browse_" property="browse" />
+		<result column="audit_version_" property="auditVersion" />
+		<result column="auth_status_" property="authStatus" />
+		<result column="verify_user_id_" property="verifyUserId" />
+		<result column="reason_" property="reason" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+		<result column="del_flag_" property="delFlag" />
+	</resultMap>
 
-    <!-- 表字段 -->
-    <sql id="baseColumns">
-         t.id_ as "id"
-        , t.user_id_ as "userId"
-        , t.video_url_ as "videoUrl"
-        , t.describe_ as "describe"
-        , t.browse_ as "browse"
-        , t.create_time_ as "createTime"
-        , t.update_time_ as "updateTime"
-        </sql>
+	<!-- 表字段 -->
+	<sql id="baseColumns">
+		t.id_ as id
+        , t.user_id_ as userId
+        , t.video_url_ as videoUrl
+        , t.describe_ as describe
+        , t.browse_ as browse
+        , t.audit_version_ as auditVersion
+        , t.auth_status_ as authStatus
+        , t.verify_user_id_ as verifyUserId
+        , t.reason_ as reason
+        , t.create_time_ as createTime
+        , t.update_time_ as updateTime
+        , t.del_flag_ as delFlag
+	</sql>
 
-    <!-- 根据老师id查询 -->
+	<select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo">
+		SELECT
+			<include refid="baseColumns"/>,
+		       u.real_name_ as realName,
+		       u.phone_ as phone,
+			   v.username_ as verifyUser
+		FROM teacher_style_video t
+		left join sys_user u on t.user_id_ = u.id_
+		left join sys_user v on t.verify_user_id_ = v.id_
+		where t.id_ = #{id}
+	</select>
+
+	<select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo">
+		SELECT
+			<include refid="baseColumns" />,
+			u.real_name_ as realName,
+			u.phone_ as phone,
+			v.username_ as verifyUser
+		FROM teacher_style_video t
+		left join sys_user u on t.user_id_ = u.id_
+		left join sys_user v on t.verify_user_id_ = v.id_
+		where (t.del_flag_ = 0 or t.auth_status_ != 'DOING')
+		<if test="null != param.search and '' != param.search">
+			AND (
+			t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or
+			u.real_name_ LIKE CONCAT('%', #{param.search}, '%') or
+			u.phone_ LIKE CONCAT('%', #{param.search}, '%')
+			)
+		</if>
+		<if test="null != param.verifyUser and '' != param.verifyUser">
+			AND v.username_ LIKE CONCAT('%', #{param.verifyUser}, '%')
+		</if>
+		<if test="param.startTime !=null">
+			<![CDATA[AND t.create_time_ >= #{param.startTime} ]]>
+		</if>
+		<if test="param.endTime !=null">
+			<![CDATA[AND t.create_time_ < #{param.endTime} ]]>
+		</if>
+		<if test="param.authStatus !=null">
+			AND t.auth_status_ = #{param.authStatus}
+		</if>
+		order by field(t.auth_status_,'DOING') desc, t.create_time_ desc
+	</select>
+
+	<!-- 根据老师id查询 -->
     <select id="selectListByUserId" resultType="com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo">
 		SELECT
 			<include refid="baseColumns"/>
 		FROM teacher_style_video t
-		WHERE t.user_id_ = #{userId}
+		WHERE t.del_flag_ = '0' and t.user_id_ = #{userId}
 	</select>
 
-	<delete id="removeByUserIdAndOldIds">
-		DELETE t FROM teacher_style_video t
+	<update id="removeByUserIdAndOldIds">
+		UPDATE teacher_style_video t SET t.del_flag_ = '1'
 		WHERE t.user_id_ = #{userId}
 		<if test="oldIds!=null and oldIds.size()>0">
 			AND t.id_ NOT IN
@@ -39,7 +93,7 @@
 				#{oldId}
 			</foreach>
 		</if>
-	</delete>
+	</update>
 
 	<select id="stylePage" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo">
 		SELECT
@@ -51,17 +105,16 @@
 		LEFT JOIN teacher a on t.user_id_ = a.user_id_
 		LEFT JOIN sys_user u on t.user_id_ = u.id_
 		LEFT JOIN teacher_total ta on t.user_id_ = ta.user_id_
-		<where>
-			<if test="param.username != null and param.username != ''">
-				AND u.username_ LIKE CONCAT('%', #{param.username}, '%')
-			</if>
-			<if test="param.subjectId != null and param.subjectId != ''">
-				AND INTE_ARRAY(a.subject_id_,#{param.subjectId})
-			</if>
-			<if test="param.auditVersion != null">
-				and #{param.auditVersion} = t.audit_version_
-			</if>
-		</where>
+		where t.del_flag_ = '0'
+		<if test="param.username != null and param.username != ''">
+			AND u.username_ LIKE CONCAT('%', #{param.username}, '%')
+		</if>
+		<if test="param.subjectId != null and param.subjectId != ''">
+			AND INTE_ARRAY(a.subject_id_,#{param.subjectId})
+		</if>
+		<if test="param.auditVersion != null">
+			and #{param.auditVersion} = t.audit_version_
+		</if>
 		order by ta.live_flag_ desc,(ta.fans_num_ * 0.3 + t.browse_ * 0.3 + ta.exp_time_) desc
 	</select>
 

+ 17 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/TeacherController.java

@@ -4,6 +4,8 @@ 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.TeacherStyleSearch;
+import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.StudentStarService;
@@ -20,8 +22,14 @@ 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.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
 @RestController
 @RequestMapping("/teacher")
 @Api(value = "教师表", tags = "教师表")
@@ -45,7 +53,7 @@ public class TeacherController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
         // 检查app版本
-        query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(),query.getVersion()));
+        query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(), query.getVersion()));
         query.setStudentId(user.getId());
         IPage<TeacherStyleVideoVo> pages = styleVideoService.stylePage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
@@ -61,7 +69,14 @@ public class TeacherController extends BaseController {
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        return teacherService.queryTeacherHome(user.getId(), userId);
+        HttpResponseResult<TeacherHomeVo> res = teacherService.queryTeacherHome(user.getId(), userId);
+        //学生端过滤只看审核通过的
+        if (null != res.getData() && CollectionUtils.isEmpty(res.getData().getStyleVideo())) {
+            List<TeacherStyleVideo> styleVideo = res.getData().getStyleVideo();
+            List<TeacherStyleVideo> collect = styleVideo.stream().filter(o -> AuthStatusEnum.PASS.equals(o.getAuthStatus())).collect(Collectors.toList());
+            res.getData().setStyleVideo(collect);
+        }
+        return res;
     }
 
     @ApiOperation(value = "关注/取消关注")

+ 1 - 1
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/core/service/impl/SysConfigPaymentServiceImpl.java

@@ -38,7 +38,7 @@ public class SysConfigPaymentServiceImpl extends ServiceImpl<SysConfigPaymentDao
     @Override
     public SysConfigPayment getPaymentConfig(OpenEnum openType, String paramName) {
         if (null == openType || StringUtil.isEmpty(paramName)) {
-            return null;
+            return new SysConfigPayment();
         }
         SysConfigPayment configPayment = (SysConfigPayment) redissonClient.getBucket(REDIS_KEY + ":" + openType.getCode() + ":" + paramName).get();
         if (null == configPayment) {

+ 10 - 3
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/OriginalWxAppTemplate.java

@@ -14,6 +14,7 @@ import com.yonge.toolset.payment.base.model.RefundBill;
 import com.yonge.toolset.payment.core.props.PaymentProperties;
 import com.yonge.toolset.payment.core.service.SysConfigPaymentService;
 import com.yonge.toolset.payment.original.wx.constant.WxpayConstant;
+import com.yonge.toolset.utils.string.StringUtil;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
@@ -27,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
 import java.util.Map;
 
 @Component
@@ -63,19 +65,24 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
         ObjectNode rootNode = objectMapper.createObjectNode();
         rootNode.put("mchid", MERCHANT_ID)
                 .put("appid", APP_ID)
-                .put("description", payment.getDescription())
+                .put("description", payment.getOrderDesc())
                 .put("out_trade_no", payment.getPaymentNo())
                 .put("notify_url", paymentProperties.getNotifyUrl()
                         + "/" + payment.getOpenType().getCode()
                         + "/" + payment.getPayChannel().getCode()
                         + "/executePayment");
 
+        if (StringUtil.isEmpty(payment.getPayAmt())) {
+            return BaseResult.failed("微信APP支付金额异常");
+        }
+
+        BigDecimal amnout = new BigDecimal(payment.getPayAmt()).multiply(new BigDecimal("100"));
+
         rootNode.putObject("amount")
-                .put("total", payment.getPayAmt());
+                .put("total", amnout.abs().intValue());
 
         try {
             objectMapper.writeValue(bos, rootNode);
-
             httpPost.setEntity(new StringEntity(bos.toString("UTF-8"), "UTF-8"));
         } catch (Exception e) {
             e.printStackTrace();

+ 1 - 1
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/constant/WxpayConstant.java

@@ -11,7 +11,7 @@ public interface WxpayConstant {
      * @author liweifan
      * @updateTime 2022/5/13 14:09
      */
-    String WX_APPID = "APPID";
+    String WX_APPID = "WX_APPID";
     /***
      * 商户号
      * @author liweifan