no message

This commit is contained in:
2025-09-29 01:31:55 +08:00
parent 431cfe11c5
commit 737b444acf
12 changed files with 307 additions and 221 deletions

View File

@ -1,131 +1,145 @@
//package com.sczx.pay.alipay.controller; package com.sczx.pay.alipay.controller;
//
//import com.alipay.api.domain.AppxCategoryVO; import com.alipay.api.domain.AppxCategoryVO;
//import com.alipay.api.internal.util.StringUtils; import com.alipay.api.internal.util.StringUtils;
//import com.alipay.api.response.AlipayOpenAppItemListQueryResponse; import com.alipay.api.response.AlipayOpenAppItemListQueryResponse;
//import com.alipay.api.response.AlipayOpenAppItemQueryResponse; import com.alipay.api.response.AlipayOpenAppItemQueryResponse;
//import com.alipay.api.response.AlipayOpenAppItemTemplateQueryResponse; import com.alipay.api.response.AlipayOpenAppItemTemplateQueryResponse;
//import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
//import com.sczx.pay.alipay.po.RentRuleItem; import com.sczx.pay.alipay.po.RentRuleItem;
//import com.sczx.pay.alipay.service.ItemService; import com.sczx.pay.alipay.service.ItemService;
//import com.sczx.pay.alipay.service.RentRuleItemService; import com.sczx.pay.alipay.service.RentRuleItemService;
//import com.sczx.pay.alipay.vo.ItemCreateRequest; import com.sczx.pay.alipay.vo.ItemCreateRequest;
//import com.sczx.pay.alipay.vo.OpenResponse; import com.sczx.pay.alipay.vo.OpenResponse;
//import io.swagger.annotations.Api; import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
//import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
//
//
//import java.util.List; import java.util.List;
//import java.util.Map; import java.util.Map;
//
//
//@Api(tags = "普通商品模块") @Api(tags = "普通商品模块")
//@RestController @RestController
//@RequestMapping(value = "/item") @RequestMapping(value = "/item")
//public class ItemController { public class ItemController {
//
// @Autowired @Autowired
// private ItemService itemService; private ItemService itemService;
//
// @Autowired @Autowired
// private RentRuleItemService rentRuleItemService; private RentRuleItemService rentRuleItemService;
//
// /** /**
// * 类目查询 * 类目查询
// * 获取叶子节点商品类目列表 * 获取叶子节点商品类目列表
// */ */
// @ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
// @ApiOperation(value = "类目查询", notes = "获取叶子节点商品类目列表") @ApiOperation(value = "类目查询", notes = "获取叶子节点商品类目列表")
// @GetMapping(value = "/category/list") @GetMapping(value = "/category/list")
// public OpenResponse<List<AppxCategoryVO>> categoryList( public OpenResponse<List<AppxCategoryVO>> categoryList(
// @ApiParam(value = "商品类型1-售卖类实物2-租赁类实物3-付费充值/兑换类(虚拟)") @RequestParam String itemType, @ApiParam(value = "商品类型1-售卖类实物2-租赁类实物3-付费充值/兑换类(虚拟)") @RequestParam String itemType,
// @ApiParam(value = "类目状态默认AUDIT_PASSED", example = "AUDIT_PASSED") @RequestParam(required = false) String catStatus) { @ApiParam(value = "类目状态默认AUDIT_PASSED", example = "AUDIT_PASSED") @RequestParam(required = false) String catStatus) {
// return itemService.getCategories(itemType, catStatus); //return itemService.getCategories(itemType, catStatus);
// } return null;
// }
// /**
// * 普通商品模板信息查询 /**
// */ * 普通商品模板信息查询
// @ApiOperationSupport(order = 2) */
// @ApiOperation(value = "普通商品模板信息查询") @ApiOperationSupport(order = 2)
// @GetMapping(value = "/template/query") @ApiOperation(value = "普通商品模板信息查询")
// public OpenResponse<AlipayOpenAppItemTemplateQueryResponse> queryTemplate( @GetMapping(value = "/template/query")
// @ApiParam(value = "类目ID", required = true) @RequestParam String categoryId, public OpenResponse<AlipayOpenAppItemTemplateQueryResponse> queryTemplate(
// @ApiParam(value = "商品类型1-售卖类实物2-租赁类实物3-付费充值/兑换类(虚拟)") @RequestParam(required = false) String itemType) { @ApiParam(value = "类目ID", required = true) @RequestParam String categoryId,
// return itemService.queryTemplate(categoryId, itemType); @ApiParam(value = "商品类型1-售卖类实物2-租赁类实物3-付费充值/兑换类(虚拟)") @RequestParam(required = false) String itemType) {
// } //return itemService.queryTemplate(categoryId, itemType);
// return null;
// }
//
// /**
// * 租赁类(实物)商品创建
// */ /**
// @ApiOperation(value = "租赁类(实物)商品创建") * 租赁类(实物)商品创建
// @ApiOperationSupport(order = 4) */
// @PostMapping(value = "/rent/create") @ApiOperation(value = "租赁类(实物)商品创建")
// public OpenResponse<String> rentCreate(@RequestBody RentRuleItem request) { @ApiOperationSupport(order = 4)
// return itemService.createRentItem(request); @PostMapping(value = "/rent/create")
// } public OpenResponse<String> rentCreate(@RequestBody RentRuleItem request) {
// //return itemService.createRentItem(request);
// return null;
// @PostMapping(value = "/rent/modify") }
// public OpenResponse<String> modifyCreate(@RequestBody RentRuleItem request) {
// return itemService.modifyItem(request);
// } @PostMapping(value = "/rent/modify")
// public OpenResponse<String> modifyCreate(@RequestBody RentRuleItem request) {
// @ApiOperation(value = "商品详情查询") //return itemService.modifyItem(request);
// @ApiOperationSupport(order = 7) return null;
// @GetMapping(value = "/query") }
// public OpenResponse<AlipayOpenAppItemQueryResponse> query(@ApiParam(value = "支付平台侧商品ID") @RequestParam(required = false) String itemId,
// @ApiParam(value = "商家侧商品ID") @RequestParam(required = false) String outItemId, @ApiOperation(value = "商品详情查询")
// @ApiParam(value = "是否查询编辑版本默认为0", defaultValue = "0") @RequestParam(required = false) String needEditSpu) { @ApiOperationSupport(order = 7)
@GetMapping(value = "/query")
public OpenResponse<AlipayOpenAppItemQueryResponse> query(@ApiParam(value = "支付平台侧商品ID") @RequestParam(required = false) String itemId,
@ApiParam(value = "商家侧商品ID") @RequestParam(required = false) String outItemId,
@ApiParam(value = "是否查询编辑版本默认为0", defaultValue = "0") @RequestParam(required = false) String needEditSpu) {
// return itemService.queryItemDetail(itemId, outItemId, // return itemService.queryItemDetail(itemId, outItemId,
// StringUtils.isNumeric(needEditSpu) ? Long.parseLong(needEditSpu) : 0); // StringUtils.isNumeric(needEditSpu) ? Long.parseLong(needEditSpu) : 0);
// } return null;
// }
// /**
// * 租赁类(实物)履约模板创建 /**
// */ * 租赁类(实物)履约模板创建
// @ApiOperation(value = "租赁类(实物)履约模板创建") */
// @ApiOperationSupport(order = 4) @ApiOperation(value = "租赁类(实物)履约模板创建")
// @PostMapping(value = "/template/create") @ApiOperationSupport(order = 4)
// public OpenResponse<String> templateCreate() { @PostMapping(value = "/template/create")
// return itemService.syncDeliveryInfo(); public OpenResponse<String> templateCreate() {
// }
// //return itemService.syncDeliveryInfo();
// /** return null;
// * 租赁类(实物)履约模板创建 }
// */
// @ApiOperation(value = "租赁类(实物)履约模板创建") /**
// @ApiOperationSupport(order = 4) * 租赁类(实物)履约模板创建
// @PostMapping(value = "/delivery/query") */
// public OpenResponse<String> deliveryQuery() { @ApiOperation(value = "租赁类(实物)履约模板创建")
// return itemService.deliveryInfoQuery(); @ApiOperationSupport(order = 4)
// } @PostMapping(value = "/delivery/query")
// public OpenResponse<String> deliveryQuery() {
// @ApiOperation(value = "租赁类(实物)履约模板创建")
// @ApiOperationSupport(order = 4) //return itemService.deliveryInfoQuery();
// @PostMapping(value = "/deliverytemplate/query") return null;
// public OpenResponse<String> deliveryTemplateQuery() { }
// return itemService.deliveryTemplateQuery();
// } @ApiOperation(value = "租赁类(实物)履约模板创建")
// @ApiOperationSupport(order = 4)
// @ApiOperation(value = "租赁类(实物)履约模板创建") @PostMapping(value = "/deliverytemplate/query")
// @ApiOperationSupport(order = 4) public OpenResponse<String> deliveryTemplateQuery() {
// @PostMapping(value = "/shop/query")
// public OpenResponse<String> shopQuery() { //return itemService.deliveryTemplateQuery();
// return itemService.shopQuery(); return null;
// } }
//
// @ApiOperation(value = "租赁类(实物)履约模板创建")
// @ApiOperation(value = "接收套餐数据并记录商品") @ApiOperationSupport(order = 4)
// @GetMapping(value = "/sync/item") @PostMapping(value = "/shop/query")
// public Map<String,String> syncItem(@RequestParam(required = false) String brandId,@RequestParam(required = false) String carModelId, public OpenResponse<String> shopQuery() {
// @RequestParam(required = false) String carRuleId,@RequestParam(required = false) String batteryRuleId) {
// return rentRuleItemService.syncItem(brandId, carModelId,carRuleId,batteryRuleId); //return itemService.shopQuery();
// } return null;
// }
//}
@ApiOperation(value = "接收套餐数据并记录商品")
@GetMapping(value = "/sync/item")
public Map<String,String> syncItem(@RequestParam(required = false) String brandId,@RequestParam(required = false) String carModelId,
@RequestParam(required = false) String carRuleId,@RequestParam(required = false) String batteryRuleId) {
//return rentRuleItemService.syncItem(brandId, carModelId,carRuleId,batteryRuleId);
return null;
}
}

