ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserIntegralChange.java
@@ -57,6 +57,7 @@ @ApiModelProperty(value = "添加时间") @TableField("create_time") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDateTime createTime; @TableField(exist = false) @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TShoppingOrder.java
@@ -37,6 +37,9 @@ @ApiModelProperty(value = "订单编号") @TableField("code") private String code; @ApiModelProperty(value = "订单标题") @TableField("title") private String title; @ApiModelProperty(value = "用户id") @TableField("app_user_id") ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java
@@ -29,7 +29,7 @@ * @return */ @PostMapping("/wx/query/queryOrderInfo") R<NotifyV3PayDecodeRespBody> queryOrderInfo(String orderId); R<NotifyV3PayDecodeRespBody> queryOrderInfo(@RequestParam("orderId") String orderId); /** ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java
@@ -29,5 +29,5 @@ /** * 回调地址 */ private String notifyUrl ="http://192.168.110.80:9000/payment/wx/pay/notify"; private String notifyUrl ="http://221.182.45.100:9000/payment/wx/pay/notify"; } ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ExchangeDto.java
@@ -36,6 +36,10 @@ BigDecimal discountPrice; @ApiModelProperty(hidden =true) BigDecimal vipDiscount; @ApiModelProperty(hidden =true) String title; @ApiModelProperty(hidden =true) String phone; } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java
@@ -35,7 +35,7 @@ @ResponseBody @PostMapping("/addAppUserIntegralChange") public R addAppUserIntegralChange(@RequestBody TAppUserIntegralChange appUserIntegralChange){ String code = Math.random() * 1000 + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); appUserIntegralChange.setCode(code); appUserIntegralChangeService.save(appUserIntegralChange); return R.ok(); ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -47,7 +47,7 @@ TParkingRecord parkingRecord = new TParkingRecord(); parkingRecord.setLicensePlate(order.getPlate()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = "TC" + Math.random() * 1000 + sdf.format(new Date()); String code = "TC" + Double.valueOf(Math.random() * 1000).intValue() + sdf.format(new Date()); parkingRecord.setCode(code); parkingRecord.setVehicleColor(order.getPlateColor()); TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData(); @@ -95,7 +95,7 @@ TParkingRecord parkingRecord = new TParkingRecord(); parkingRecord.setLicensePlate(order.getPlatenumber()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = "TC" + Math.random() * 1000 + sdf.format(new Date()); String code = "TC" + Double.valueOf(Math.random() * 1000).intValue() + sdf.format(new Date()); parkingRecord.setCode(code); parkingRecord.setVehicleColor(order.getPlatecolor()); TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData(); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
@@ -280,6 +280,7 @@ @PostMapping("/create") public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto){ TShoppingOrder shoppingOrder = new TShoppingOrder(); shoppingOrder.setTitle(exchangeDto.getTitle()); shoppingOrder.setCode(OrderCodeUtil.getOrderCode("GW")); shoppingOrder.setAppUserId(exchangeDto.getUserId()); shoppingOrder.setOrderType(exchangeDto.getGoodType()); @@ -302,6 +303,7 @@ shoppingOrder.setPaymentType(exchangeDto.getPayMethod()); shoppingOrder.setRemark(exchangeDto.getRemark()); shoppingOrder.setStatus(1); shoppingOrder.setPhone(exchangeDto.getPhone()); shoppingOrder.setCreateTime(LocalDateTime.now()); shoppingOrder.setDelFlag(false); shoppingOrderService.save(shoppingOrder); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -417,7 +417,7 @@ //构建新的待支付订单 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); TChargingOrder chargingOrder = new TChargingOrder(); String code = "CD" + Math.random() * 1000 + sdf.format(new Date()); String code = "CD" + Double.valueOf(Math.random() * 1000).intValue() + sdf.format(new Date()); chargingOrder.setCode(code); chargingOrder.setOrderType(1); chargingOrder.setOrderClassification(1); @@ -633,7 +633,7 @@ TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); chargingOrderRefund.setChargingOrderId(chargingOrder.getId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Math.random() * 1000)); chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + Double.valueOf(Math.random() * 1000).intValue()); chargingOrderRefund.setRefundAmount(rechargeAmount); chargingOrderRefund.setRefundStatus(1); chargingOrderRefund.setPayType(rechargePaymentType); @@ -844,7 +844,7 @@ } TAppUser appUser1 = appUserClient.getUserById(appUser.getInviteUserId()).getData(); TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); String code = Math.random() * 1000 + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); appUserIntegralChange.setCode(code); appUserIntegralChange.setAppUserId(appUser.getInviteUserId()); appUserIntegralChange.setChangeType(5); @@ -943,7 +943,7 @@ TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); chargingOrderRefund.setChargingOrderId(chargingOrder.getId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Math.random() * 1000)); chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); chargingOrderRefund.setRefundAmount(refundAmount); chargingOrderRefund.setRefundStatus(1); chargingOrderRefund.setPayType(rechargePaymentType); @@ -1611,7 +1611,7 @@ } TAppUser appUser1 = appUserClient.getUserById(appUser.getInviteUserId()).getData(); TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); String code = Math.random() * 1000 + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); appUserIntegralChange.setCode(code); appUserIntegralChange.setAppUserId(appUser.getInviteUserId()); appUserIntegralChange.setChangeType(5); @@ -1717,7 +1717,7 @@ chargingOrderRefund.setRefundTime(LocalDateTime.now()); chargingOrderRefund.setCode(tChargingOrder.getCode()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Math.random() * 1000)); chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); chargingOrderRefund.setRefundTitle("后台退款"); chargingOrderRefund.setRefundContent("后台退款"); chargingOrderRefund.setRefundReason("后台退款"); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
@@ -75,7 +75,8 @@ wrapper.eq(TExchangeOrder::getStatus, query.getStatus()); } long count = this.count(wrapper); List<TExchangeOrder> list = this.list(wrapper.orderByDesc(TExchangeOrder::getCreateTime).last(" limit " + query.getPageCurr() + "," + query.getPageSize())); Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize(); List<TExchangeOrder> list = this.list(wrapper.orderByDesc(TExchangeOrder::getCreateTime).last(" limit " + pageCurr + "," + query.getPageSize())); List<MyExchangeOrderList> pageList = new ArrayList<>(); for (TExchangeOrder tExchangeOrder : list) { MyExchangeOrderList exchangeOrderList = new MyExchangeOrderList(); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -117,7 +117,7 @@ return AjaxResult.error("不能重复申请开票,请刷新数据后重试"); } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = Math.random() * 1000 + sdf.format(new Date()); String code = Double.valueOf(Math.random() * 1000).intValue() + sdf.format(new Date()); addOrderInvoice.setAppUserId(userId); addOrderInvoice.setCode(code); addOrderInvoice.setStatus(1); @@ -155,9 +155,10 @@ @Override public List<OrderInvoiceList> getMyOrderInvoiceList(GetOrderInvoiceList query) { Long userId = tokenService.getLoginUserApplet().getUserId(); Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize(); List<TOrderInvoice> list = this.list(new LambdaQueryWrapper<TOrderInvoice>().eq(TOrderInvoice::getAppUserId, userId) .eq(TOrderInvoice::getStatus, query.getStatus()).orderByDesc(TOrderInvoice::getCreateTime) .last(" limit " + query.getPageCurr() + ", " + query.getPageSize())); .last(" limit " + pageCurr + ", " + query.getPageSize())); List<OrderInvoiceList> pageList = new ArrayList<>(); for (TOrderInvoice tOrderInvoice : list) { OrderInvoiceList orderInvoiceList = new OrderInvoiceList(); @@ -247,12 +248,16 @@ @Override public PageInfo<TOrderInvoiceVO> pageList(TOrderInvoiceQuery query) { List<TAppUser> tAppUsers = new ArrayList<>(); // 查询申请用户 List<TAppUser> userList = appUserClient.selectByPhoneLike(query.getUserPhone()).getData(); if(CollectionUtils.isEmpty(userList)){ return new PageInfo<>(); if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){ tAppUsers = appUserClient.selectByPhoneLike(query.getUserPhone()).getData(); if(CollectionUtils.isEmpty(tAppUsers)){ return new PageInfo<>(); } } query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList())); query.setUserIds(tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList())); PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); List<TOrderInvoiceVO> list = this.baseMapper.pageList(query,pageInfo); for (TOrderInvoiceVO tOrderInvoiceVO : list) { @@ -269,14 +274,15 @@ List<TOrderInvoiceDetail> orderInvoiceDetailList = orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>() .in(TOrderInvoiceDetail::getOrderInvoiceId, ids)); List<TAppUser> finalTAppUsers = tAppUsers; list.forEach(e->{ e.setServiceTariff(orderInvoiceDetailList.get(0).getServiceTariff()); e.setElectricityTariff(orderInvoiceDetailList.get(0).getElectricityTariff()); e.setAddedServiceTariff(orderInvoiceDetailList.get(0).getAddedServiceTariff()); e.setAddedService(orderInvoiceDetailList.stream().filter(t->t.getAddedService()!=null).map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get()); e.setElectrovalence(orderInvoiceDetailList.stream().filter(t->t.getElectrovalence()!=null).map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get()); e.setServiceCharge(orderInvoiceDetailList.stream().filter(t->t.getServiceCharge()!=null).map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get()); e.setUserPhone(userList.stream().filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone()); e.setAddedService(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get()); e.setElectrovalence(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get()); e.setServiceCharge(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get()); e.setUserPhone(finalTAppUsers.stream().filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone()); }); pageInfo.setRecords(list); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -201,7 +201,8 @@ wrapper.eq(TShoppingOrder::getStatus, query.getStatus()); } long count = this.count(wrapper); List<TShoppingOrder> list = this.list(wrapper.orderByDesc(TShoppingOrder::getCreateTime).last(" limit " + query.getPageCurr() + ", " + query.getPageSize())); Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize(); List<TShoppingOrder> list = this.list(wrapper.orderByDesc(TShoppingOrder::getCreateTime).last(" limit " + pageCurr + ", " + query.getPageSize())); List<MyShoppingOrderList> pageList = new ArrayList<>(); for (TShoppingOrder tShoppingOrder : list) { MyShoppingOrderList myShoppingOrderList = new MyShoppingOrderList(); @@ -347,7 +348,7 @@ shoppingOrderRefund.setPayType(shoppingOrder.getPaymentType()); shoppingOrderRefund.setShoppingOrderId(shoppingOrder.getId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); shoppingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Math.random() * 1000)); shoppingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + Double.valueOf((Math.random() * 1000)).intValue()); shoppingOrderRefund.setRefundAmount(refundAmount); shoppingOrderRefund.setRefundStatus(1); shoppingOrderRefund.setCode(shoppingOrder.getCode()); @@ -447,7 +448,8 @@ @Override public List<MyShoppingOrderList> getNoInvoicedOrder(GetNoInvoicedOrder query) { Long userId = tokenService.getLoginUserApplet().getUserId(); List<TShoppingOrder> list = this.baseMapper.getNoInvoicedOrder(userId, query.getMonth(), query.getPageCurr(), query.getPageSize()); Integer pageCurr = (query.getPageCurr() - 1) * query.getPageSize(); List<TShoppingOrder> list = this.baseMapper.getNoInvoicedOrder(userId, query.getMonth(), pageCurr, query.getPageSize()); List<MyShoppingOrderList> pageList = new ArrayList<>(); for (TShoppingOrder tShoppingOrder : list) { MyShoppingOrderList myShoppingOrderList = new MyShoppingOrderList(); ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
@@ -19,6 +19,7 @@ and t1.id = #{req.uid} </if> and t1.billType = 1 and t1.del_flag = 0 </select> <select id="chargingBillList1" resultType="com.ruoyi.order.api.vo.ChargingBillListVO"> select t1.* from t_charging_bill t1 @@ -36,5 +37,6 @@ and t1.id = #{req.uid} </if> and t1.billType = 2 and t1.del_flag = 0 </select> </mapper> ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -124,7 +124,9 @@ (payment_amount-refund_amount) as final_amount, del_flag FROM charging_pile_order.t_charging_order UNION ALL charging_pile_order.t_charging_order where recharge_payment_status = 2 UNION ALL SELECT id, `code`, @@ -141,7 +143,9 @@ (payment_amount-refund_amount) as final_amount, del_flag FROM charging_pile_order.t_shopping_order UNION ALL charging_pile_order.t_shopping_order where payment_status = 2 UNION ALL SELECT id, `code`, @@ -157,8 +161,11 @@ refund_status, (payment_amount-refund_amount) as final_amount, del_flag FROM charging_pile_order.t_vip_order UNION ALL charging_pile_order.t_vip_order where payment_status = 2 UNION ALL SELECT id, `code`, ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TSettlementConfirmMapper.xml
@@ -35,6 +35,6 @@ and (t1.end_time between #{req.startTime} and #{req.endTime} </if> </if> and t1.delete_flag = 0 and t1.del_flag = 0 </select> </mapper> ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -184,7 +184,8 @@ return R.ok(); } @ApiOperation(tags = {"小程序-兑换商城"},value = "积分兑换商品") @ApiOperation(tags = {"小程序-" + "兑换商城"},value = "积分兑换商品") @PostMapping(value = "/app/shop") public AjaxResult<PageInfo<TGoods>> shop(@RequestBody ExchangeDto exchangeDto) { //检查当前用户积分是否够 @@ -269,6 +270,7 @@ if (exchangeDto.getGoodType()==1){ TGoods good = goodsService.getById(exchangeDto.getGoodId()); BigDecimal originalPrice = good.getPreferentialPrice(); exchangeDto.setTitle("【商品购买】"+good.getName()); if (isVip){ if (good.getVipPrice()!=null){ vipDiscount = originalPrice.subtract(good.getVipPrice()).multiply(BigDecimal.valueOf(exchangeDto.getNum())); @@ -277,7 +279,9 @@ } orderPrice = orderPrice.add(originalPrice.multiply(BigDecimal.valueOf(exchangeDto.getNum()))); }else { TCoupon coupon = couponService.getById(exchangeDto.getGoodId()); exchangeDto.setTitle("【优惠卷购买】"+coupon.getName()); BigDecimal originalPrice = coupon.getPaymentAmount(); if (isVip){ if (coupon.getVipPaymentAmount()!=null) { @@ -301,11 +305,14 @@ } payPrice = orderPrice.subtract(coupon.getDiscountAmount()); discountPrice = coupon.getDiscountAmount(); }else { payPrice = orderPrice; } exchangeDto.setPayPrice(orderPrice); exchangeDto.setPayPrice(payPrice); exchangeDto.setDiscountPrice(discountPrice); exchangeDto.setVipDiscount(vipDiscount); exchangeDto.setUserId(userId); exchangeDto.setPhone(user.getPhone()); //创建订单 TShoppingOrder shopOrder = orderClient.shopCreate(exchangeDto).getData(); if (exchangeDto.getPayMethod()==1) { ruoyi-service/ruoyi-payment/pom.xml
@@ -134,6 +134,10 @@ <artifactId>alipay-sdk-java</artifactId> <version>4.39.186.ALL</version> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> </dependency> </dependencies> <build> ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -3,6 +3,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.payment.api.vo.PaymentOrder; import com.ruoyi.payment.api.vo.WxRefundNotifyResp; import com.ruoyi.payment.wx.enums.RefundEnum; @@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.math.BigDecimal; @@ -32,6 +34,10 @@ public class WxPayController { @Autowired private WxV3Pay wxV3Pay; @Resource private OrderClient orderClient; /** @@ -108,17 +114,19 @@ * 支付回调 */ @PostMapping("pay/notify") @ApiOperation("订单回调") public R<Map<String, Object>> payNotify(HttpServletRequest request) throws Exception { try { Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {}); log.info("支付回调:{}", params); String outRefundNo = (String) params.get("out_refund_no"); String outRefundNo = (String) params.get("transaction_id"); String out_trade_no = params.get("out_trade_no").toString(); String substring = out_trade_no.substring(0, 2); switch (substring){ //购物订单 case "GW": System.err.println("----收到购物回调"); R r = orderClient.callBack(out_trade_no, outRefundNo); System.err.println("----收到购物回调"); break; case "HY": break;