yangdamao 2 years ago
parent
commit
92e892fff6

+ 13 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -170,4 +170,17 @@ public class OrderController extends BaseController {
         return AjaxResult.success(map);
     }
 
+    /**
+     * 七大员题库商品开通
+     */
+    @ApiOperation("七大员题库商品开通")
+    @PostMapping("/question/open")
+    public AjaxResult<Void> questionGoodsOpen(@RequestBody questionOpenBo bo) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setCreateSysUserId(loginUser.getUser().getUserId());
+        bo.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(iOrderService.questionGoodsOpen(bo) ? 1 : 0);
+    }
+
+
 }

+ 0 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java

@@ -499,7 +499,6 @@ public class ExamApplyServiceImpl extends ServiceImpl<ExamApplyMapper, ExamApply
             calendar.setTime(DateUtils.timeToDate(dayAfter));
             int index = calendar.get(Calendar.DAY_OF_WEEK) - 1;
             String[] weeks = new String[]{"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
-
             if (weeks[index].equals("星期六") || weeks[index].equals("星期天")) {
                 day += 1;
 

+ 26 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/questionOpenBo.java

@@ -0,0 +1,26 @@
+package com.zhongzheng.modules.order.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2023年08月09日 13:58
+ */
+@ApiModel("七大员题库商品开通BO")
+@Data
+public class questionOpenBo implements Serializable {
+
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+
+    @ApiModelProperty("学员预约ID")
+    private List<Long> userSubscribeIds;
+
+    private Long createSysUserId;
+    private String createBy;
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -94,4 +94,6 @@ private static final long serialVersionUID=1L;
     private Integer divideModel;
     @ApiModelProperty("分成钱")
     private BigDecimal divideMoney;
+
+    private Long tenantId;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderInput.java

@@ -51,4 +51,8 @@ private static final long serialVersionUID=1L;
     private String oldOrderSn;
     /** 录单来源 1普通录单 2B端下单 */
     private Integer inputFrom;
+    /** 审核状态:1待审核 2已通过 3不通过 */
+    private Integer checkStauts;
+    /** 审核意见 */
+    private String checkReason;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java

@@ -118,4 +118,6 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
     String getBusinessById(Long orderGoodsId);
 
     List<OrderGoods> getApplyOrderGoods(List<Long> goodsIds, Long userId);
+
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderInputService.java

@@ -59,4 +59,6 @@ public interface IOrderInputService extends IService<OrderInput> {
 	List<OrderInputVo> getUserList(OrderInputQueryBo bo);
 
 	List<OrderInputVo> getUserGoodsList(OrderInputQueryBo bo);
+
+    void questionOrderOpen(String orderSn,Long tenantId);
 }

+ 3 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -2,10 +2,7 @@ package com.zhongzheng.modules.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
-import com.zhongzheng.modules.order.bo.OrderAddBo;
-import com.zhongzheng.modules.order.bo.OrderEditBo;
-import com.zhongzheng.modules.order.bo.OrderQueryBo;
-import com.zhongzheng.modules.order.bo.OrderUserCheckBuyBo;
+import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
@@ -115,4 +112,6 @@ public interface IOrderService extends IService<Order> {
 	Map<String, String> getActivityGoods(OrderAddBo bo);
 
 	List<String> queryBusinessFullNameBySn(String orderSn);
+
+	boolean questionGoodsOpen(questionOpenBo bo);
 }

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -36,7 +36,9 @@ import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.goods.bo.GoodsSectionListBo;
 import com.zhongzheng.modules.goods.domain.Goods;
+import com.zhongzheng.modules.goods.domain.GoodsQuestionRel;
 import com.zhongzheng.modules.goods.service.IGoodsCourseService;
+import com.zhongzheng.modules.goods.service.IGoodsQuestionRelService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsSectionListVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
@@ -48,9 +50,12 @@ import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.grade.vo.ClassPeriodVo;
 import com.zhongzheng.modules.order.bo.*;
+import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.domain.OrderInput;
 import com.zhongzheng.modules.order.mapper.OrderGoodsMapper;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
+import com.zhongzheng.modules.order.service.IOrderInputService;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
@@ -155,6 +160,12 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
     @Autowired
     private CourseMenuMapper courseMenuMapper;
 
+    @Autowired
+    private IGoodsQuestionRelService iGoodsQuestionRelService;
+
+    @Autowired
+    private IOrderInputService iOrderInputService;
+
     @Override
     public OrderGoodsVo queryById(Long orderGoodsId) {
         OrderGoods db = this.baseMapper.selectById(orderGoodsId);
@@ -724,6 +735,7 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         return baseMapper.getApplyOrderGoods(goodsIds,userId);
     }
 
+
     private boolean checkUnique(Long GoodsId,Long UserId) {
         ShoppingCart info = iShoppingCartService.getOne(new LambdaQueryWrapper<ShoppingCart>()
                 .eq(ShoppingCart::getUserId,UserId).eq(ShoppingCart::getGoodsId,GoodsId).last("limit 1"));

+ 108 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderInputServiceImpl.java

@@ -3,15 +3,31 @@ package com.zhongzheng.modules.order.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.goods.domain.Goods;
+import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.order.bo.OrderInputAddBo;
 import com.zhongzheng.modules.order.bo.OrderInputEditBo;
 import com.zhongzheng.modules.order.bo.OrderInputQueryBo;
+import com.zhongzheng.modules.order.domain.Order;
+import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.domain.OrderInput;
 import com.zhongzheng.modules.order.mapper.OrderInputMapper;
+import com.zhongzheng.modules.order.service.IOrderGoodsFreeService;
+import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderInputService;
+import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderInputVo;
+import com.zhongzheng.modules.system.domain.SysOldOrg;
+import com.zhongzheng.modules.system.service.ISysOldOrgService;
+import com.zhongzheng.modules.top.goods.domain.TopOldOrderGoods;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderGoodsService;
+import com.zhongzheng.modules.user.domain.User;
+import com.zhongzheng.modules.user.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -32,6 +48,20 @@ import java.util.stream.Collectors;
 @Service
 public class OrderInputServiceImpl extends ServiceImpl<OrderInputMapper, OrderInput> implements IOrderInputService {
 
+    @Autowired
+    private ITopOldOrderGoodsService topOldOrderGoodsService;
+    @Autowired
+    private IOrderService iOrderService;
+    @Autowired
+    private IOrderGoodsService iOrderGoodsService;
+    @Autowired
+    private IGoodsService iGoodsService;
+    @Autowired
+    private IUserService iUserService;
+    @Autowired
+    private ISysOldOrgService iSysOldOrgService;
+
+
     @Override
     public OrderInputVo queryById(Long id){
         OrderInput db = this.baseMapper.selectById(id);
@@ -134,4 +164,82 @@ public class OrderInputServiceImpl extends ServiceImpl<OrderInputMapper, OrderIn
     public List<OrderInputVo> getUserGoodsList(OrderInputQueryBo bo) {
         return this.baseMapper.getUserGoodsList(bo);
     }
+
+    @Override
+    public void questionOrderOpen(String orderSn,Long tenantId) {
+        OrderInput orderInput = getOne(new LambdaQueryWrapper<OrderInput>().eq(OrderInput::getInputOrderSn, orderSn));
+        if (ObjectUtils.isNull(orderInput)){
+            throw new CustomException("订单信息获取有误");
+        }
+
+        //创建学员订单
+        List<TopOldOrderGoods> orderGoodsList = topOldOrderGoodsService
+                .list(new LambdaQueryWrapper<TopOldOrderGoods>()
+                .eq(TopOldOrderGoods::getOrderSn, orderSn)
+                .eq(TopOldOrderGoods::getStatus, 1));
+        if (CollectionUtils.isEmpty(orderGoodsList)){
+            return;
+        }
+        SysOldOrg oldOrg = iSysOldOrgService.getOne(new LambdaQueryWrapper<SysOldOrg>()
+                .eq(SysOldOrg::getTenantId, tenantId)
+                .eq(SysOldOrg::getStatus, 1)
+                .last("limit 1"));
+
+        for (TopOldOrderGoods orderGoods : orderGoodsList) {
+            Order order = new Order();
+            //生成订单号
+            String out_trade_no = DateUtils.getDateOrderSn();
+            order.setOrderSn(out_trade_no);
+            User user = iUserService.getOne(new LambdaQueryWrapper<User>()
+                    .eq(User::getIdCard, orderGoods.getUserCard())
+                    .eq(User::getTenantId, tenantId));
+            if (ObjectUtils.isNull(user)){
+                throw new CustomException("学员【"+user.getRealname()+"】信息不存在");
+            }
+            order.setUserId(user.getUserId());
+            order.setOrderPrice(orderGoods.getGoodsRealPrice());
+            order.setOrderStatus(1);
+            order.setCreateTime(DateUtils.getNowTime());
+            order.setUpdateTime(DateUtils.getNowTime());
+            order.setPayTime(DateUtils.getNowTime());
+            order.setPayType(8);
+            order.setFinishTime(DateUtils.getNowTime());
+            order.setOrderType(4);
+            order.setPayPrice(orderGoods.getGoodsRealPrice());
+            order.setTenantId(tenantId);
+            order.setOrderFrom(9);
+            order.setCreateUsername(orderInput.getCreateUsername());
+            order.setStatus(1);
+            order.setCreateSysUserId(orderInput.getCreateSysUserId());
+            order.setOrderBase(1);
+            order.setInputOrderSn(order.getOrderSn());
+            order.setPayStatus(2);
+            order.setCheckStatus(1);
+            order.setOrderRefundStatus(1);
+            order.setInvoiceStatus(0);
+            order.setFinishStatus(1);
+            order.setAccomplishTime(DateUtils.getNowTime());
+            order.setOrderOrg(oldOrg.getOrgId());
+            order.setOperationType(oldOrg.getOperationType());
+            iOrderService.save(order);
+            //订单商品
+            OrderGoods add = new OrderGoods();
+            add.setOrderSn(out_trade_no);
+            Goods goods = iGoodsService.getById(orderGoods.getGoodsId());
+            add.setGoodsId(goods.getGoodsId());
+            add.setGoodsYear(goods.getYear().toString());
+            add.setGoodsRealPrice(goods.getStandPrice());
+            add.setGoodsPrice(goods.getStandPrice());
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            add.setTenantId(tenantId);
+            add.setStatus(1);
+            add.setGoodsReceived(order.getOrderPrice());
+            add.setRefundStatus(0);
+            add.setPayStatus(3);
+            iOrderGoodsService.save(add);
+        }
+        orderInput.setCheckStauts(2);
+        updateById(orderInput);
+    }
 }

+ 122 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -28,12 +28,8 @@ import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.base.service.IProfileTpService;
 import com.zhongzheng.modules.base.service.IShoppingCartService;
 import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
-import com.zhongzheng.modules.course.domain.CourseEducationType;
-import com.zhongzheng.modules.course.domain.CourseSubject;
-import com.zhongzheng.modules.course.service.ICourseBusinessService;
-import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
-import com.zhongzheng.modules.course.service.ICourseMenuService;
-import com.zhongzheng.modules.course.service.ICourseSubjectService;
+import com.zhongzheng.modules.course.domain.*;
+import com.zhongzheng.modules.course.service.*;
 import com.zhongzheng.modules.course.vo.CourseBusinessVo;
 import com.zhongzheng.modules.course.vo.CourseModuleFreeExamVo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivity;
@@ -82,17 +78,22 @@ import com.zhongzheng.modules.top.financial.service.ITopCostTpItemService;
 import com.zhongzheng.modules.top.financial.service.ITopCostTpService;
 import com.zhongzheng.modules.top.financial.vo.TopCostTpItemVo;
 import com.zhongzheng.modules.top.financial.vo.TopCostTpVo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsAddBo;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrder;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrderCheck;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrderCheckLog;
 import com.zhongzheng.modules.top.goods.service.ITopOldOrderCheckLogService;
 import com.zhongzheng.modules.top.goods.service.ITopOldOrderCheckService;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
 import com.zhongzheng.modules.top.settle.domian.TopInstSettle;
 import com.zhongzheng.modules.top.settle.service.ITopInstSettleService;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.domain.UserExamGoods;
+import com.zhongzheng.modules.user.domain.UserSubscribe;
 import com.zhongzheng.modules.user.service.IUserExamGoodsService;
 import com.zhongzheng.modules.user.service.IUserService;
+import com.zhongzheng.modules.user.service.IUserSubscribeService;
 import com.zhongzheng.modules.user.vo.UserVo;
 import com.zhongzheng.modules.wx.service.IWxPayService;
 import net.polyv.common.v1.util.StringUtils;
@@ -147,7 +148,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     @Autowired
     private IShoppingCartService iShoppingCartService;
-
+    @Autowired
+    private ICourseEducationTypeService iCourseEducationTypeService;
+    @Autowired
+    private ICourseProjectTypeService iCourseProjectTypeService;
+    @Autowired
+    private IMajorService iMajorService;
     @Autowired
     private ICourseBusinessService iCourseBusinessService;
 
@@ -206,7 +212,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     private IGoodsQuestionRelService iGoodsQuestionRelService;
     @Autowired
     private IQuestionMerchantService iQuestionMerchantService;
-
+    @Autowired
+    private IUserSubscribeService iUserSubscribeService;
+    @Autowired
+    private ITopOldOrderService topOldOrderService;
 
     @Override
     public OrderVo queryById(Long orderId) {
@@ -2662,4 +2671,109 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         iClassGradeService.gradeChangeEjjjPeople(goods.getBusinessId(), gradeId);
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean questionGoodsOpen(questionOpenBo bo) {
+        //开通校验
+        questionGoodsOpenCheck(bo);
+        //创建录单信息
+        OrderInput orderInput = new OrderInput();
+        String orderInputSn = DateUtils.getDateInputOrderSn();
+        orderInput.setInputOrderSn(orderInputSn);
+        orderInput.setCreateUsername(bo.getCreateBy());
+        orderInput.setStatus(1);
+        orderInput.setCreateSysUserId(bo.getCreateSysUserId());
+        orderInput.setUpdateTime(DateUtils.getNowTime());
+        orderInput.setCreateTime(DateUtils.getNowTime());
+        Goods goods = iGoodsService.getById(bo.getGoodsId());
+        BigDecimal standPrice = goods.getStandPrice();
+        orderInput.setEducationTypeId(goods.getEducationTypeId());
+        orderInput.setProjectId(goods.getProjectId().longValue());
+        orderInput.setBusinessId(goods.getBusinessId());
+        orderInput.setInputFrom(4);
+        orderInput.setCheckStauts(1);
+
+
+        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+        SysTenant sysTenant = sysTenantService.getById(Long.valueOf(tenantId));
+        //学员人数
+        Integer num = bo.getUserSubscribeIds().size();
+        //订单推送总平台审核
+        TopOldOrderAddBo addBo = new TopOldOrderAddBo();
+        addBo.setOrderSn(orderInputSn);
+        addBo.setOrderPrice(standPrice.multiply(new BigDecimal(num)));
+        addBo.setOrderStatus(1);
+        addBo.setCreateTime(DateUtils.getNowTime());
+        addBo.setUpdateTime(DateUtils.getNowTime());
+        addBo.setPayTime(DateUtils.getNowTime());
+        addBo.setPayType(3);
+        addBo.setOrderType(1);
+        addBo.setOrderBase(1);
+        addBo.setPayPrice(standPrice.multiply(new BigDecimal(num)));
+        addBo.setOrderFrom(4);
+        addBo.setCreateUsername(bo.getCreateBy());
+        addBo.setStatus(1);
+        addBo.setPayStatus(3);
+        addBo.setOrderReceived(standPrice.multiply(new BigDecimal(num)));
+        addBo.setRemark("七大员题库商品订单");
+        addBo.setOrderOrg(sysTenant.getTenantName());
+        addBo.setTenantId(Long.valueOf(tenantId));
+        addBo.setBuyTime(DateUtils.getNowTime());
+        addBo.setPurchaseOrg(sysTenant.getTenantName());
+
+        //业务层次
+        CourseEducationType educationType = iCourseEducationTypeService.getById(goods.getEducationTypeId());
+        CourseProjectType projectType = iCourseProjectTypeService.getById(goods.getProjectId());
+        CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
+        Major major = iMajorService.getById(goods.getMajorId());
+
+        //订单商品
+        List<TopOldOrderGoodsAddBo> collect = bo.getUserSubscribeIds().stream().map(userSubscribeId -> {
+            TopOldOrderGoodsAddBo goodsAddBo = new TopOldOrderGoodsAddBo();
+            goodsAddBo.setOrderSn(orderInputSn);
+            goodsAddBo.setGoodsId(bo.getGoodsId());
+            goodsAddBo.setGoodsPrice(goods.getStandPrice());
+            goodsAddBo.setGoodsRealPrice(goods.getStandPrice());
+            goodsAddBo.setCreateTime(DateUtils.getNowTime());
+            goodsAddBo.setUpdateTime(DateUtils.getNowTime());
+            goodsAddBo.setStatus(1);
+            goodsAddBo.setGoodsReceived(goods.getStandPrice());
+            goodsAddBo.setRefundStatus(0);
+            goodsAddBo.setPayStatus(3);
+            goodsAddBo.setGoodsName(goods.getGoodsName());
+            goodsAddBo.setMajorName(major.getCategoryName());
+            goodsAddBo.setBusinessName(business.getBusinessName() + projectType.getProjectName());
+            goodsAddBo.setBusinessFullName("学校业务" + educationType.getEducationName() + business.getBusinessName() + projectType.getProjectName());
+
+            UserSubscribe userSubscribe = iUserSubscribeService.getById(userSubscribeId);
+            User user = iUserService.getById(userSubscribe.getUserId());
+            goodsAddBo.setUserName(user.getRealname());
+            goodsAddBo.setUserCard(EncryptHandler.decrypt(user.getIdCard()));
+            goodsAddBo.setUserPhone(EncryptHandler.decrypt(user.getTelphone()));
+            return goodsAddBo;
+        }).collect(Collectors.toList());
+        addBo.setOrderGoodsList(collect);
+        topOldOrderService.insertByAddBo(addBo);
+        return iOrderInputService.save(orderInput);
+    }
+
+    private void questionGoodsOpenCheck(questionOpenBo bo) {
+        for (Long userSubscribeId : bo.getUserSubscribeIds()) {
+            //校验学员是否已经购买题库
+            UserSubscribe userSubscribe = iUserSubscribeService.getById(userSubscribeId);
+            User user = iUserService.getById(userSubscribe.getUserId());
+            if (ObjectUtils.isNull(userSubscribe)){
+                throw new CustomException(String.format("学员【%s】预约信息有误",user.getRealname()));
+            }
+            int count = iGoodsQuestionRelService.count(new LambdaQueryWrapper<GoodsQuestionRel>()
+                    .eq(GoodsQuestionRel::getOrderGoodsId, userSubscribe.getOrderGoodsId())
+                    .eq(GoodsQuestionRel::getQuestionGoodsId, bo.getGoodsId())
+                    .eq(GoodsQuestionRel::getStatus, 1)
+                    .gt(GoodsQuestionRel::getQuestionDoNum, 0));
+            if (count > 0) {
+                throw new CustomException(String.format("学员【】已购买当前题库商品,请勿重复开通!",user.getRealname()));
+            }
+        }
+    }
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderAddBo.java

@@ -73,7 +73,7 @@ public class TopOldOrderAddBo {
     @ApiModelProperty("支付价格(成交价)")
     private BigDecimal payPrice;
     /** 订单来源 1新系统C端订单,2旧系统C端订单,3旧系统B端订单  */
-    @ApiModelProperty("订单来源 1新系统C端订单,2旧系统C端订单,3旧系统B端订单 ")
+    @ApiModelProperty("订单来源 1新系统C端订单,2旧系统C端订单,3旧系统B端订单 4新系统后台题库订单")
     private Integer orderFrom;
     /** 业务员名称 */
     @ApiModelProperty("业务员名称")

+ 21 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -213,6 +213,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Autowired
     private ITopInstSettleRelationService topInstSettleRelationService;
 
+    @Autowired
+    private IOrderInputService orderInputService;
+
     @Value("${oldOrder.studyRecord}")
     private String ORDER_STUDY;
 
@@ -435,7 +438,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
         add.setRefundStatus(1);//退款状态:正常
         add.setFinishStatus(0);//完单状态:未完单
-        if (bo.getOrderFrom() == 3) {
+        if (bo.getOrderFrom() == 3 || bo.getOrderFrom() == 4) {
             add.setCheckStatus(0);//待审核
         } else {
             add.setCheckStatus(1);//C端不需要审核
@@ -457,7 +460,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         // 获取企业默认成本模板
         TopCostTp costTp = topCostTpService.getOne(new LambdaQueryWrapper<TopCostTp>()
                 .eq(TopCostTp::getTenantId, bo.getTenantId()).eq(TopCostTp::getDefaultStatus, 1).last("limit 1"));
-        if (ObjectUtils.isNotNull(costTp)) {
+        if (ObjectUtils.isNotNull(costTp) && bo.getOrderFrom() != 4) {
             TopCostTpVo topCostTpVo = BeanUtil.toBean(costTp, TopCostTpVo.class);
             //成本项
             BigDecimal costTotal = new BigDecimal("0.00");//成本
@@ -1189,6 +1192,22 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             //处理供应商时间结算单
             instTimeSettleOrder(oldOrder, checkTime);
         }
+        if (oldOrder.getOrderFrom() == 4){
+            //新系统七大员开通题库订单
+            switch (bo.getCheckStatus()){
+                case 1://审核通过
+                    orderInputService.questionOrderOpen(oldOrder.getOrderSn(),oldOrder.getTenantId());
+                    break;
+                case 2://审核不通过
+                    OrderInput orderInput = orderInputService.getOne(new LambdaQueryWrapper<OrderInput>()
+                            .eq(OrderInput::getInputOrderSn, oldOrder.getOrderSn()));
+                    orderInput.setCheckStauts(3);
+                    orderInput.setCheckReason(bo.getCheckReason());
+                    orderInputService.updateById(orderInput);
+                    break;
+            }
+            return true;
+        }
 
         if (bo.getCheckStatus() == 1 && oldOrder.getFinishSign() == 0 && oldOrder.getOrderUncollected().compareTo(BigDecimal.ZERO) == 0) {
             //订单审核通过,账款已结清,满足完单条件