Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

yonge 3 years ago
parent
commit
f160d24840
18 changed files with 329 additions and 11 deletions
  1. 8 6
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/NewsController.java
  2. 11 0
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/queryinfo/NewsInformationQueryInfo.java
  3. 0 2
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/SysNewsInformation.java
  4. 25 0
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dto/AppParam.java
  5. 8 2
      cooleshow-cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml
  6. 1 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java
  7. 38 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicSheetPayDto.java
  8. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicAlbum.java
  9. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java
  10. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  11. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java
  12. 96 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  13. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  14. 26 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CheckVo.java
  15. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicSheetDetailVo.java
  16. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml
  17. 1 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  18. 44 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

+ 8 - 6
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/NewsController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.cms.controller;
 
 import com.yonge.cooleshow.cms.dal.entity.NewsStatusEnum;
 import com.yonge.cooleshow.cms.dto.AppHomeDto;
+import com.yonge.cooleshow.cms.dto.AppParam;
 import com.yonge.cooleshow.cms.dto.SysNewsInformationDto;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -131,7 +132,7 @@ public class NewsController extends BaseController {
 
 	@ApiOperation("app首页banner、按钮、资讯")
 	@PostMapping(value = "/app/home")
-	public HttpResponseResult<AppHomeDto> appHome() {
+	public HttpResponseResult<AppHomeDto> appHome(@RequestBody AppParam param) {
 		AppHomeDto appHomeDto = new AppHomeDto();
 		NewsInformationQueryInfo queryInfo = new NewsInformationQueryInfo();
 		queryInfo.setStatus(NewsStatusEnum.SHOW);
@@ -145,25 +146,26 @@ public class NewsController extends BaseController {
 		List<SysNewsInformationDto> rows = sysNewsInformationService.selectPage(queryInfo).getRows();
 		appHomeDto.setInformation(rows);
 
+
+		// 查所有
+		queryInfo.setRows(999);
 		// 轮播图
 		queryInfo.setType(4);
-		queryInfo.setRows(999);
 		params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 		appHomeDto.setBanner(sysNewsInformationService.selectPage(queryInfo).getRows());
 		// 闪页
 		queryInfo.setType(3);
-		queryInfo.setRows(999);
 		params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 		appHomeDto.setFlashPage(sysNewsInformationService.selectPage(queryInfo).getRows());
 
 		// 按钮
-		queryInfo.setType(35);
-		queryInfo.setRows(999);
+		queryInfo.setType(5);
+		queryInfo.setVersion(param.getVersion());
 		params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
-		appHomeDto.setFlashPage(sysNewsInformationService.selectPage(queryInfo).getRows());
+		appHomeDto.setAppMenu(sysNewsInformationService.selectPage(queryInfo).getRows());
 		return succeed(appHomeDto);
 	}
 }

+ 11 - 0
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/controller/queryinfo/NewsInformationQueryInfo.java

@@ -39,6 +39,9 @@ public class NewsInformationQueryInfo extends QueryInfo {
 	@ApiModelProperty(value = "需排除编号")
 	private List<Long> excludeIds;
 
+	@ApiModelProperty("版本号")
+	private String version;
+
 	private Date date;
 
 	public Integer getType() {
@@ -112,4 +115,12 @@ public class NewsInformationQueryInfo extends QueryInfo {
 	public void setPlatformType(String platformType) {
 		this.platformType = platformType;
 	}
+
+	public String getVersion() {
+		return version;
+	}
+
+	public void setVersion(String version) {
+		this.version = version;
+	}
 }

+ 0 - 2
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/SysNewsInformation.java

@@ -24,7 +24,6 @@ public class SysNewsInformation {
 
 	/** 内容 */
 	@ApiModelProperty(value = "内容", required = true)
-	@NotBlank(message = "内容不能为空")
 	private String content;
 
 	/** 封面图片 */
@@ -57,7 +56,6 @@ public class SysNewsInformation {
 	private Integer order;
 	
 	@ApiModelProperty(value = "上线、生效时间", required = false)
-	@NotNull(message = "上线、生效时间不为空")
 	private Date onlineTime;
 	
 	@ApiModelProperty(value = "下线时间", required = false)

+ 25 - 0
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dto/AppParam.java

@@ -0,0 +1,25 @@
+package com.yonge.cooleshow.cms.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-04-25
+ */
+@ApiModel("app首页查询参数")
+public class AppParam {
+
+    @ApiModelProperty("版本号")
+    private String version;
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+}

+ 8 - 2
cooleshow-cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -60,8 +60,11 @@
 			</if>
 			<if test="platformType != null and platformType != ''">
 				<if test="platformType != 'ADMIN'" >
-					and sni.status_ = 1 and sni.online_time_ &lt;= now()
-					and if(sni.offline_time_ is not null,sni.offline_time_ &gt;= now(),1=1)
+					and sni.status_ = 1
+					<if test="type != 5">
+						and sni.online_time_ &lt;= now()
+						and if(sni.offline_time_ is not null,sni.offline_time_ &gt;= now(),1=1)
+					</if>
 				</if>
 			</if>
 			<if test="excludeIds!=null and excludeIds.size()>0">
@@ -70,6 +73,9 @@
 					#{excludeId}
 				</foreach>
 			</if>
+			<if test="version != null and version != ''">
+				and sni.attribute1_ = #{version}
+			</if>
 		</where>
 	</sql>
 	

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java

@@ -64,7 +64,7 @@ public class MusicAlbumController extends BaseController {
             return failed("用户信息获取失败");
         }
 
-        return succeed(musicAlbumService.removeById(id));
+        return succeed(musicAlbumService.del(id));
     }
 
     @ApiOperation(value = "修改", httpMethod="POST", consumes="application/json", produces="application/json")

+ 38 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicSheetPayDto.java

@@ -0,0 +1,38 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * Description 曲目购买参数
+ *
+ * @author liujunchi
+ * @date 2022-04-21
+ */
+@ApiModel("曲目购买参数")
+public class MusicSheetPayDto {
+
+    @ApiModelProperty("曲目id")
+    private Long musicSheetId;
+
+    @ApiModelProperty("订单金额")
+    private BigDecimal actualPrice;
+
+    public Long getMusicSheetId() {
+        return musicSheetId;
+    }
+
+    public void setMusicSheetId(Long musicSheetId) {
+        this.musicSheetId = musicSheetId;
+    }
+
+    public BigDecimal getActualPrice() {
+        return actualPrice;
+    }
+
+    public void setActualPrice(BigDecimal actualPrice) {
+        this.actualPrice = actualPrice;
+    }
+}

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicAlbum.java

@@ -76,6 +76,9 @@ public class MusicAlbum extends BaseEntity {
     @ApiModelProperty(value = "更新人")
     private Long updateBy;  //更新人
 
+	@TableField("del_flag_")
+	@ApiModelProperty("假删除标识 0:未删除 1:已删除")
+	private Boolean delFlag;
 
 	public MusicAlbum setId(Long id) {
 	    this.id = id;
@@ -200,4 +203,11 @@ public class MusicAlbum extends BaseEntity {
         return ToStringBuilder.reflectionToString(this);
     }
 
+	public Boolean getDelFlag() {
+		return delFlag;
+	}
+
+	public void setDelFlag(Boolean delFlag) {
+		this.delFlag = delFlag;
+	}
 }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java

@@ -105,4 +105,12 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
      * @return list
      */
     IPage<MusicAlbumVo> favoriteAlbum(IPage<MusicAlbumVo> page, StudentMusicAlbumSearch search);
+
+    /**
+     * 删除专辑
+     *
+     * @param id
+     * @return
+     */
+    boolean del(Long id);
 }

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

@@ -4,11 +4,14 @@ 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.OrderReq;
 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;
 import com.yonge.cooleshow.biz.dal.vo.*;
+import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 /**
  * MusicSheetService服务类
@@ -167,4 +170,18 @@ public interface MusicSheetService extends IService<MusicSheet> {
      */
     boolean saveMusicSheet(MusicSheetDto musicSheetDto,Long userId);
 
+    /**
+     * 曲目购买前的验证
+     *
+     * @param orderReqInfo 购买信息
+     * @return
+     */
+    HttpResponseResult<OrderCreateRes> buyMusicSheetCheck(OrderReq.OrderReqInfo orderReqInfo);
+
+    /**
+     * 曲目购买成功后的记录数据
+     *
+     * @param userOrderDetailVo
+     */
+    void buyMusicSheetSuccess(UserOrderDetailVo userOrderDetailVo);
 }

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

@@ -126,6 +126,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         if (checkNameRepeat(musicAlbum.getAlbumName(),musicAlbum.getId())) {
             throw new BizException("专辑名称重复");
         }
+        musicAlbum.setDelFlag(false);
         return this.save(musicAlbum);
     }
 
@@ -178,6 +179,14 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         return iPage;
     }
 
+    @Override
+    public boolean del(Long id) {
+        MusicAlbum musicAlbum = new MusicAlbum();
+        musicAlbum.setDelFlag(true);
+        musicAlbum.setId(id);
+        return this.updateById(musicAlbum);
+    }
+
     private boolean checkNameRepeat(String albumName, Long id) {
         LambdaQueryChainWrapper<MusicAlbum> eq = this.lambdaQuery()
                                                    .eq(MusicAlbum::getAlbumName, albumName);

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

@@ -1,11 +1,17 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.dao.MusicSheetDao;
 import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
+import com.yonge.cooleshow.biz.dal.dto.MusicSheetPayDto;
+import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
+import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.dto.search.*;
 import com.yonge.cooleshow.biz.dal.entity.*;
@@ -13,6 +19,8 @@ import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.*;
+import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.exception.BizException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,6 +33,7 @@ import org.springframework.util.CollectionUtils;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -59,6 +68,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
     @Autowired
     private MusicSheetAuthRecordService musicSheetAuthRecordService;
 
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private UserAccountService userAccountService;
+
     public MusicSheetDao getDao() {
         return musicSheetDao;
     }
@@ -290,4 +305,85 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
             return this.saveOrUpdate(musicSheet);
         }
     }
+
+    @Override
+    public HttpResponseResult<OrderCreateRes> buyMusicSheetCheck(OrderReq.OrderReqInfo orderReqInfo) {
+
+        // 下单前的验证
+        getSysUser(orderReqInfo.getUserId());
+
+        MusicSheetPayDto musicSheetPayDto = JSON.parseObject(
+                JSON.toJSONString(orderReqInfo.getBizContent()), MusicSheetPayDto.class);
+
+        MusicSheet musicSheet = this.getById(musicSheetPayDto.getMusicSheetId());
+        OrderCreateRes orderCreateRes = new OrderCreateRes();
+        if (musicSheet == null) {
+            throw new BizException("不存在曲目信息");
+        }
+
+        // 检查已经购买
+        checkoutPay(orderReqInfo.getUserId(),musicSheetPayDto.getMusicSheetId());
+
+
+
+        orderCreateRes.setRes(true);
+        orderCreateRes.setMerchId(musicSheet.getUserId());
+        orderCreateRes.setGoodType(orderCreateRes.getGoodType());
+        orderCreateRes.setBizId(musicSheet.getId());
+        orderCreateRes.setGoodNum(1);
+        orderCreateRes.setOriginalPrice(musicSheet.getMusicPrice());
+        orderCreateRes.setExpectPrice(musicSheet.getMusicPrice());
+        return  HttpResponseResult.succeed(orderCreateRes);
+
+    }
+
+    /**
+     * 检查是否已购买当前曲目
+     *
+     * @param userId 用户id
+     * @param musicSheetId 曲目id
+     */
+    private void checkoutPay(Long userId, Long musicSheetId) {
+        List<MusicSheetPurchaseRecord> list = musicSheetPurchaseRecordService
+                .lambdaQuery()
+                .eq(MusicSheetPurchaseRecord::getMusicSheetId, musicSheetId)
+                .eq(MusicSheetPurchaseRecord::getStudentId, userId)
+                .eq(MusicSheetPurchaseRecord::getOrderStatus, YesOrNoEnum.YES)
+                .list();
+        if (!CollectionUtils.isEmpty(list)) {
+            throw  new BizException("已经购买了当前曲目");
+        }
+    }
+
+    @Override
+    public void buyMusicSheetSuccess(UserOrderDetailVo userOrderDetailVo) {
+        // 保存购买记录
+        MusicSheetPurchaseRecord musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
+        musicSheetPurchaseRecord.setMusicSheetId(userOrderDetailVo.getBizId());
+        musicSheetPurchaseRecord.setOrderNo(userOrderDetailVo.getOrderNo());
+        musicSheetPurchaseRecord.setPurchasePrice(userOrderDetailVo.getExpectPrice());
+        musicSheetPurchaseRecord.setPurchaseTime(new Date());
+        musicSheetPurchaseRecord.setTeacherId(userOrderDetailVo.getMerchId());
+        musicSheetPurchaseRecord.setOrderStatus(YesOrNoEnum.YES);
+        musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
+        musicSheetPurchaseRecordService.save(musicSheetPurchaseRecord);
+
+        // 加入账户
+        UserAccountRecordDto userAccountRecordDto = new UserAccountRecordDto();
+        userAccountRecordDto.setUserId(userOrderDetailVo.getMerchId());
+        userAccountRecordDto.setFrozenType(FrozenTypeEnum.NONE);
+        userAccountRecordDto.setTransAmount(musicSheetPurchaseRecord.getPurchasePrice());
+        userAccountRecordDto.setInOrOut(InOrOutEnum.IN);
+        userAccountRecordDto.setBizType(AccountBizTypeEnum.MUSIC);
+        userAccountRecordDto.setBizId(musicSheetPurchaseRecord.getMusicSheetId());
+        userAccountRecordDto.setBizName(userOrderDetailVo.getGoodName());
+        userAccountRecordDto.setOrderNo(userOrderDetailVo.getOrderNo());
+        userAccountService.accountChange(userAccountRecordDto);
+    }
+
+    private SysUser getSysUser(Long userId) {
+        return Optional.ofNullable(userId)
+                       .map(sysUserFeignService::queryUserById)
+                       .orElseThrow(() -> new BizException("用户不存在"));
+    }
 }

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

