fixbug first

This commit is contained in:
2025-09-02 00:49:20 +08:00
parent aeb41bcefe
commit 7066066d79
7 changed files with 102 additions and 126 deletions

View File

@ -1,7 +1,3 @@
/**
* Alipay.com Inc.
* Copyright (c) 2004-2024 All Rights Reserved.
*/
package com.sczx.pay.alipay.service;
import com.alipay.api.domain.AppxCategoryVO;

View File

@ -1,7 +1,3 @@
/**
* Alipay.com Inc.
* Copyright (c) 2004-2024 All Rights Reserved.
*/
package com.sczx.pay.alipay.service.impl;
import com.alipay.api.AlipayApiException;

View File

@ -10,22 +10,17 @@ import com.alipay.api.response.*;
import com.sczx.pay.alipay.po.RentRuleItem;
import com.sczx.pay.alipay.service.ImageUploadService;
import com.sczx.pay.alipay.service.ItemService;
import com.sczx.pay.alipay.vo.ItemCreateRequest;
import com.sczx.pay.alipay.vo.OpenResponse;
import com.sczx.pay.mapper.RentRuleItemMapper;
import com.sczx.pay.utils.AlipayApiCallback;
import com.sczx.pay.utils.AlipayApiTemplate;
import com.sczx.pay.utils.AlipaySdkUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.io.UnsupportedEncodingException;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@ -46,6 +41,9 @@ public class ItemServiceImpl implements ItemService {
@Autowired
private ImageUploadService imageUploadService;
@Autowired
private RentRuleItemMapper rentRuleItemMapper;
@Override
public OpenResponse<List<AppxCategoryVO>> getCategories(String itemType, String catStatus) {
return AlipayApiTemplate.execute(new AlipayApiCallback<List<AppxCategoryVO>, AlipayOpenAppItemAllcategoryQueryResponse>() {
@ -127,15 +125,18 @@ public class ItemServiceImpl implements ItemService {
@Override
public AlipayOpenAppItemCreateResponse process() throws AlipayApiException {
RentRuleItem rentRuleItem = rentRuleItemMapper.selectByIds(param.getBatteryRuleId(), param.getCarRuleId(), param.getCarModelId(), param.getBrandId());
// 构造请求参数以调用接口
AlipayOpenAppItemCreateRequest request = new AlipayOpenAppItemCreateRequest();
AlipayOpenAppItemCreateModel model = getAlipayOpenAppItemCreateModel(param);
AlipayOpenAppItemCreateModel model = getAlipayOpenAppItemCreateModel(rentRuleItem);
// 设置商品模版类型
model.setItemType("2");
// 设置价格单元
model.setPriceUnit("/日");
model.setPriceUnit("");
// 设置属性列表
model.setAttrs(getItemAttrs(param, model.getImageList(), model.getItemType()));
@ -168,6 +169,8 @@ public class ItemServiceImpl implements ItemService {
model.setDeliveryType("PICKUP");
model.setDeliveryName("电动车租赁自提履约");
// 设置履约信息ID
model.setDeliveryId("2025090124000116301610");
// 设置履约属性
List<AppItemAttrVO> attrs = new ArrayList<AppItemAttrVO>();
@ -232,7 +235,7 @@ public class ItemServiceImpl implements ItemService {
AlipayOpenAppDeliveryTemplateQueryModel model = new AlipayOpenAppDeliveryTemplateQueryModel();
// 设置履约类型
model.setDeliveryType("PICKUP");
//ST1000000000000010
request.setBizModel(model);
return alipaySdkUtil.execute(request);
}
@ -329,36 +332,16 @@ public class ItemServiceImpl implements ItemService {
// -----BEGIN 普通实物类商品可传入以下属性 -----
case "delivery_info":
// 商品履约信息
// if (StringUtils.isEmpty(param.getDeliveryId())) {
// break;
// }
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("delivery_id", param.getDeliveryId());
// jsonObject.put("shop_ids", param.getShopIds());
// JSONArray jsonArray = new JSONArray();
// jsonArray.add(jsonObject);
// appItemAttrVO.setAttrValue(JSONArray.toJSONString(jsonArray));
JSONObject jsonObject = new JSONObject();
jsonObject.put("delivery_id", "2025090124000116301610");
//jsonObject.put("shop_ids", param.getShopIds());
JSONArray jsonArray = new JSONArray();
jsonArray.add(jsonObject);
appItemAttrVO.setAttrValue(JSONArray.toJSONString(jsonArray));
break;
case "selling_point_tag":
// 导购标签
appItemAttrVO.setAttrValue("[\"鲜花\",\"盆栽\"]");
break;
case "white_ground_image":
// 商品白底图
JSONObject image = new JSONObject();
image.put("url_list", imageList);
appItemAttrVO.setAttrValue(image.toJSONString());
break;
case "shipping_time_limit":
// 现货发货时效
appItemAttrVO.setAttrValue("1");
break;
// -----END 普通实物类商品可传入以上属性 -----
// -----BEGIN 租赁类商品可传入以下属性 -----
case "rent_from_numbers_of_day":
// 起租天数
appItemAttrVO.setAttrValue("3");
appItemAttrVO.setAttrValue("1");
break;
case "item_fineness":
// 商品成色
@ -376,49 +359,6 @@ public class ItemServiceImpl implements ItemService {
// 是否可买断
appItemAttrVO.setAttrValue("1");
break;
// -----END 租赁类商品可传入以上属性 -----
// -----BEGIN 虚拟类(电影/演出/体育赛事/休闲娱乐/运动健身类目)商品可传入以下属性 -----
case "sale_time":
// 开售时间明天16:00:00开始
appItemAttrVO.setAttrValue(LocalDateTime.now()
.plusDays(1)
.withHour(16)
.withMinute(0)
.withSecond(0)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
break;
case "performance_date_range":
// 演出日期
JSONObject range = new JSONObject();
LocalDateTime localDateTime = LocalDateTime.now()
.plusMonths(1);
// 一个月后开始
range.put("start_date", localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
range.put("end_date", localDateTime
.plusDays(1)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
appItemAttrVO.setAttrValue(range.toJSONString());
break;
case "agent_type":
// 票务代理类型
appItemAttrVO.setAttrValue("1");
break;
case "performance_area":
// 演出举办地区
appItemAttrVO.setAttrValue("{\"city_code\":\"120100\"}");
break;
case "venue_name":
// 演出场馆名称
appItemAttrVO.setAttrValue("蚂蚁A空间");
break;
case "post_img":
// 演出海报(图片)
JSONObject image2 = new JSONObject();
image2.put("url_list", imageList);
appItemAttrVO.setAttrValue(image2.toJSONString());
break;
// -----END 虚拟类(电影/演出/体育赛事/休闲娱乐/运动健身类目)商品可传入以上属性 -----
}
if (!StringUtils.isEmpty(appItemAttrVO.getAttrValue())) {
attrs.add(appItemAttrVO);

View File

@ -21,7 +21,7 @@ public class AlipayConf {
@Value("${ali.pay.app-id}")
private String appId;
@Value("${alipay.gateway-url}")
@Value("${ali.pay.gateway-url}")
private String gatewayUrl;
@Value("${ali.pay.privateKey}")

View File

@ -10,41 +10,46 @@ import java.util.List;
*/
@Mapper
public interface RentRuleItemMapper {
/**
* 根据ID查询车型租赁规则项
* @param id 车型ID
* @return 车型租赁规则项信息
*/
RentRuleItem selectById(@Param("id") Long id);
RentRuleItem selectByIds(@Param("batteryRuleId") Long batteryRuleId, @Param("carRuleId") Long carRuleId, @Param("carModelId") Long carModelId,@Param("brandId") Long brandId);
RentRuleItem selectByAliId(@Param("aliItemId") String aliItemId);
RentRuleItem selectByItemId(@Param("outItemId") String outItemId);
/**
* 查询所有车型租赁规则项
* @return 车型租赁规则项列表
*/
List<RentRuleItem> selectAll();
/**
* 新增车型租赁规则项
* @param zcRentRuleItem 车型租赁规则项信息
* @return 影响行数
*/
int insert(RentRuleItem zcRentRuleItem);
/**
* 更新车型租赁规则项
* @param zcRentRuleItem 车型租赁规则项信息
* @return 影响行数
*/
int update(RentRuleItem zcRentRuleItem);
/**
* 根据ID删除车型租赁规则项
* @param id 车型ID
* @return 影响行数
*/
int deleteById(@Param("id") Long id);
/**
* 批量插入车型租赁规则项
* @param list 车型租赁规则项列表

View File

@ -71,8 +71,8 @@ ali:
refund-notify-url: https://www.minbo.wang:8020/api/alipay/refundNotify
privateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCQke+mZsxNXJXMn2iUZRkhITWY9qPczwHMgRxl68JRuNzZE2AXhAc2ciF7EGob1y0al4hvJo5JUrDew9Zkv0BocAsPjLma3A9KFgj131xMuLxVvHtktkNSwwW9VIbOOhFAQAy3J9jt8PdEk40UONyu9J5Shjs6jbQ8RogdDuwuzKpNj0ZOTeUqgR6RME4xZ0VqvZe9XhVfq3QtVGttUzOpLPNg6boBy/5RqwC64lVFICMqjKkMW2NklVPBDFO46QwfWEbaA+APnd9bd+9WadyNySPb7kAK8GOlvZYfysy+QkOQdj/oebKWKzdKXpFnF+n52dYzeGTvckt1suDngwAFAgMBAAECggEAcPc39iTZe5HfE9d0FpCxBCw4/1+qRz4SP8SbdiC05Lq5B36WVYm7QRYJh2oaH8sR2XeTCpdsE2tj/Y21l1/Calkyq2HhHlraL5/sPIPeUa0ArVXsbZPmI2N0tq6376l8FWJ3DR876SGjdZh+YtDT0HogxIdS/LwBnB/Y+CvS7fWcqiMjcR4h28RU70CQqxpzYuPfqG6GZmByGyJAcdlhFAYgiksb+qZnkjoaKHsjb61xfUX4z+HGdQLqOlVKfNqIpiO7arXaeAb0RQiB8Lqi7fBvn8LLhlTmM1Hr4gyQO14lJmP5Vp2BIg9m5AC9vRkpZ9l79bUTIepDe9+Ovcx5eQKBgQDWZ5yoz8q8Z5VIfMSVTHO3wpfwOBM92S2c21hTsds7NezsMVqGcTuAcvbMW2i1MwxtS7kahXraRAxZnCDB9ZVJs+88xcgu5QJWZ1rJyrwEwB2gTQhColv+XZW6Ck/J6kk2/PG26rNQG6pg/xrKaMtPnXXyKCsdQTyEpr+mlNIJ2wKBgQCsnf4lIuwftCSm0jI73tO1Bb4U9TCIapKidnIhutbyg6u+hJMUTVDNkjsBnrTN24sSP7Cu4Zs/W4lkDqq86fHNEvnF+FouIfO/CwaGteDBNwXHSLM0D+zEBbK04bfoYi7lYZeDRPygFrM49Sxkp0MAmItDmXqbYRQBlhN1XVzznwKBgQCQ+72fFex1XOJBA0X345v4rlkKMxEn6J2EjXr8FbA3KO8OhQ0/DoD7CkLDzChRJ7UGj4cbXRnHUO69BevM3SHXlhp4ERKeS3Q6M2fcPwDHgZZHGPA2Bw6IQoaGKITt+EUMLx3Q4ILi7+JV9wwJxbV+H+9rEiidfsjKtuuwXMBvswKBgQChpElrCSrH/W8c8FSuD9l7+GapRXkvJW0uyW/S+h1yd66J96erKUNzXW339GAnLWErs4yGFynDyLn9gmaMBR6zBQP0SL5Z2N1hlreDyikvhZDZrtBw/kCexx8zlvMan2Z+0kaJXD6cwuUNfzkVADQUCMTQhpZzjhKn8ZtDGiyCzQKBgQCAhU0khG/ufZfQ089+1G7PAlErBr5MQaG40a2vfIWGtHkYyXq5N/3jow1bd2qsyLuz8mr2sWQeURK+B2xZridf6JtYz3gB+dLw0frlLKk4Q6jeehiRlE8H8tIYe/7KcgTmdIzEbo3lmyGMFAILvr/pSCWeUehQYR9PH91Qyi+Tog==
# publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArPG4JQ9YY9+tOeImQO0eNkp+NZkenJ9hMHEVVmwAHAI5BoJMCLvAm504BXSpgpqaiCJ6ARTwBkiDz4dyCMVfE3VE8+oMFtXqfHaZLhfd+X9VQNqRCz0HeR2IbjGnnbYxQOAEOM6z092UfNieG00HyU5yREfzjJkIcyuGeGgbIBG1gPpLhXsQKRhQYqp4Exgd4LX6qnKLPL90kJVkQnHcJkp+rCoQ5zS6ZUXE2d/2GzY7xi93uTU2CLMiZ7Vi2OZ1g7xY+yDQzTA/CseveJeW3rM6T8yBjlEJwsywEL5co3YqpJUIMIe/fLjhRRgj+JUq5w0sRqb3+CswQHIjgc71QwIDAQAB
appCertPath: /root/cert//appCertPublicKey_2021005174658269.crt
alipayCertPath: /root/cert//alipayCertPublicKey_RSA2.crt
appCertPath: /root/cert/appCertPublicKey_2021005174658269.crt
alipayCertPath: /root/cert/alipayCertPublicKey_RSA2.crt
alipayRootCertPath: /root/cert/alipayRootCert.crt
cert-path: /root/cert/

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sczx.pay.mapper.RentRuleItemMapper">
<!-- 结果映射 -->
<resultMap id="BaseResultMap" type="com.sczx.pay.alipay.po.RentRuleItem">
<id property="id" column="id"/>
@ -17,27 +17,60 @@
<result property="carRuleId" column="car_rule_id"/>
<result property="carModelId" column="car_model_id"/>
<result property="brandId" column="brand_id"/>
<result property="rentalDays" column="rental_days"/>
<result property="rentalPrice" column="rental_price"/>
</resultMap>
<!-- 字段列表 -->
<sql id="Base_Column_List">
id, out_item_id, ali_item_id, brand_name, model_name, category_name,
dict_label, rule_name, image, battery_rule_id, car_rule_id, car_model_id, brand_id
id, out_item_id, ali_item_id, brand_name, model_name, category_name,
dict_label, rule_name, image, battery_rule_id, car_rule_id, car_model_id, brand_id,rental_days,rental_price
</sql>
<!-- 查询所有 -->
<select id="selectAll" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM zc_rent_rule_item
</select>
<!-- 根据ID查询 -->
<select id="selectById" parameterType="Long" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM zc_rent_rule_item
WHERE id = #{id}
</select>
<select id="selectByItemId" parameterType="Long" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM zc_rent_rule_item
WHERE out_item_id = #{outItemId}
</select>
<select id="selectByAliId" parameterType="Long" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM zc_rent_rule_item
WHERE ali_item_id = #{aliItemId}
</select>
<select id="selectByIds" parameterType="map" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM zc_rent_rule_item
<where>
<if test="batteryRuleId != null">
AND battery_rule_id = #{batteryRuleId}
</if>
<if test="carRuleId != null">
AND car_rule_id = #{carRuleId}
</if>
<if test="carModelId != null">
AND car_model_id = #{carModelId}
</if>
<if test="brandId != null">
AND brand_id = #{brandId}
</if>
</where>
</select>
<!-- 插入 -->
<insert id="insert" parameterType="com.sczx.pay.alipay.po.RentRuleItem">
INSERT INTO zc_rent_rule_item (
@ -53,32 +86,36 @@
battery_rule_id,
car_rule_id,
car_model_id,
rental_days,
rental_price,
brand_id
) VALUES (
#{id},
#{outItemId},
#{aliItemId},
#{brandName},
#{modelName},
#{categoryName},
#{dictLabel},
#{ruleName},
#{image},
#{batteryRuleId},
#{carRuleId},
#{carModelId},
#{brandId}
)
#{id},
#{outItemId},
#{aliItemId},
#{brandName},
#{modelName},
#{categoryName},
#{dictLabel},
#{ruleName},
#{image},
#{batteryRuleId},
#{carRuleId},
#{carModelId},
#{rentalDays},
#{rentalPrice},
#{brandId}
)
</insert>
<!-- 批量插入 -->
<insert id="insertBatch">
INSERT INTO zc_rent_rule_item (
id, out_item_id, ali_item_id, brand_name, model_name, category_name,
dict_label, rule_name, image, battery_rule_id, car_rule_id, car_model_id, brand_id
id, out_item_id, ali_item_id, brand_name, model_name, category_name,
dict_label, rule_name, image, battery_rule_id, car_rule_id, car_model_id, brand_id,rental_days,rental_price
) VALUES
<foreach collection="list" item="item" separator=",">
(
(
#{item.id},
#{item.outItemId},
#{item.aliItemId},
@ -91,11 +128,13 @@
#{item.batteryRuleId},
#{item.carRuleId},
#{item.carModelId},
#{item.brandId}
)
#{item.brandId},
#{item.rentalDays},
#{item.rentalPrice},
)
</foreach>
</insert>
<!-- 更新 -->
<update id="update" parameterType="com.sczx.pay.alipay.po.RentRuleItem">
UPDATE zc_rent_rule_item
@ -115,7 +154,7 @@
</set>
WHERE id = #{id}
</update>
<!-- 根据ID删除 -->
<delete id="deleteById" parameterType="Long">
DELETE FROM zc_rent_rule_item WHERE id = #{id}