123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package com.example.xiaoshiweixinback.service;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.example.xiaoshiweixinback.business.utils.BatchNoUtil;
- import com.example.xiaoshiweixinback.domain.AssoPersonProduct;
- import com.example.xiaoshiweixinback.domain.Order;
- import com.example.xiaoshiweixinback.domain.Ticket;
- import com.example.xiaoshiweixinback.domain.Vip;
- import com.example.xiaoshiweixinback.entity.dto.ticket.TicketProcessUpDTO;
- import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
- import com.example.xiaoshiweixinback.entity.vo.person.PersonVO;
- import com.example.xiaoshiweixinback.entity.weixinPay.GetPayTicketVO;
- import com.example.xiaoshiweixinback.entity.weixinPay.JsApiDTO;
- import com.example.xiaoshiweixinback.entity.weixinPay.WeiXinPayDTO;
- import com.example.xiaoshiweixinback.mapper.AssoPersonProductMapper;
- import com.example.xiaoshiweixinback.mapper.OrderMapper;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- /**
- * @author admin
- * @description
- * @createDate 2024-04-10 15:45:40
- */
- @Service
- public class OrderService extends ServiceImpl<OrderMapper, Order> {
- @Autowired
- @Lazy
- private VipService vipService;
- @Autowired
- private TicketService ticketService;
- @Transactional(rollbackFor = Exception.class)
- public Order addOrder(WeiXinPayDTO weiXinPayDTO, GetPayTicketVO getPayTicketVO, String tradeNo, PersonnelVO personVO) {
- Integer type = weiXinPayDTO.getGoodType();
- String uuid = weiXinPayDTO.getGoodUuid();
- Order order = new Order();
- order.setOrderState(0);
- order.setTradeNo(tradeNo);
- String json = JSONObject.toJSONString(getPayTicketVO);
- switch (type) {
- case 1:
- Vip vip = vipService.getVipByUuId(uuid);
- order.setOrgPrice(vip.getPrice());
- order.setTruePrice(vip.getPrice());
- order.setGoodsType(type);
- order.setGoodUuid(uuid);
- order.setOrderParameter(json);
- order.setPersonUuid(personVO.getUuid());
- break;
- case 2:
- Ticket ticket =ticketService.getTicketByUUid(uuid);
- order.setOrgPrice(ticket.getPrice());
- order.setTruePrice(ticket.getPrice());
- order.setGoodsType(type);
- order.setGoodUuid(uuid);
- order.setOrderParameter(json);
- order.setPersonUuid(personVO.getUuid());
- }
- order.insert();
- return order;
- }
- public Order getOrderByTradeNo(String tradeNo) {
- LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Order::getTradeNo, tradeNo);
- Order order = this.getOne(queryWrapper);
- return order;
- }
- public void payBack(String tradeNo) {
- Order order = this.getOrderByTradeNo(tradeNo);
- if(order.getOrderState()!=0){
- return;
- }
- order.setOrderState(1);
- order.updateById();
- Integer orderType = order.getGoodsType();
- String orderuuid = order.getGoodUuid();
- switch (orderType) {
- case 1:
- vipService.activateVIP(order);
- break;
- case 2:
- ticketService.updateProcess(orderuuid,3);
- break;
- }
- }
- }
|