소스 검색

老师详情,学生详情接口

weifanli 3 년 전
부모
커밋
cef278bf4d

+ 0 - 49
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserAccountController.java

@@ -34,53 +34,4 @@ public class UserAccountController extends BaseController {
     public HttpResponseResult<UserAccountVo> detail(@PathVariable("id") Long id) {
     	return succeed(userAccountService.detail(id));
 	}
-    
-    /**
-     * 查询分页
-     */
-    @PostMapping("/page")
-    @ApiOperation(value = "查询分页", notes = "传入userAccountSearch")
-    public HttpResponseResult<PageInfo<UserAccountVo>> page(@RequestBody UserAccountSearch query) {
-		IPage<UserAccountVo> pages = userAccountService.selectPage(PageUtil.getPage(query), query);
-        return succeed(PageUtil.pageInfo(pages));
-	}
-    
-    /**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperation(value = "新增", notes = "传入userAccount")
-	public HttpResponseResult save(@Valid @RequestBody UserAccount userAccount) {
-    	return status(userAccountService.save(userAccount));
-	}
-    
-    /**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperation(value = "修改", notes = "传入userAccount")
-	public HttpResponseResult update(@Valid @RequestBody UserAccount userAccount) {
-        return status(userAccountService.updateById(userAccount));
-	}
-    
-    /**
-	 * 新增或修改
-	 */
-    @PostMapping("/submit")
-    @ApiOperation(value = "新增或修改", notes = "传入userAccount")
-	public HttpResponseResult submit(@Valid @RequestBody UserAccount userAccount) {
-        return status(userAccountService.saveOrUpdate(userAccount));
-    }
-
- 	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-        if (StringUtil.isEmpty(ids)) {
-			return failed("参数不能为空");
-		}
-		return status(userAccountService.removeByIds(StringUtil.toLongList(ids)));
-	}
 }

+ 0 - 39
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserAccountRecordController.java

@@ -44,43 +44,4 @@ public class UserAccountRecordController extends BaseController {
 		IPage<UserAccountRecordVo> pages = userAccountRecordService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
 	}
-    
-    /**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperation(value = "新增", notes = "传入userAccountRecord")
-	public HttpResponseResult save(@Valid @RequestBody UserAccountRecord userAccountRecord) {
-    	return status(userAccountRecordService.save(userAccountRecord));
-	}
-    
-    /**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperation(value = "修改", notes = "传入userAccountRecord")
-	public HttpResponseResult update(@Valid @RequestBody UserAccountRecord userAccountRecord) {
-        return status(userAccountRecordService.updateById(userAccountRecord));
-	}
-    
-    /**
-	 * 新增或修改
-	 */
-    @PostMapping("/submit")
-    @ApiOperation(value = "新增或修改", notes = "传入userAccountRecord")
-	public HttpResponseResult submit(@Valid @RequestBody UserAccountRecord userAccountRecord) {
-        return status(userAccountRecordService.saveOrUpdate(userAccountRecord));
-    }
-
- 	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-        if (StringUtil.isEmpty(ids)) {
-			return failed("参数不能为空");
-		}
-		return status(userAccountRecordService.removeByIds(StringUtil.toLongList(ids)));
-	}
 }

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

@@ -1,7 +1,15 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 /**
  * @Author: liweifan
@@ -9,6 +17,65 @@ import io.swagger.annotations.ApiModel;
  */
 @ApiModel(value = "UserAccountRecordSearch对象", description = "用户账户流水表查询对象")
 public class UserAccountRecordSearch extends QueryInfo{
+
 	private static final long serialVersionUID = 1L;
 
+	@ApiModelProperty("用户id ")
+	private Long userId;
+
+	@ApiModelProperty("收支类型:IN、收入 OUT、支出 ")
+	private InOrOutEnum inOrOut;
+
+	@ApiModelProperty("业务类型:PRACTICE、陪练课 LIVE、直播课 MUSIC、乐谱 WITHDRAWAL、提现 ")
+	private AccountBizTypeEnum bizType;
+
+	@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;
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
+	public InOrOutEnum getInOrOut() {
+		return inOrOut;
+	}
+
+	public void setInOrOut(InOrOutEnum inOrOut) {
+		this.inOrOut = inOrOut;
+	}
+
+	public AccountBizTypeEnum getBizType() {
+		return bizType;
+	}
+
+	public void setBizType(AccountBizTypeEnum bizType) {
+		this.bizType = bizType;
+	}
+
+	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;
+	}
 }

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

