| | |
| | | import com.stylefeng.guns.modular.system.util.PayMoneyUtil; |
| | | import com.stylefeng.guns.modular.system.util.PushURL; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; |
| | | import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.domain.Sort; |
| | |
| | | private MongoTemplate mongoTemplate; |
| | | @Autowired |
| | | private ShiroExtUtil shiroExtUtil; |
| | | @Autowired |
| | | private IUserService sysUserService; |
| | | @Autowired |
| | | private ITCompanyService iTCompanyService; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | } |
| | | |
| | | //中台修改订单状态 |
| | | ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); |
| | | request1.setOrderId(orderCrossCity.getTravelId()); |
| | | request1.setStatus(orderCrossCity.getState()); |
| | | if (null != orderCrossCity.getDriverId()) { |
| | | TDriver driver2 = tDriverService.selectById(orderCrossCity.getDriverId()); |
| | | TCompany company = iTCompanyService.selectById(driver2.getCompanyId()); |
| | | request1.setDriverId(driver2.getEmpId().toString()); |
| | | request1.setSupplierShopId(company.getEnterCode()); |
| | | } |
| | | if (2 == orderCrossCity.getPromotion() && null != orderCrossCity.getPromotionDriverId()) { |
| | | TDriver driver2 = tDriverService.selectById(orderCrossCity.getPromotionDriverId()); |
| | | request1.setPromoterId(driver2.getEmpId().toString()); |
| | | } |
| | | OrderUtil.modifyTravelItinerary(request1); |
| | | |
| | | //未支付,调取消订单 |
| | | if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){ |
| | | OrderUtil.tradeOrderCancel(orderCrossCity.getTravelId()); |
| | | } |
| | | |
| | | //已支付的情况下进行退款操作 |
| | | if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){ |
| | |
| | | } |
| | | |
| | | if(query.getPayType() == 1){//微信 |
| | | Map<String, String> map = payMoneyUtil.wxRefund(query.getCode(), tOrderCrossCityId + "_3", query.getAmount().toString(), query.getAmount().toString(), "/base/cancleOrderWXPay"); |
| | | if(!"SUCCESS".equals(map.get("return_code"))){ |
| | | return ResultUtil.error(map.get("return_msg")); |
| | | //中台订单退款操作 |
| | | if(ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){ |
| | | User user1 = sysUserService.selectById(user.getId()); |
| | | TradeOrderRefundRequest request = new TradeOrderRefundRequest(); |
| | | request.setPartnerPayId(orderCrossCity.getTravelId()); |
| | | request.setPayId(query.getCode()); |
| | | request.setRefundTotalFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + ""); |
| | | request.setRemark("服务商取消订单退款"); |
| | | request.setRefundType("RF"); |
| | | |
| | | RefundInfoRequest refundInfo = new RefundInfoRequest(); |
| | | refundInfo.setPayItemId(orderCrossCity.getTravelId()); |
| | | refundInfo.setPayId(query.getCode()); |
| | | refundInfo.setTradeFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + ""); |
| | | request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{ |
| | | add(refundInfo); |
| | | }}); |
| | | TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request); |
| | | //退款通知 |
| | | OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest(); |
| | | request2.setOrderId(orderCrossCity.getTravelId()); |
| | | request2.setRefundPayNum(tradeOrderRefund.getRefundId()); |
| | | request2.setRefundType("5"); |
| | | request2.setApplyRefundCharge(orderCrossCity.getPayMoney()); |
| | | request2.setActualRefundCharge(orderCrossCity.getPayMoney()); |
| | | request2.setRefundAccount(user1.getEnterId().toString()); |
| | | request2.setRemark("服务商取消订单退款"); |
| | | OrderUtil.orderRefundNotice(request2); |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, tOrderCrossCityId); |
| | | } |
| | | }else if(query.getPayType()==4){ |
| | | // TODO 退款 |
| | |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, tOrderCrossCityId); |
| | | } |
| | | } |
| | | |
| | | //添加负的收入明细 |
| | | List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", tOrderCrossCityId).eq("orderType", 3)); |
| | | for(Income income : incomes){ |
| | | if(income.getUserType() == 2){//处理司机的收入 |
| | | TDriver driver = tDriverService.selectById(income.getObjectId()); |
| | | driver.setBalance(driver.getBalance().subtract(new BigDecimal(income.getMoney()))); |
| | | driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney()); |
| | | driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney()); |
| | | tDriverService.updateById(driver); |
| | | } |
| | | Income income1 = new Income(); |
| | | BeanUtils.copyProperties(income, income1); |
| | | income1.setMoney(income.getMoney() * -1); |
| | | income1.setId(null); |
| | | income1.setInsertTime(new Date()); |
| | | incomeService.insert(income1); |
| | | } |
| | | } |
| | | //添加取消记录 |