浏览代码

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

liujunchi 3 年之前
父节点
当前提交
1b47cecfed

+ 0 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderService.java

@@ -1,10 +1,8 @@
 package com.yonge.cooleshow.biz.dal.service;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
-import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.entity.UserOrder;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
@@ -14,9 +12,6 @@ import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderPayRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.List;

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

@@ -80,7 +80,16 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
 
     @Override
     public HttpResponseResult<UserAccountVo> accountTotal(UserAccountRecordSearch query) {
-        return HttpResponseResult.succeed(baseMapper.accountTotal(query));
+        UserAccountVo accountVo = baseMapper.accountTotal(query);
+        if (null == accountVo) {
+            accountVo = new UserAccountVo();
+        }
+        accountVo.setAmountUnrecorded(null == accountVo.getAmountUnrecorded() ? BigDecimal.ZERO : accountVo.getAmountUnrecorded());
+        accountVo.setAmountRecorded(null == accountVo.getAmountRecorded() ? BigDecimal.ZERO : accountVo.getAmountRecorded());
+        accountVo.setAmountTotal(null == accountVo.getAmountTotal() ? BigDecimal.ZERO : accountVo.getAmountTotal());
+        accountVo.setAmountUsable(null == accountVo.getAmountUsable() ? BigDecimal.ZERO : accountVo.getAmountUsable());
+        accountVo.setAmountFrozen(null == accountVo.getAmountFrozen() ? BigDecimal.ZERO : accountVo.getAmountFrozen());
+        return HttpResponseResult.succeed(accountVo);
     }
 
     @Override

+ 14 - 10
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountServiceImpl.java

@@ -216,33 +216,37 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
                 || (!PostStatusEnum.RECORDED.equals(postStatus) && !PostStatusEnum.CANCEL.equals(postStatus))) {
             throw new BizException("入账状态变更, 参数异常: recordId is {} postStatus is {}", recordId, postStatus.getCode());
         }
-        UserAccountRecord param = new UserAccountRecord();
-        param.setId(recordId);
-        param.setPostStatus(postStatus);
+        UserAccountRecordVo detail = userAccountRecordService.detail(recordId);
+        if (null == detail) {
+            throw new BizException("入账状态变更, 未找到记录信息: recordId is {} postStatus is {}", recordId, postStatus.getCode());
+        }
+        if (!PostStatusEnum.WAIT.equals(detail.getPostStatus())
+                && !PostStatusEnum.FROZEN.equals(detail.getPostStatus())) {
+            return HttpResponseResult.succeed();
+        }
+        detail.setPostStatus(postStatus);
         HttpResponseResult<UserAccountRecord> res = DistributedLock.of(redissonClient)
                 .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_ACCOUNT.getRedisKey(recordId)
-                        , this::doAccountChange, param, 10L);
+                        , this::doAccountChange, detail, 10L);
         if (null != res) {
             return res;
         } else {
-            throw new BizException("记录变更-账户记录变更失败: param is {}", JSONObject.toJSONString(param));
+            throw new BizException("记录变更-账户记录变更失败: param is {}", JSONObject.toJSONString(detail));
         }
     }
 
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult<UserAccountRecord> doAccountChange(UserAccountRecord param) {
+        //这里需要双重判断,这一次是锁内判断
         UserAccountRecordVo detail = userAccountRecordService.detail(param.getId());
-        if (null == detail) {
-            throw new BizException("入账状态变更, 未找到记录信息: recordId is {} postStatus is {}", param.getId(), param.getPostStatus().getCode());
-        }
         if (!PostStatusEnum.WAIT.equals(detail.getPostStatus())
                 && !PostStatusEnum.FROZEN.equals(detail.getPostStatus())) {
             return HttpResponseResult.succeed();
         }
-        detail.setPostStatus(param.getPostStatus());
+        detail.setPostStatus(detail.getPostStatus());
         //待入账
         if (PostStatusEnum.WAIT.equals(detail.getPostStatus())) {
-            if (PostStatusEnum.RECORDED.equals(param.getPostStatus())) {
+            if (PostStatusEnum.RECORDED.equals(detail.getPostStatus())) {
                 //正常入账
                 baseMapper.changeAccount(detail.getAccountId(), detail.getTransAmount(), detail.getInOrOut().getCode());
             } else if (PostStatusEnum.CANCEL.equals(param.getPostStatus())) {

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

@@ -8,10 +8,7 @@ import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
-import com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord;
-import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
-import com.yonge.cooleshow.biz.dal.entity.UserOrder;
-import com.yonge.cooleshow.biz.dal.entity.UserOrderPayment;
+import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
@@ -870,9 +867,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD)));
         } else if (GoodTypeEnum.LIVE.equals(goodType)) {
             //直播课取直播课成课时间+账期
-
-
-            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD)));
+            CourseGroup byId = courseGroupService.getById(orderDetailVo.getBizId());
+            instance.setTime(byId.getSalesEndDate());
+            instance.add(Calendar.DAY_OF_MONTH, Integer.parseInt(sysConfigService.findConfigValue(SysConfigConstant.LIVE_ACCOUNT_PERIOD)));
         }
         return instance.getTime();
     }

+ 56 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VipCardRecordController.java

@@ -0,0 +1,56 @@
+package com.yonge.cooleshow.teacher.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.search.VipCardRecordSearch;
+import com.yonge.cooleshow.biz.dal.service.VipCardRecordService;
+import com.yonge.cooleshow.biz.dal.vo.VipCardRecordVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/vipCardRecord")
+@Api(value = "购买会员卡记录表", tags = "购买会员卡记录表")
+public class VipCardRecordController extends BaseController {
+
+    @Autowired
+    private VipCardRecordService vipCardRecordService;
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    /**
+     * 查询单条
+     */
+    @GetMapping("/detail/{orderDetilId}")
+    @ApiOperation(value = "详情", notes = "传入订单详情id")
+    public HttpResponseResult<VipCardRecordVo> detail(@PathVariable("orderDetilId") Long orderDetilId) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(vipCardRecordService.detail(orderDetilId, user.getId()));
+    }
+
+    /**
+     * 查询分页
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "查询分页", notes = "传入vipCardRecordSearch")
+    public HttpResponseResult<PageInfo<VipCardRecordVo>> page(@RequestBody VipCardRecordSearch query) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        IPage<VipCardRecordVo> pages = vipCardRecordService.selectPage(PageUtil.getPage(query), query);
+        return succeed(PageUtil.pageInfo(pages));
+    }
+}