@@ -37,7 +37,7 @@ public class UserAccountRecord implements Serializable {
     @ApiModelProperty("收支类型:IN、收入 OUT、支出 ")
     @TableField(value = "in_or_out_")
     private InOrOutEnum inOrOut;
-    @ApiModelProperty("业务类型:PRACTICE、陪练课 LIVE、直播课 MUSIC、乐谱 WITHDRAWAL、提现 ")
+    @ApiModelProperty("业务类型:PRACTICE、陪练课 LIVE、直播课  MUSIC、乐谱 WITHDRAWAL、提现 ")
     @TableField(value = "biz_type_")
     private AccountBizTypeEnum bizType;
     @ApiModelProperty("业务id ")

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AccountBizTypeEnum.java

@@ -5,6 +5,7 @@ import com.yonge.cooleshow.common.enums.BaseEnum;
 
 /**
  * 账户流水枚举
+ *
  * @Author: liweifan
  * @Data: 2022/4/7 15:48
  */
@@ -12,6 +13,7 @@ public enum AccountBizTypeEnum implements BaseEnum<String, AccountBizTypeEnum> {
 
     PRACTICE("陪练课", InOrOutEnum.IN),
     LIVE("直播课", InOrOutEnum.IN),
+    VIDEO("视频课", InOrOutEnum.IN),
     MUSIC("乐谱", InOrOutEnum.IN),
     WITHDRAWAL("提现", InOrOutEnum.OUT);
     @EnumValue

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -43,16 +43,16 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
     @Override
     public StudentHomeVo queryUserInfo(SysUser user) {
-        Student student = getById(user.getId());
+        StudentVo detail = detail(user.getId());
         StudentHomeVo studentHomeVo = new StudentHomeVo();
         try {
-            BeanUtils.copyProperties(studentHomeVo, student);
+            BeanUtils.copyProperties(studentHomeVo, detail);
         } catch (Exception e) {
             e.printStackTrace();
         }
         studentHomeVo.setHeardUrl(user.getAvatar());
         studentHomeVo.setUsername(user.getUsername());
-        int num = DateUtil.daysBetween(new Date(), student.getMembershipEndTime());
+        int num = DateUtil.daysBetween(new Date(), detail.getMembershipEndTime());
         studentHomeVo.setMembershipDays(num < 0 ? 0 : num);
         StudentTotal total = (StudentTotal) redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(user.getId()))
                 .get();

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentHomeVo.java

@@ -30,6 +30,8 @@ public class StudentHomeVo extends Student {
     private Integer unfinshClassHours;
     @ApiModelProperty("关注老师数")
     private Integer starTeacherNum;
+    @ApiModelProperty(value = "声部名称(支持多个,用逗号分隔) ")
+    private String subjectName;
 
     public String getHeardUrl() {
         return heardUrl;
@@ -102,4 +104,12 @@ public class StudentHomeVo extends Student {
     public void setMembershipDays(Integer membershipDays) {
         this.membershipDays = membershipDays;
     }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
 }

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

@@ -9,7 +9,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @Author: liweifan
  * @Data: 2022/4/11 14:44
  */
-@ApiModel(value = "TeacherStyleVideoVo对象", description = "老师风采信息")
+@ApiModel(value = "TeacherStyleVideoVo", description = "老师风采信息")
 public class TeacherStyleVideoVo extends TeacherStyleVideo {
     @ApiModelProperty(value = "是否直播 0否 1是")
     private YesOrNoEnum liveFlag;

+ 30 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserAccountRecordVo.java

@@ -1,7 +1,12 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 /**
  * @Author: liweifan
@@ -11,4 +16,29 @@ import io.swagger.annotations.ApiModel;
 public class UserAccountRecordVo extends UserAccountRecord{
 	private static final long serialVersionUID = 1L;
 
+	@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;
+
+	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;
+	}
 }

+ 23 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml

@@ -30,14 +30,34 @@
 
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">
         SELECT
-        <include refid="baseColumns"/>
+            <include refid="baseColumns"/>
         FROM user_cash_account_record t
         where t.id_ = #{id}
     </select>
 
-    <select id="selectPage" resultMap="BaseResultMap">
+    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">
         SELECT
-        <include refid="baseColumns" />
+            <include refid="baseColumns" />,
+            a.start_time_ as startTime,
+            a.end_time_ as endTime
         FROM user_cash_account_record t
+        left join course_schedule a on t.biz_id_ = a.id_ and t.biz_type_ in ('PRACTICE','LIVE')
+        <where>
+            <if test="null != param.userId">
+                AND t.account_id_ = #{param.userId}
+            </if>
+            <if test="null != param.inOrOut">
+                AND t.in_or_out_ = #{param.inOrOut}
+            </if>
+            <if test="null != param.bizType">
+                AND t.biz_type_ = #{param.bizType}
+            </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>
+        </where>
     </select>
 </mapper>