|
@@ -5,8 +5,10 @@ import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
|
|
|
import com.ym.mec.biz.dal.dto.RegisterPayDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
import com.ym.mec.biz.dal.enums.GoodsType;
|
|
|
import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.controller.BaseController;
|
|
|
import com.ym.mec.common.entity.HttpResponseResult;
|
|
@@ -16,6 +18,7 @@ import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiImplicitParams;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -97,6 +100,93 @@ public class MusicGroupController extends BaseController {
|
|
|
return failed("报名信息有误,请核查");
|
|
|
}
|
|
|
|
|
|
+ StudentPaymentOrder ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId().toString(), DealStatusEnum.SUCCESS);
|
|
|
+ if (ApplyOrder != null) {
|
|
|
+ return failed("您已支付成功,请勿重复支付");
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断用户是否已存在订单
|
|
|
+ ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId().toString(), DealStatusEnum.ING);
|
|
|
+ if (ApplyOrder != null) {
|
|
|
+ return failed(HttpStatus.CONTINUE, "您有待支付的订单");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal amount = registerPayDto.getAmount(); //前端获取的价格
|
|
|
+ BigDecimal orderAmount = new BigDecimal("0");
|
|
|
+
|
|
|
+ //获取课程价格
|
|
|
+ MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
|
|
|
+ BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
|
|
|
+ orderAmount = orderAmount.add(courseFee);
|
|
|
+
|
|
|
+
|
|
|
+ //乐器及打包辅件
|
|
|
+ List<MusicGroupSubjectGoodsGroup> goodsGroups = null;
|
|
|
+ if (registerPayDto.getGoodsGroupIds() != null && !registerPayDto.getGoodsGroupIds().equals("")) {
|
|
|
+ goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(registerPayDto.getGoodsGroupIds());
|
|
|
+ for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
|
|
|
+ orderAmount = orderAmount.add(goodsGroup.getPrice());
|
|
|
+ //团购乐器减免课程费用
|
|
|
+ if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && goodsGroup.getRemissionCourseFee() != null && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.GROUP)) {//团购
|
|
|
+ orderAmount = orderAmount.subtract(goodsGroup.getRemissionCourseFee());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //单独辅件
|
|
|
+ List<Goods> goodsList = null;
|
|
|
+ if (registerPayDto.getGoodsIds() != null && !registerPayDto.getGoodsIds().equals("")) {
|
|
|
+ goodsList = goodsService.findGoodsByIds(registerPayDto.getGoodsIds());
|
|
|
+ for (Goods goods : goodsList) {
|
|
|
+ orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //单独教谱
|
|
|
+ List<Goods> otherGoodsList = null;
|
|
|
+ if (registerPayDto.getOtherGoodsIds() != null && !registerPayDto.getOtherGoodsIds().equals("")) {
|
|
|
+ otherGoodsList = goodsService.findGoodsByIds(registerPayDto.getOtherGoodsIds());
|
|
|
+ for (Goods goods : otherGoodsList) {
|
|
|
+ orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (amount.compareTo(orderAmount) != 0) {
|
|
|
+ return failed("商品价格不符");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ IdWorker idWorker = new IdWorker(0, 0);
|
|
|
+ String orderNo = idWorker.nextId();
|
|
|
+
|
|
|
+ Map payMap = payService.getPayMap(orderAmount, orderNo, "https://pay.dayaedu.com/api/yqpay/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
|
|
|
+
|
|
|
+ studentRegistrationService.addOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId().toString());
|
|
|
+
|
|
|
+ return succeed(payMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "乐团报名重新支付")
|
|
|
+ @PostMapping("/rePay")
|
|
|
+ @ApiImplicitParams({@ApiImplicitParam(name = "registerPayDto", value = "支付信息", required = true, dataType = "Integer")})
|
|
|
+ public HttpResponseResult rePay(@RequestBody RegisterPayDto registerPayDto) throws Exception {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ Integer userId = sysUser.getId();
|
|
|
+ StudentRegistration studentRegistration = studentRegistrationService.get(registerPayDto.getRegisterId().longValue());
|
|
|
+ if (!studentRegistration.getUserId().equals(userId)) {
|
|
|
+ return failed("报名信息有误,请核查");
|
|
|
+ }
|
|
|
+
|
|
|
+ StudentPaymentOrder ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId().toString(), DealStatusEnum.SUCCESS);
|
|
|
+ if (ApplyOrder != null) {
|
|
|
+ return failed("您已支付成功,请勿重复支付");
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断用户是否已存在订单
|
|
|
+ ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId().toString(), DealStatusEnum.ING);
|
|
|
+ if (ApplyOrder == null) {
|
|
|
+ return failed(HttpStatus.CONTINUE, "没有支付中的订单,请勿非法请求");
|
|
|
+ }
|
|
|
+
|
|
|
BigDecimal amount = registerPayDto.getAmount(); //前端获取的价格
|
|
|
BigDecimal orderAmount = new BigDecimal("0");
|
|
|
|
|
@@ -144,9 +234,9 @@ public class MusicGroupController extends BaseController {
|
|
|
IdWorker idWorker = new IdWorker(0, 0);
|
|
|
String orderNo = idWorker.nextId();
|
|
|
|
|
|
- Map payMap = payService.getPayMap(orderAmount, orderNo, "https://pay.dayaedu.com/yqpay/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
|
|
|
+ Map payMap = payService.getPayMap(orderAmount, orderNo, "https://pay.dayaedu.com/api/yqpay/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
|
|
|
|
|
|
- studentRegistrationService.addOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList);
|
|
|
+ studentRegistrationService.addOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId().toString());
|
|
|
|
|
|
return succeed(payMap);
|
|
|
}
|
|
@@ -165,6 +255,7 @@ public class MusicGroupController extends BaseController {
|
|
|
@GetMapping("/getOrderStatus")
|
|
|
@ApiImplicitParams({@ApiImplicitParam(name = "orderNo", value = "订单号", required = true, dataType = "String")})
|
|
|
public HttpResponseResult getOrderStatus(String orderNo) {
|
|
|
- return succeed(orderNo);
|
|
|
+ StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(orderNo);
|
|
|
+ return succeed(order);
|
|
|
}
|
|
|
}
|