|
|
@@ -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()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|