123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package com.llisoft.pay.service;
- import java.util.Objects;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.llisoft.pay.common.Constant;
- import com.llisoft.pay.config.MtaException;
- import com.llisoft.pay.dao.ItemDao;
- import com.llisoft.pay.dao.OrderDao;
- import com.llisoft.pay.entity.App;
- import com.llisoft.pay.entity.Item;
- import com.llisoft.pay.entity.Order;
- import com.llisoft.pay.util.CodeUtil;
- import com.llisoft.pay.vo.ApiAddResponseVo;
- import com.llisoft.pay.vo.ApiPayWxAppResponseVo;
- import com.llisoft.pay.vo.ApiInfoResponseVo;
- @Service
- public class ApiService {
-
- private Logger logger = LoggerFactory.getLogger(ApiService.class);
-
-
- @Autowired
- private ItemDao payDao;
- @Autowired
- private OrderDao orderDao;
- @Autowired
- private PayAliService payAliService;
- @Autowired
- private PayWxV3Service payWxV3Service;
-
-
- /**
- * 下单
- * @param money 金额(分)
- * @param title 订单描述
- * @return
- */
- public ApiAddResponseVo add(int money, String title) {
- Order order = new Order();
- order.setOrderNum(CodeUtil.time()); // 当前时间+5位随机数
- order.setOrderMoney(money); // 订单金额(分)
- order.setOrderTitle(title); // 订单描述
- order.setOrderStatus(Constant.STATUS_WAIT);
- orderDao.insert(order);
- logger.debug("添加订单成功: {}", order.getOrderNum());
- ApiAddResponseVo responseVo = new ApiAddResponseVo();
- responseVo.setId(order.getOrderNum());
- responseVo.setMoney(money);
- return responseVo;
- }
-
- /**
- * 查询
- * @param id orderNum
- * @return
- */
- public ApiInfoResponseVo info(String id) {
- Order order = orderDao.selectByOrderNum(id);
- if(Objects.isNull(order)) {
- throw MtaException.build("订单不存在:" + id);
- }
- ApiInfoResponseVo responseVo = new ApiInfoResponseVo();
- responseVo.setPid(order.getOrderNum());
- responseVo.setPayed(order.getOrderStatus() == Constant.STATUS_PAYED);
- return responseVo;
- }
-
- /**
- * 支付 栋科
- * @param id orderNum
- * @param type 支付方式(1支付宝,2微信)
- * @return
- */
- public ApiPayWxAppResponseVo payDongke(String appid, String id, byte type) {
- Order order = orderDao.selectByOrderNum(id);
- if(Objects.isNull(order)) {
- throw MtaException.build("订单不存在:" + id);
- }
- if(order.getOrderStatus() == Constant.STATUS_PAYED){
- throw MtaException.build("订单已支付:" + id);
- }
- // 添加支付记录
- Item item = new Item();
- item.setPayNum(CodeUtil.uuid());
- item.setPayType(type);
- item.setOrderId(order.getOrderId());
- item.setPayMoney(order.getOrderMoney());
- item.setPayStatus(Constant.STATUS_WAIT);
- payDao.insert(item);
- // 发起支付
- if (item.getPayType() == Constant.TYPE_ALI) { // 支付宝
- }else if (item.getPayType() == Constant.TYPE_WX) { // 微信
- payWxV3Service.appDongke(appid, item.getPayNum(), item.getPayMoney(), order.getOrderTitle());
- return wxPayService.pay(payNum, order.getOrderMoney(), order.getOrderTitle());
- }
-
-
-
- String payNum = payService.add(payType, order.getOrderMoney(), order.getOrderId());
- return payService.pay(payNum, isMobile);
- }
-
- /**
- * 支付 青谷
- * @param id orderNum
- * @param type 支付方式(1支付宝,2微信)
- * @return
- */
- public ApiPayWxAppResponseVo payQinggu(String appid, String id, byte type) {
- // TODO Auto-generated method stub
- return null;
- }
-
- }
|