|
@@ -4,6 +4,7 @@ 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;
|
|
@@ -31,6 +32,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;
|
|
|
|
|
|
/**
|
|
@@ -65,6 +67,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
@Autowired
|
|
|
private MusicSheetAuthRecordService musicSheetAuthRecordService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
+
|
|
|
public MusicSheetDao getDao() {
|
|
|
return musicSheetDao;
|
|
|
}
|
|
@@ -300,7 +305,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
@Override
|
|
|
public HttpResponseResult<OrderCreateRes> buyMusicSheetCheck(OrderReq.OrderReqInfo orderReqInfo) {
|
|
|
|
|
|
- // todo 下单前的验证
|
|
|
+ // 下单前的验证
|
|
|
+ getSysUser(orderReqInfo.getUserId());
|
|
|
|
|
|
MusicSheetPayDto musicSheetPayDto = JSON.parseObject(
|
|
|
JSON.toJSONString(orderReqInfo.getBizContent()), MusicSheetPayDto.class);
|
|
@@ -308,9 +314,13 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
MusicSheet musicSheet = this.getById(musicSheetPayDto.getMusicSheetId());
|
|
|
OrderCreateRes orderCreateRes = new OrderCreateRes();
|
|
|
if (musicSheet == null) {
|
|
|
- // todo
|
|
|
+ throw new BizException("不存在曲目信息");
|
|
|
}
|
|
|
|
|
|
+ // 检查已经购买
|
|
|
+ checkoutPay(orderReqInfo.getUserId(),musicSheetPayDto.getMusicSheetId());
|
|
|
+
|
|
|
+
|
|
|
|
|
|
orderCreateRes.setRes(true);
|
|
|
orderCreateRes.setMerchId(musicSheet.getUserId());
|
|
@@ -323,6 +333,26 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 检查是否已购买当前曲目
|
|
|
+ *
|
|
|
+ * @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();
|
|
@@ -336,4 +366,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
|
|
|
musicSheetPurchaseRecordService.save(musicSheetPurchaseRecord);
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ private SysUser getSysUser(Long userId) {
|
|
|
+ return Optional.ofNullable(userId)
|
|
|
+ .map(sysUserFeignService::queryUserById)
|
|
|
+ .orElseThrow(() -> new BizException("用户不存在"));
|
|
|
+ }
|
|
|
}
|