View File

@ -1,32 +1,33 @@
//package com.sczx.pay.alipay.controller; package com.sczx.pay.alipay.controller;
//
//
//import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayApiException;
//import com.sczx.pay.alipay.service.RentOrderService; import com.sczx.pay.alipay.service.RentOrderService;
//import com.sczx.pay.alipay.vo.RentOrderCreateRequest; import com.sczx.pay.alipay.vo.RentOrderCreateRequest;
//import io.swagger.annotations.Api; import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
//
//import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
//
//@Api(value = "租赁订单接口", tags = "租赁订单接口") @Api(value = "租赁订单接口", tags = "租赁订单接口")
//@Slf4j @Slf4j
//@RestController @RestController
//@RequestMapping("/rentorder") @RequestMapping("/rentorder")
//public class ItemOrderController { public class ItemOrderController {
//
// @Autowired @Autowired
// private RentOrderService rentOrderService; private RentOrderService rentOrderService;
//
// @ApiOperation(value = "创建租赁订单") @ApiOperation(value = "创建租赁订单")
// @PostMapping("/create") @PostMapping("/create")
// public String rentOrderCreate(RentOrderCreateRequest request) throws AlipayApiException { public String rentOrderCreate(RentOrderCreateRequest request) throws AlipayApiException {
// return rentOrderService.rentOrderCreate(request).getBody(); //return rentOrderService.rentOrderCreate(request).getBody();
// return null;
// }
//} }
}