@@ -60,6 +60,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     @Autowired
     private VideoLessonPurchaseRecordService recordService;
 
+    @Autowired
+    private MusicSheetService musicSheetService;
+
     //验证订单是否可以下单
     private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
     //插入订单后执行
@@ -76,11 +79,16 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         orderCreate.put(GoodTypeEnum.VIP, vipCardService::orderCreate);
         //直播课程购买
         orderCreate.put(GoodTypeEnum.LIVE, courseGroupService::buyLiveCourse);
+
         //陪练课购买
         orderCreate.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourse);
         //视频课购买
         orderCreate.put(GoodTypeEnum.VIDEO, recordService::buyVideoCourse);
 
+        //曲目购买
+        orderCreate.put(GoodTypeEnum.MUSIC,musicSheetService::buyMusicSheetCheck);
+
+
         /**********订单生成后******************/
 
         /**********订单完成后******************/
@@ -88,11 +96,16 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         orderSuccess.put(GoodTypeEnum.VIP, vipCardService::orderSuccess);
         //直播课程购买
         orderSuccess.put(GoodTypeEnum.LIVE, courseGroupService::buyLiveCourseSuccess);
+
         //陪练课购买
         orderSuccess.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourseSuccess);
         //视频课购买
         orderSuccess.put(GoodTypeEnum.VIDEO, recordService::buyVideoCourseSuccess);
 
