OrderService.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package com.example.xiaoshiweixinback.service;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.example.xiaoshiweixinback.business.utils.BatchNoUtil;
  6. import com.example.xiaoshiweixinback.domain.AssoPersonProduct;
  7. import com.example.xiaoshiweixinback.domain.Order;
  8. import com.example.xiaoshiweixinback.domain.Ticket;
  9. import com.example.xiaoshiweixinback.domain.Vip;
  10. import com.example.xiaoshiweixinback.entity.dto.ticket.TicketProcessUpDTO;
  11. import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
  12. import com.example.xiaoshiweixinback.entity.vo.person.PersonVO;
  13. import com.example.xiaoshiweixinback.entity.weixinPay.GetPayTicketVO;
  14. import com.example.xiaoshiweixinback.entity.weixinPay.JsApiDTO;
  15. import com.example.xiaoshiweixinback.entity.weixinPay.WeiXinPayDTO;
  16. import com.example.xiaoshiweixinback.mapper.AssoPersonProductMapper;
  17. import com.example.xiaoshiweixinback.mapper.OrderMapper;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.context.annotation.Lazy;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.transaction.annotation.Transactional;
  22. /**
  23. * @author admin
  24. * @description
  25. * @createDate 2024-04-10 15:45:40
  26. */
  27. @Service
  28. public class OrderService extends ServiceImpl<OrderMapper, Order> {
  29. @Autowired
  30. @Lazy
  31. private VipService vipService;
  32. @Autowired
  33. private TicketService ticketService;
  34. @Transactional(rollbackFor = Exception.class)
  35. public Order addOrder(WeiXinPayDTO weiXinPayDTO, GetPayTicketVO getPayTicketVO, String tradeNo, PersonnelVO personVO) {
  36. Integer type = weiXinPayDTO.getGoodType();
  37. String uuid = weiXinPayDTO.getGoodUuid();
  38. Order order = new Order();
  39. order.setOrderState(0);
  40. order.setTradeNo(tradeNo);
  41. String json = JSONObject.toJSONString(getPayTicketVO);
  42. switch (type) {
  43. case 1:
  44. Vip vip = vipService.getVipByUuId(uuid);
  45. order.setOrgPrice(vip.getPrice());
  46. order.setTruePrice(vip.getPrice());
  47. order.setGoodsType(type);
  48. order.setGoodUuid(uuid);
  49. order.setOrderParameter(json);
  50. order.setPersonUuid(personVO.getUuid());
  51. break;
  52. case 2:
  53. Ticket ticket =ticketService.getTicketByUUid(uuid);
  54. order.setOrgPrice(ticket.getPrice());
  55. order.setTruePrice(ticket.getPrice());
  56. order.setGoodsType(type);
  57. order.setGoodUuid(uuid);
  58. order.setOrderParameter(json);
  59. order.setPersonUuid(personVO.getUuid());
  60. }
  61. order.insert();
  62. return order;
  63. }
  64. public Order getOrderByTradeNo(String tradeNo) {
  65. LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
  66. queryWrapper.eq(Order::getTradeNo, tradeNo);
  67. Order order = this.getOne(queryWrapper);
  68. return order;
  69. }
  70. public void payBack(String tradeNo) {
  71. Order order = this.getOrderByTradeNo(tradeNo);
  72. if(order.getOrderState()!=0){
  73. return;
  74. }
  75. order.setOrderState(1);
  76. order.updateById();
  77. Integer orderType = order.getGoodsType();
  78. String orderuuid = order.getGoodUuid();
  79. switch (orderType) {
  80. case 1:
  81. vipService.activateVIP(order);
  82. break;
  83. case 2:
  84. ticketService.updateProcess(orderuuid,3);
  85. break;
  86. }
  87. }
  88. }