|
@@ -1360,293 +1360,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
return BaseController.succeed(payMap);
|
|
|
}
|
|
|
|
|
|
- /*@Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public Map rePay(RegisterPayDto registerPayDto) throws Exception {
|
|
|
- StudentRegistration studentRegistration = studentRegistrationService.get(registerPayDto.getRegisterId().longValue());
|
|
|
- if (studentRegistration == null) {
|
|
|
- throw new BizException("报名信息有误,请核查");
|
|
|
- }
|
|
|
- Integer tenantId = TenantContextHolder.getTenantId();
|
|
|
-
|
|
|
- Integer userId = studentRegistration.getUserId();
|
|
|
-
|
|
|
- List<StudentPaymentOrder> applyOrderList = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.ING);
|
|
|
-
|
|
|
- StudentPaymentOrder applyOrder = null;
|
|
|
-
|
|
|
- if(applyOrderList != null && applyOrderList.size() > 0){
|
|
|
- applyOrder = applyOrderList.get(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (applyOrder == null) {
|
|
|
- throw new BizException("没有支付中订单,请在我的订单中查看订单状态");
|
|
|
- }
|
|
|
-
|
|
|
- // 查询订单状态
|
|
|
- PayStatus payStatus = studentPaymentOrderService.queryPayStatus(applyOrder.getPaymentChannel(), applyOrder.getOrderNo(), applyOrder.getTransNo());
|
|
|
- if(payStatus != PayStatus.FAILED){
|
|
|
- if(payStatus == PayStatus.SUCCESSED){
|
|
|
- throw new BizException("订单已支付成功,请勿重复支付");
|
|
|
- }*//*else if(payStatus == PayStatus.PAYING){
|
|
|
- throw new BizException("订单还在交易中,请稍后重试");
|
|
|
- }*//*
|
|
|
- }
|
|
|
-
|
|
|
- MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderDao.findByMusicGroupRegCalender(studentRegistration.getMusicGroupId());
|
|
|
- if(musicGroupRegCalender == null){
|
|
|
- throw new BizException("缴费信息不存在");
|
|
|
- }
|
|
|
-
|
|
|
- //手动关闭订单
|
|
|
- applyOrder.setStatus(DealStatusEnum.FAILED);
|
|
|
- applyOrder.setMemo("用户手动关闭");
|
|
|
- studentPaymentOrderService.callOrderCallBack(applyOrder);
|
|
|
-
|
|
|
- BigDecimal amount = registerPayDto.getAmount(); //前端获取的价格
|
|
|
- BigDecimal orderAmount = new BigDecimal("0");
|
|
|
-
|
|
|
- //获取课程价格
|
|
|
-// MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
|
-// BigDecimal courseFee = musicOneSubjectClassPlan.getFee() == null ? BigDecimal.ZERO : musicOneSubjectClassPlan.getFee();
|
|
|
-// orderAmount = orderAmount.add(courseFee);
|
|
|
-
|
|
|
- BigDecimal remitFee = BigDecimal.ZERO;
|
|
|
- BigDecimal courseRemitFee = BigDecimal.ZERO; //课程减免费用
|
|
|
- boolean remitCourseRFeeFlag = false; //减免课程费用标识
|
|
|
-
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
- if(musicGroup == null){
|
|
|
- throw new BizException("查询乐团信息失败");
|
|
|
- }
|
|
|
-
|
|
|
- //乐器及打包辅件
|
|
|
- List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
|
|
|
- if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) {
|
|
|
- String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(Object::toString).collect(Collectors.joining(","));
|
|
|
- goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds);
|
|
|
- }
|
|
|
- for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
|
|
|
- Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
|
|
|
- });
|
|
|
-
|
|
|
- if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
|
|
|
- String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId());
|
|
|
- if (!groupType.containsKey(kitGroupPurchaseType)) {
|
|
|
- throw new BizException("乐器提供方式不存在,请核查");
|
|
|
- }
|
|
|
- if (!kitGroupPurchaseType.equals("GROUP")) {
|
|
|
- goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee());
|
|
|
- } else {
|
|
|
- remitCourseRFeeFlag = goodsGroup.getGroupRemissionCourseFee().equals(1);
|
|
|
- }
|
|
|
- goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
|
|
|
- remitFee = groupType.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : groupType.get(kitGroupPurchaseType);
|
|
|
- }
|
|
|
- goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
|
|
|
-
|
|
|
- if(goodsGroup.getType().equals(GoodsType.ACCESSORIES)){
|
|
|
- if((registerPayDto.getBuyCloudTeacher() || registerPayDto.getBuyCloudTeacherPlus()) && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
|
|
|
- goodsGroup.setPrice(BigDecimal.ZERO);
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(musicGroup.getOrganId() == 55 && (registerPayDto.getNewCourse() == null || registerPayDto.getNewCourse().size() == 0) && !(registerPayDto.getBuyCloudTeacher() || registerPayDto.getBuyCloudTeacherPlus())){
|
|
|
- //取商品零售价
|
|
|
- if (StringUtils.isNotBlank(goodsGroup.getGoodsIdList())) {
|
|
|
- List<Goods> goodsList = goodsDao.findGoodsByIds(goodsGroup.getGoodsIdList());
|
|
|
- for(Goods goods : goodsList){
|
|
|
- orderAmount = orderAmount.add(goods.getDiscountPrice());
|
|
|
- }
|
|
|
- }
|
|
|
- }else{
|
|
|
- orderAmount = orderAmount.add(goodsGroup.getPrice());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //新课程形态
|
|
|
- List<MusicGroupPaymentCalenderCourseSettings> newCourses = new ArrayList<>();
|
|
|
- if (musicGroupRegCalender.getPayUserType() == PayUserType.STUDENT && registerPayDto.getNewCourse() != null && registerPayDto.getNewCourse().size() > 0) {
|
|
|
- newCourses = musicGroupPaymentCalenderCourseSettingsDao.getCalenderCourseSettings(registerPayDto.getNewCourse());
|
|
|
- for (MusicGroupPaymentCalenderCourseSettings calenderCourseSetting : newCourses) {
|
|
|
- if (remitCourseRFeeFlag && !calenderCourseSetting.getIsStudentOptional()) {
|
|
|
- courseRemitFee = courseRemitFee.add(calenderCourseSetting.getCourseCurrentPrice());
|
|
|
- continue;
|
|
|
- }
|
|
|
- orderAmount = orderAmount.add(calenderCourseSetting.getCourseCurrentPrice());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (registerPayDto.getBuyMaintenance()) {
|
|
|
- String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONE_YEAR_MUSICAL_REPAIR_AMOUNT, tenantId);
|
|
|
- if(StringUtils.isEmpty(configValue)){
|
|
|
- throw new BizException("乐保价格异常,请联系指导老师");
|
|
|
- }
|
|
|
- orderAmount = orderAmount.add(new BigDecimal(configValue));
|
|
|
- }
|
|
|
-
|
|
|
- studentRegistration.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
|
|
|
- studentRegistration.setOrganId(musicGroup.getOrganId());
|
|
|
- studentRegistration.setPayingStatus(1);
|
|
|
-
|
|
|
- Date date = new Date();
|
|
|
-
|
|
|
- CloudTeacherOrder cloudTeacherOrder = null;
|
|
|
-
|
|
|
- //云教练/云教练+
|
|
|
- if (registerPayDto.getBuyCloudTeacher() || registerPayDto.getBuyCloudTeacherPlus()) {
|
|
|
-
|
|
|
- BigDecimal cloudTeacherPrice = BigDecimal.ZERO;
|
|
|
- if (musicGroupRegCalender.getMemberRankSettingId() != null) {
|
|
|
- cloudTeacherPrice = musicGroupRegCalender.getMemberPaymentAmount();
|
|
|
- } else {
|
|
|
- if (musicGroup.getCloudTeacherType() != null) {
|
|
|
- OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
|
|
|
- cloudTeacherPrice = musicGroup.getCloudTeacherType() == 0 ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- orderAmount = orderAmount.add(cloudTeacherPrice);
|
|
|
- studentRegistration.setHasCloudTeacher(0);
|
|
|
-
|
|
|
-
|
|
|
- //创建订单
|
|
|
- cloudTeacherOrder = new CloudTeacherOrder();
|
|
|
-
|
|
|
- cloudTeacherOrder.setType(PeriodEnum.MONTH);//月
|
|
|
- cloudTeacherOrder.setTime(musicGroupRegCalender.getMemberValidDate() == null ? 6 : musicGroupRegCalender.getMemberValidDate());
|
|
|
-
|
|
|
- cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
|
|
|
- cloudTeacherOrder.setStudentId(studentRegistration.getUserId());
|
|
|
- cloudTeacherOrder.setLevel(musicGroupRegCalender.getMemberRankSettingId() == null ? 1 : musicGroupRegCalender.getMemberRankSettingId());
|
|
|
- cloudTeacherOrder.setAmount(musicGroupRegCalender.getMemberPaymentAmount() == null ? cloudTeacherPrice : musicGroupRegCalender.getMemberPaymentAmount());
|
|
|
- cloudTeacherOrder.setStatus(0);
|
|
|
- cloudTeacherOrder.setMusicGroupId(musicGroup.getId());
|
|
|
- }
|
|
|
-
|
|
|
- String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
-
|
|
|
- String channelType = "";
|
|
|
- StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(registerPayDto.getCouponIdList(),amount,true);
|
|
|
- studentPaymentOrder.setUserId(studentRegistration.getUserId());
|
|
|
- studentPaymentOrder.setGroupType(GroupType.MUSIC);
|
|
|
- studentPaymentOrder.setOrderNo(orderNo);
|
|
|
- studentPaymentOrder.setType(OrderTypeEnum.APPLY);
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
- studentPaymentOrder.setPaymentChannel(channelType);
|
|
|
- studentPaymentOrder.setMusicGroupId(studentRegistration.getMusicGroupId());
|
|
|
- studentPaymentOrder.setCalenderId(musicGroupRegCalender.getId());
|
|
|
- studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
- //生成订单详情
|
|
|
- studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration,studentPaymentOrder,goodsGroups,remitFee,
|
|
|
- courseRemitFee,
|
|
|
- newCourses,
|
|
|
- registerPayDto);
|
|
|
- studentPaymentOrder = studentPaymentOrderService.get(studentPaymentOrder.getId());
|
|
|
- orderAmount = studentPaymentOrder.getActualAmount();
|
|
|
- if (amount.compareTo(orderAmount) != 0) {
|
|
|
- throw new BizException("商品价格不符");
|
|
|
- }
|
|
|
- if (amount.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
- throw new BizException("价格异常");
|
|
|
- }
|
|
|
- boolean canPay = studentPaymentOrder.getClassGroupId() != null && studentPaymentOrder.getClassGroupId().equals(206);
|
|
|
-
|
|
|
- if(cloudTeacherOrder != null){
|
|
|
- cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
|
|
|
- cloudTeacherOrder.setCreateTime(date);
|
|
|
- cloudTeacherOrder.setUpdateTime(date);
|
|
|
- cloudTeacherOrderService.insert(cloudTeacherOrder);
|
|
|
- }
|
|
|
-
|
|
|
- BigDecimal balance = BigDecimal.ZERO;
|
|
|
- if (registerPayDto.getUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- SysUserCashAccount userCashAccount = sysUserCashAccountService.get(userId);
|
|
|
- if (userCashAccount == null) {
|
|
|
- throw new BizException("用户账户找不到");
|
|
|
- }
|
|
|
- if (userCashAccount.getBalance() != null && userCashAccount.getBalance().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
|
|
|
- amount = amount.subtract(balance);
|
|
|
- studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
|
- studentPaymentOrder.setActualAmount(amount);
|
|
|
- studentPaymentOrder.setBalancePaymentAmount(balance);
|
|
|
- sysUserCashAccountService.updateBalance(userId, balance.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐团报名");
|
|
|
- }
|
|
|
- }
|
|
|
- studentPaymentOrder.setBatchNo(musicGroupRegCalender.getId() + "");
|
|
|
- studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
|
- studentPaymentOrder.setRemitFee(remitFee);
|
|
|
- studentPaymentOrder.setCourseRemitFee(courseRemitFee);
|
|
|
- studentPaymentOrder.setOrganId(musicGroup.getOrganId());
|
|
|
- studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
|
|
|
- studentPaymentOrder.setUpdateTime(date);
|
|
|
-
|
|
|
- if ("205".equals(studentPaymentOrder.getPaymentAccountNo())) {
|
|
|
- if(!canPay) {
|
|
|
- studentPaymentOrder.setPaymentChannel("ADAPAY");
|
|
|
- }
|
|
|
- studentRegistration.setPayingStatus(2);
|
|
|
- }
|
|
|
- studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
- studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
|
|
|
-
|
|
|
- studentRegistrationService.update(studentRegistration);
|
|
|
-
|
|
|
- if ("205".equals(studentPaymentOrder.getPaymentAccountNo())) {
|
|
|
- Integer teacherId = musicGroup.getEducationalTeacherId();
|
|
|
- SysUser endTeacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
- Map<Integer, String> userPhoneMap = new HashMap<>();
|
|
|
- userPhoneMap.put(endTeacher.getId(), endTeacher.getPhone());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.NO_BUY_CLOUD_TEACHER_MSG,
|
|
|
- userPhoneMap, null, 0, null, null, musicGroup.getName(), studentRegistration.getName());
|
|
|
-
|
|
|
- if(!canPay) {
|
|
|
- Map<String, String> notifyMap = new HashMap<>();
|
|
|
- notifyMap.put("hasPaidZero", "205");
|
|
|
- notifyMap.put("orderNo", studentPaymentOrder.getOrderNo());
|
|
|
- return notifyMap;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (amount.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
- studentPaymentRouteOrderService.addRouteOrder(orderNo, musicGroup.getOrganId(), balance);
|
|
|
- Map<String, String> notifyMap = new HashMap<>();
|
|
|
- notifyMap.put("tradeState", "1");
|
|
|
- notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
|
|
|
- notifyMap.put("channelType", channelType);
|
|
|
- notifyMap.put("orderNo", "");
|
|
|
- studentPaymentOrderService.updateOrder(notifyMap);
|
|
|
- return notifyMap;
|
|
|
- }
|
|
|
-
|
|
|
- String orderSubject = "乐团报名";
|
|
|
- String receiver = "register";
|
|
|
- if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType().equals(CooperationOrgan.OwnershipType.COOPERATION)) {
|
|
|
- orderSubject = "乐团相关费用";
|
|
|
- }
|
|
|
- String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
|
|
|
- Map payMap = payService.getPayMap(
|
|
|
- amount,
|
|
|
- balance,
|
|
|
- orderNo,
|
|
|
- baseApiUrl + "/api-student/studentOrder/notify",
|
|
|
- baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
|
|
|
- orderSubject,
|
|
|
- orderSubject,
|
|
|
- musicGroup.getOrganId(),
|
|
|
- receiver
|
|
|
- );
|
|
|
-
|
|
|
- studentPaymentOrder.setOrganId(musicGroup.getOrganId());
|
|
|
- studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
|
|
|
- studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
|
|
|
- studentPaymentOrder.setUpdateTime(date);
|
|
|
- studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
- return payMap;
|
|
|
- }*/
|
|
|
-
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateSubjectInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
|
|
@@ -3808,21 +3521,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
return musicGroup;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public List<ImGroupMember> queryMusicGroupTeachers(String musicGroupId) {
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
- List<ImGroupMember> groupMembers = new ArrayList<>();
|
|
|
- Set teacherIds = new HashSet(4);
|
|
|
- teacherIds.add(musicGroup.getEducationalTeacherId());
|
|
|
- teacherIds.add(musicGroup.getTeamTeacherId());
|
|
|
- teacherIds.add(musicGroup.getOperatorUserId());
|
|
|
- teacherIds.add(musicGroup.getDirectorUserId());
|
|
|
- teacherIds.removeAll(Collections.singleton(null));
|
|
|
- for (Object teacherId : teacherIds) {
|
|
|
- groupMembers.add(new ImGroupMember(teacherId.toString()));
|
|
|
- }
|
|
|
- return groupMembers;
|
|
|
- }
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|