+
+        //曲目购买
+        orderSuccess.put(GoodTypeEnum.MUSIC,musicSheetService::buyMusicSheetSuccess);
+
         /**********订单取消后******************/
         //陪练课购买
         orderCancel.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourseFailed);

+ 26 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CheckVo.java

@@ -0,0 +1,26 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description 检查功能返回
+ *
+ * @author liujunchi
+ * @date 2022-04-21
+ */
+@ApiModel("返回检查结果")
+public class CheckVo {
+
+    @ApiModelProperty("检查结果 1:是,0:否 ")
+    private YesOrNoEnum check;
+
+    public YesOrNoEnum getCheck() {
+        return check;
+    }
+
+    public void setCheck(YesOrNoEnum check) {
+        this.check = check;
+    }
+}

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

@@ -24,12 +24,23 @@ public class MusicSheetDetailVo extends MusicSheet {
     @ApiModelProperty("上传老师名称")
     private String userName;
 
+    @ApiModelProperty("上传用户头像")
+    private String userAvatar;
+
     @ApiModelProperty("标签名")
     private String musicTagNames;
 
     @ApiModelProperty("声部名")
     private String subjectNames;
 
+    public String getUserAvatar() {
+        return userAvatar;
+    }
+
+    public void setUserAvatar(String userAvatar) {
+        this.userAvatar = userAvatar;
+    }
+
     public String getMusicTagNames() {
         return musicTagNames;
     }

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml

@@ -44,6 +44,7 @@
         left join (select count(1) as num,amr.album_id_ from album_music_relate amr group by amr.album_id_) t1 on t1.album_id_ = t.id_
         left join (select count(1) as num,af.album_id_ from album_favorite af group by af.album_id_) t2 on t2.album_id_ = t.id_
         <where>
+            t.del_flag_ = 0
             <if test="query.idAndName != null and query.idAndName != ''">
                 and (t.id_ like concat('%',#{query.idAndName},'%') or
                     t.album_name_ like concat('%',#{query.idAndName},'%'))
@@ -77,6 +78,7 @@
         from music_album t
         left join album_favorite af2 on af2.album_id_ = t.id_
         <where>
+            t.del_flag_ = 0
             <if test="query.studentId != null">
                 and af2.user_id_ = #{query.studentId}
             </if>
@@ -105,6 +107,7 @@
         left join (select count(1) as num,amr.album_id_ from album_music_relate amr group by amr.album_id_) t1 on t1.album_id_ = t.id_
         left join (select count(1) as num,af.album_id_ from album_favorite af group by af.album_id_) t2 on t2.album_id_ = t.id_
         <where>
+            t.del_flag_ = 0
             <if test="records != null and records.size() != 0">
                 and t.id_ in
                 <foreach collection="records" item="item" open="(" close=")" separator=",">

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

@@ -170,6 +170,7 @@
         ,msa.metronome_url_ as accompanimentMetronomeUrl
         ,msa.track_ as track
         ,su.username_ as userName
+        ,su.avatar_ as userAvatar
         ,(select group_concat(mt.name_) from music_tag mt
         where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0) as musicTagNames
         ,(select group_concat(s.name_) from subject s

+ 44 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.student.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.enums.SysUserType;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
@@ -9,18 +10,23 @@ import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
+import com.yonge.cooleshow.biz.dal.vo.CheckVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.cooleshow.common.page.QueryInfo;
+import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
+import com.yonge.toolset.utils.string.StringUtil;
 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;
+
 /**
  * 曲谱表 web 控制层
  * @author yzp
@@ -138,4 +144,42 @@ public class MusicSheetController extends BaseController {
         return succeed(PageUtil.pageInfo(sheetVoIPage));
     }
 
+
+    /**
+     * 最近练习
+     */
+    @GetMapping("/realNameAuth/check")
+    @ApiOperation(value = "检查实名认证")
+    public HttpResponseResult<CheckVo> realNameAuthCheck() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+
+        CheckVo checkVo = new CheckVo();
+        if (StringUtil.isEmpty(sysUser.getIdCardNo())) {
+            checkVo.setCheck(YesOrNoEnum.NO);
+        }  else {
+            checkVo.setCheck(YesOrNoEnum.YES);
+        }
+        return succeed(checkVo);
+    }
+
+
+    /**
+     * 实名认证
+     */
+    @PostMapping(value = "/realNameAuth" ,consumes="application/json", produces="application/json")
+    @ApiOperation(value = "实名认证", httpMethod="POST",consumes="application/json", produces="application/json")
+    public HttpResponseResult<IdcardInfoExtractor> realNameAuth(@Valid @RequestBody RealnameAuthReq realNameAuthDto) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+
+        return sysUserFeignService.realNameAuth(realNameAuthDto);
+    }
+
+
+
 }