|
@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import springfox.documentation.spring.web.json.Json;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
import java.math.BigDecimal;
|
|
@@ -129,6 +130,13 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public HttpResponseResult<Boolean> orderCancel(OrderPayReq payReq) {
|
|
|
+ UserOrderVo detail = detail(payReq.getOrderNo());
|
|
|
+ orderCancel(detail);
|
|
|
+ return HttpResponseResult.succeed(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public IPage<UserOrderVo> selectPage(IPage<UserOrderVo> page, OrderSearch query) {
|
|
|
return page.setRecords(baseMapper.selectPage(page, query));
|
|
|
}
|
|
@@ -160,11 +168,16 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
return HttpResponseResult.failed("订单商品信息获取失败");
|
|
|
}
|
|
|
createRes.setGoodType(info.getGoodType());
|
|
|
+ //todo 优惠券优惠金额,暂时为0
|
|
|
+ BigDecimal couponAmount = BigDecimal.ZERO;
|
|
|
+ createRes.setActualPrice(createRes.getExpectPrice().subtract(couponAmount).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ createRes.setCouponAmount(couponAmount);
|
|
|
resList.add(createRes);
|
|
|
}
|
|
|
|
|
|
//验证成功后,订单入库
|
|
|
UserOrderVo orderVo = insertOrder(orderNo,orderReq, resList);
|
|
|
+
|
|
|
List<UserOrderDetailVo> orderDetailList = orderVo.getOrderDetailList();
|
|
|
for (UserOrderDetailVo orderDetailVo : orderDetailList) {
|
|
|
orderDetailVo.setUserId(orderReq.getUserId());
|
|
@@ -197,6 +210,17 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public HttpResponseResult<OrderPayRes> orderPaytoPaying(OrderPayReq payReq) {
|
|
|
+ //查询订单
|
|
|
+ UserOrderVo detail = detail(payReq.getOrderNo());
|
|
|
+ if(OrderStatusEnum.PAYING.equals(detail.getStatus())){
|
|
|
+ //处于付款中状态,需要拉起付款接口返回信息,并且去到汇付
|
|
|
+ return orderPayPaying(payReq, detail);
|
|
|
+ }
|
|
|
+ return HttpResponseResult.failed("订单状态异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public void orderCallback(String data) {
|
|
|
JSONObject hfRes = JSONObject.parseObject(data);
|
|
|
if (PayStatusEnum.succeeded.getCode().equals(hfRes.getString("status"))) {
|
|
@@ -393,7 +417,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
*/
|
|
|
private UserOrderVo insertOrder(Long orderNo, OrderReq orderReq, List<OrderCreateRes> resList) {
|
|
|
UserOrder userOrder = new UserOrder();
|
|
|
- //订单号生成
|
|
|
+
|
|
|
userOrder.setOrderNo(Long.toString(orderNo));
|
|
|
userOrder.setUserId(orderReq.getUserId());
|
|
|
userOrder.setOrderName(orderReq.getOrderName());
|
|
@@ -402,8 +426,11 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
userOrder.setStatus(OrderStatusEnum.WAIT_PAY);
|
|
|
userOrder.setUserNote(orderReq.getUserNote());
|
|
|
userOrder.setCreateTime(new Date());
|
|
|
+
|
|
|
userOrder.setOriginalPrice(BigDecimal.ZERO);
|
|
|
userOrder.setExpectPrice(BigDecimal.ZERO);
|
|
|
+ userOrder.setActualPrice(BigDecimal.ZERO);
|
|
|
+ userOrder.setCouponAmount(BigDecimal.ZERO);
|
|
|
userOrder.setPlantformFee(BigDecimal.ZERO);
|
|
|
List<UserOrderDetailVo> orderDetailList = new ArrayList<>();
|
|
|
for (OrderCreateRes res : resList) {
|
|
@@ -431,6 +458,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
orderReq.getOrderInfos().forEach(o -> {
|
|
|
if (o.getGoodType().equals(res.getGoodType())) {
|
|
|
orderDetail.setGoodName(o.getGoodName());
|
|
|
+ orderDetail.setBizContent(JSONObject.toJSONString(o.getBizContent()));
|
|
|
}
|
|
|
});
|
|
|
orderDetail.setGoodUrl(getGoodUrlByType(res.getGoodType()));
|
|
@@ -440,13 +468,16 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
|
|
|
|
|
|
userOrder.setOriginalPrice(userOrder.getOriginalPrice().add(orderDetail.getOriginalPrice()));
|
|
|
userOrder.setExpectPrice(userOrder.getExpectPrice().add(orderDetail.getExpectPrice()));
|
|
|
+ userOrder.setActualPrice(userOrder.getActualPrice().add(orderDetail.getActualPrice()));
|
|
|
+ userOrder.setCouponAmount(userOrder.getCouponAmount().add(orderDetail.getCouponAmount()));
|
|
|
userOrder.setPlantformFee(userOrder.getPlantformFee().add(orderDetail.getPlantformFee()));
|
|
|
}
|
|
|
|
|
|
//todo 优惠券优惠金额,暂时为0
|
|
|
BigDecimal couponAmount = BigDecimal.ZERO;
|
|
|
- userOrder.setActualPrice(userOrder.getExpectPrice().subtract(couponAmount).setScale(2, RoundingMode.HALF_UP));
|
|
|
- userOrder.setCouponAmount(couponAmount);
|
|
|
+ userOrder.setActualPrice(userOrder.getActualPrice().subtract(couponAmount));
|
|
|
+ userOrder.setCouponAmount(userOrder.getCouponAmount().add(couponAmount));
|
|
|
+
|
|
|
if (userOrder.getActualPrice().subtract(orderReq.getActualPrice()).abs()
|
|
|
.compareTo(new BigDecimal("0.01")) > 0) {
|
|
|
throw new BizException("交易金额异常");
|