View File

@ -224,9 +224,8 @@ public class ItemServiceImpl implements ItemService {
// 设置平台类目 // 设置平台类目
model.setCategoryId("C001684401"); model.setCategoryId("C001684401");
// 设置商品主图 // 设置商品主图
String imgStr = imageUploadService.uploadAndReturnId(rentRuleItem.getImage(), "ITEM_HEAD_IMG"); model.setHeadImg(rentRuleItem.getAliItemId());
model.setHeadImg(imgStr); rentRuleItemvo.setImage(rentRuleItem.getAliItemId());
rentRuleItemvo.setImage(imgStr);
// 设置商品模版类型 // 设置商品模版类型
model.setItemType("2"); model.setItemType("2");
//sku_attrs //sku_attrs

View File

@ -0,0 +1,55 @@
package com.sczx.pay.controller;
import com.sczx.pay.dto.*;
import com.sczx.pay.service.AlipayService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Api(value = "支付宝芝麻免押支付接口", tags = "支付宝芝麻免押支付接口")
@Slf4j
@RestController
@RequestMapping("/api/authAlipay")
public class AliAuthPaymentController {
@Autowired
private AlipayService alipayService;
/**
* 免押冻结
*/
@ApiOperation(value = "免押冻结接口")
@PostMapping("/fundFreeze")
public AlipayFundFreezeResponse fundFreeze(@RequestBody AlipayFundFreezeRequest request) {
log.info("收到支付宝免押冻结请求: {}", request);
return alipayService.fundFreeze(request);
}
/**
* 取消冻结
*/
@ApiOperation(value = "取消冻结接口")
@PostMapping("/cancelFundFreeze")
public AlipayFundFreezeResponse cancelFundFreeze(@RequestBody AlipayFundFreezeRequest request) {
log.info("收到支付宝取消免押冻结请求: {}", request);
return alipayService.cancelFundFreeze(request);
}
@ApiOperation(value = "查询冻结接口")
@PostMapping("/queryFundFreeze")
public AlipayQueryFreezeResponse queryFundFreeze(@RequestBody AlipayQueryFreezeRequest alipayQueryFreezeRequest) {
log.info("收到支付宝查询免押冻结请求: {}", alipayQueryFreezeRequest);
return alipayService.queryFundFreeze(alipayQueryFreezeRequest);
}
@ApiOperation(value = "完结冻结接口")
@PostMapping("/finishFreeze")
public AlipayResponse finishFreeze(@RequestBody AlipayFinishFreezeRequest alipayFinishFreezeRequest) {
log.info("收到支付宝完结免押冻结请求: {}", alipayFinishFreezeRequest);
return alipayService.finishFreeze(alipayFinishFreezeRequest);
}
}

View File

@ -168,7 +168,7 @@ public class AliPayNotifyController {
String status = params.get("status"); String status = params.get("status");
if ("SUCCESS".equals(status)) { if ("SUCCESS".equals(status)) {
log.warn("支付宝免押通知状态失败: {}", status); log.warn("支付宝免押通知状态: {}", status);
// 处理免押通知 // 处理免押通知
String outOrderNo = params.get("out_order_no"); String outOrderNo = params.get("out_order_no");
String authNo = params.get("auth_no"); String authNo = params.get("auth_no");

View File

@ -66,5 +66,4 @@
// log.info("收到支付宝退款查询请求: {}", request); // log.info("收到支付宝退款查询请求: {}", request);
// return alipayService.refundQuery(request); // return alipayService.refundQuery(request);
// } // }
//
//} //}

View File

@ -1,29 +1,29 @@
//package com.sczx.pay.controller; package com.sczx.pay.controller;
//
//import com.sczx.pay.dto.ali.rent.AlipayRentPayReq; import com.sczx.pay.dto.ali.rent.AlipayRentPayReq;
//import com.sczx.pay.dto.ali.rent.AlipayRentPayResponse; import com.sczx.pay.dto.ali.rent.AlipayRentPayResponse;
//import com.sczx.pay.service.AlipayRentService; import com.sczx.pay.service.AlipayRentService;
//import io.swagger.annotations.Api; import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
//
//@Api(value = "支付宝租赁订单支付接口", tags = "支付宝租赁订单支付接口") @Api(value = "支付宝租赁订单支付接口", tags = "支付宝租赁订单支付接口")
//@Slf4j @Slf4j
//@RestController @RestController
//@RequestMapping("/alipay/rent") @RequestMapping("/alipay/rent")
//public class AlipayRentController { public class AlipayRentController {
//
// @Autowired @Autowired
// private AlipayRentService alipayRentService; private AlipayRentService alipayRentService;
//
// @ApiOperation(value = "创建支付单") @ApiOperation(value = "创建支付单")
// @PostMapping("/pay") @PostMapping("/pay")
// public AlipayRentPayResponse pay(@RequestBody AlipayRentPayReq request) { public AlipayRentPayResponse pay(@RequestBody AlipayRentPayReq request) {
// return alipayRentService.rentPay(request); return alipayRentService.rentPay(request);
// } }
//} }

View File

@ -31,7 +31,7 @@ public class PaymentController {
@Autowired @Autowired
private CompanyWechatConfigMapper companyWechatConfigMapper; private CompanyWechatConfigMapper companyWechatConfigMapper;
//
// /** // /**
// * 小程序统一下单接口 // * 小程序统一下单接口
// */ // */

View File

@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.List;
@Mapper @Mapper
public interface OrderPayMapper { public interface OrderPayMapper {
@ -29,24 +30,24 @@ public interface OrderPayMapper {
"os.payment_method = #{payType}" + "os.payment_method = #{payType}" +
" where om.order_id = os.order_id and os.payment_id = #{outTradeNo}") " where om.order_id = os.order_id and os.payment_id = #{outTradeNo}")
int updateSubOrderPaymentStatus(@Param("outTradeNo") String outTradeNo, int updateSubOrderPaymentStatus(@Param("outTradeNo") String outTradeNo,
@Param("payType") String payType, @Param("payType") String payType,
@Param("payStatus") String payStatus, @Param("payStatus") String payStatus,
@Param("transactionId") String transactionId); @Param("transactionId") String transactionId);
@Update("UPDATE zc_order_main SET order_status = #{orderStatus}" + @Update("UPDATE zc_order_main SET order_status = #{orderStatus}" +
"WHERE order_no = #{outTradeNo}") "WHERE order_no = #{outTradeNo}")
int updateOrderStatus(@Param("outTradeNo") String outTradeNo, int updateOrderStatus(@Param("outTradeNo") String outTradeNo,
@Param("orderStatus") String orderStatus); @Param("orderStatus") String orderStatus);
@Update("UPDATE zc_order_main SET order_status = #{orderStatus} , end_rent_time = #{returnTime}, overdue_days = #{overdueDays}, order_amount = #{orderAmount}" + @Update("UPDATE zc_order_main SET order_status = #{orderStatus} , end_rent_time = #{returnTime}, overdue_days = #{overdueDays}, order_amount = #{orderAmount}" +
"WHERE order_no = #{outTradeNo}") "WHERE order_no = #{outTradeNo}")
int updateOrderStatusAndEndRentTime(@Param("outTradeNo") String outTradeNo,@Param("returnTime") LocalDateTime returnTime,@Param("overdueDays") Integer overdueDays,@Param("orderAmount") BigDecimal orderAmount, int updateOrderStatusAndEndRentTime(@Param("outTradeNo") String outTradeNo,@Param("returnTime") LocalDateTime returnTime,@Param("overdueDays") Integer overdueDays,@Param("orderAmount") BigDecimal orderAmount,
@Param("orderStatus") String orderStatus); @Param("orderStatus") String orderStatus);
@Update("update zc_order_main as om,zc_order_sub as os set os.transaction_id = #{paymentId},os.pay_status = #{payStatus}" + @Update("update zc_order_main as om,zc_order_sub as os set os.transaction_id = #{paymentId},os.pay_status = #{payStatus}" +
" where om.order_id = os.order_id and om.order_no = #{outTradeNo} and suborder_type = 'DEPOSIT'") " where om.order_id = os.order_id and om.order_no = #{outTradeNo} and suborder_type = 'DEPOSIT'")
int updateRefundOrderStatus(@Param("outTradeNo") String outTradeNo, int updateRefundOrderStatus(@Param("outTradeNo") String outTradeNo,
@Param("orderStatus") String orderStatus, @Param("orderStatus") String orderStatus,
@Param("transactionId") String transactionId); @Param("transactionId") String transactionId);
@ -58,17 +59,17 @@ public interface OrderPayMapper {
@Update("update zc_order_main as om,zc_order_sub as os set os.transaction_id = #{refundId},os.pay_status = #{payStatus}, os.amount = #{refundFee},os.update_time = #{updateTime}" + @Update("update zc_order_main as om,zc_order_sub as os set os.transaction_id = #{refundId},os.pay_status = #{payStatus}, os.amount = #{refundFee},os.update_time = #{updateTime}" +
" where om.order_id = os.order_id and os.payment_id = #{outTradeNo} and os.suborder_type = 'FD_DEPOSIT'" ) " where om.order_id = os.order_id and os.payment_id = #{outTradeNo} and os.suborder_type = 'FD_DEPOSIT'" )
int updateSubOrderRefundStatus(@Param("outTradeNo") String outTradeNo, int updateSubOrderRefundStatus(@Param("outTradeNo") String outTradeNo,
@Param("payStatus") String payStatus, @Param("payStatus") String payStatus,
@Param("refundFee") BigDecimal refundFee, @Param("refundFee") BigDecimal refundFee,
@Param("updateTime") Date updateTime, @Param("updateTime") Date updateTime,
@Param("refundId") String refundId); @Param("refundId") String refundId);
@Select("select suborder_id from zc_order_sub where payment_id = #{paymentId} and suborder_type = 'RENTBATTEY' limit 1") @Select("select suborder_id from zc_order_sub where payment_id = #{paymentId} and suborder_type = 'RENTBATTEY' limit 1")
Long getSubOrderIdByTradeNo(@Param("paymentId") String paymentId); Long getSubOrderIdByTradeNo(@Param("paymentId") String paymentId);
@Select("select * from zc_order_sub where payment_id = #{paymentId} order by suborder_id desc limit 1") @Select("select * from zc_order_sub where payment_id = #{paymentId}")
OrderSub getSubOrderByTradeNo(@Param("paymentId") String paymentId); List<OrderSub> listSubOrderByTradeNo(@Param("paymentId") String paymentId);
/** /**
* 免押成功,更新子订单状态 * 免押成功,更新子订单状态
@ -76,5 +77,9 @@ public interface OrderPayMapper {
@Update("update zc_order_sub set transaction_id = #{transactionId},pay_status = 'SUCCESS'" + @Update("update zc_order_sub set transaction_id = #{transactionId},pay_status = 'SUCCESS'" +
" where payment_id = #{authNo}") " where payment_id = #{authNo}")
int updateFreezeSubOrderPaymentStatus(@Param("authNo") String authNo, int updateFreezeSubOrderPaymentStatus(@Param("authNo") String authNo,
@Param("transactionId") String transactionId); @Param("transactionId") String transactionId);
@Select("SELECT SHA2 ( CONVERT (concat(u.real_name,u.id_no) USING utf8 ), 256 ) as hashStr FROM zc_order_sub s,zc_order_main m,zc_base_user u WHERE s.payment_id = #{paymentId} AND s.order_id = m.order_id AND m.customer_phone = u.phone_number AND u.authed = '1'")
String getHashStrByTradeNo(@Param("paymentId") String paymentId);
} }

View File

@ -27,6 +27,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -424,10 +425,11 @@ public class WechatPayService {
if(OrderStatus.equals("WAIT_PAY")){ if(OrderStatus.equals("WAIT_PAY")){
orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK"); orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK");
}else if (OrderStatus.equals("RERENT_WAIT_PAY") || OrderStatus.equals("RENT_ING")){ }else if (OrderStatus.equals("RERENT_WAIT_PAY")){
OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); List<OrderSub> orderSub = orderPayMapper.listSubOrderByTradeNo(outTradeNo);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); OrderSub rentCarSubOrder = orderSub.stream().filter(x -> x.getSuborderType().equals("RENTCAR")).findFirst().orElse( null);
//发送租电订单同步 BigDecimal rentCarAmount = orderSub.stream().map(OrderSub::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),rentCarSubOrder.getReturnTime(),0,orderMain.getOrderAmount().add(rentCarAmount),"RENT_ING");
//发送租电订单同步 //发送租电订单同步
Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo);
logger.info("发送租电订单同步: {}", batterySubOrderId); logger.info("发送租电订单同步: {}", batterySubOrderId);

View File

@ -55,6 +55,7 @@ public class AlipayRentServiceImpl implements AlipayRentService {
@Autowired @Autowired
private SyncInteg syncInteg; private SyncInteg syncInteg;
@Override @Override
public AlipayRentPayResponse rentPay(AlipayRentPayReq alipayRentPayReq) { public AlipayRentPayResponse rentPay(AlipayRentPayReq alipayRentPayReq) {
AlipayRentPayResponse response = new AlipayRentPayResponse(); AlipayRentPayResponse response = new AlipayRentPayResponse();
@ -158,9 +159,12 @@ public class AlipayRentServiceImpl implements AlipayRentService {
if(OrderStatus.equals("WAIT_PAY")){ if(OrderStatus.equals("WAIT_PAY")){
orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK"); orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK");
}else if (OrderStatus.equals("RERENT_WAIT_PAY") || OrderStatus.equals("RENT_ING")){ }else if (OrderStatus.equals("RERENT_WAIT_PAY")){
OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); List<OrderSub> orderSub = orderPayMapper.listSubOrderByTradeNo(outTradeNo);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); OrderSub rentCarSubOrder = orderSub.stream().filter(x -> x.getSuborderType().equals("RENTCAR")).findFirst().orElse( null);
BigDecimal rentCarAmount = orderSub.stream().map(OrderSub::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),rentCarSubOrder.getReturnTime(),0,orderMain.getOrderAmount().add(rentCarAmount),"RENT_ING");
//发送租电订单同步 //发送租电订单同步
Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo);
log.info("发送租电订单同步: {}", batterySubOrderId); log.info("发送租电订单同步: {}", batterySubOrderId);

View File

@ -1,6 +1,7 @@
package com.sczx.pay.service.impl; package com.sczx.pay.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayApiException;
import com.alipay.api.domain.*; import com.alipay.api.domain.*;
@ -25,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
@Slf4j @Slf4j
@ -53,6 +55,9 @@ public class AlipayServiceImpl implements AlipayService {
@Value("${alipay.serviceid}") @Value("${alipay.serviceid}")
private String serviceId ; private String serviceId ;
@Value("${alipay.rent.rentCategory}")
private String rentCategory;
@Autowired @Autowired
private PaymentRecordMapper paymentRecordMapper; private PaymentRecordMapper paymentRecordMapper;
@ -341,7 +346,7 @@ public class AlipayServiceImpl implements AlipayService {
model.setProductCode("PRE_AUTH_ONLINE"); model.setProductCode("PRE_AUTH_ONLINE");
// 设置业务扩展参数 // 设置业务扩展参数
model.setExtraParam("{\"category\": \"CHARGE_PILE_CAR\",\"serviceId\": \""+serviceId+"\"}"); model.setExtraParam("{\"category\": \""+rentCategory+"\",\"serviceId\": \""+serviceId+"\"}");
// 设置免押受理台模式 // 设置免押受理台模式
model.setDepositProductMode("DEPOSIT_ONLY"); model.setDepositProductMode("DEPOSIT_ONLY");
@ -350,7 +355,7 @@ public class AlipayServiceImpl implements AlipayService {
// 设置异步通知地址 // 设置异步通知地址
request.setNotifyUrl(freezeNotifyUrl); request.setNotifyUrl(freezeNotifyUrl);
log.info("免押冻结请求 : {}",request); log.info("免押冻结请求 : {}", JSON.toJSONString(request));
AlipayFundAuthOrderAppFreezeResponse fundAuthOrderAppFreezeResponse = alipaySdkUtil.sdkExecute(request); AlipayFundAuthOrderAppFreezeResponse fundAuthOrderAppFreezeResponse = alipaySdkUtil.sdkExecute(request);
log.info("免押冻结响应 : {}",fundAuthOrderAppFreezeResponse.getBody()); log.info("免押冻结响应 : {}",fundAuthOrderAppFreezeResponse.getBody());
@ -551,9 +556,11 @@ public class AlipayServiceImpl implements AlipayService {
if(OrderStatus.equals("WAIT_PAY")){ if(OrderStatus.equals("WAIT_PAY")){
orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK"); orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK");
}else if (OrderStatus.equals("RERENT_WAIT_PAY") || OrderStatus.equals("RENT_ING")){ }else if (OrderStatus.equals("RERENT_WAIT_PAY")){
OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); List<OrderSub> orderSub = orderPayMapper.listSubOrderByTradeNo(outTradeNo);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); OrderSub rentCarSubOrder = orderSub.stream().filter(x -> x.getSuborderType().equals("RENTCAR")).findFirst().orElse( null);
BigDecimal rentCarAmount = orderSub.stream().map(OrderSub::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),rentCarSubOrder.getReturnTime(),0,orderMain.getOrderAmount().add(rentCarAmount),"RENT_ING");
//发送租电订单同步 //发送租电订单同步
Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo);
log.info("发送租电订单同步: {}", batterySubOrderId); log.info("发送租电订单同步: {}", batterySubOrderId);