This commit is contained in:
2025-09-02 02:41:17 +08:00
parent 51b054c649
commit 704c5b5f98
2 changed files with 88 additions and 0 deletions

View File

@ -11,6 +11,7 @@ import com.alipay.api.response.*;
import com.sczx.pay.alipay.po.RentRuleItem; import com.sczx.pay.alipay.po.RentRuleItem;
import com.sczx.pay.alipay.service.ImageUploadService; import com.sczx.pay.alipay.service.ImageUploadService;
import com.sczx.pay.alipay.service.ItemService; import com.sczx.pay.alipay.service.ItemService;
import com.sczx.pay.alipay.vo.AppItemSkuAttrVo;
import com.sczx.pay.alipay.vo.OpenResponse; import com.sczx.pay.alipay.vo.OpenResponse;
import com.sczx.pay.mapper.RentRuleItemMapper; import com.sczx.pay.mapper.RentRuleItemMapper;
import com.sczx.pay.utils.AlipayApiCallback; import com.sczx.pay.utils.AlipayApiCallback;
@ -139,8 +140,13 @@ public class ItemServiceImpl implements ItemService {
// 设置价格单元 // 设置价格单元
model.setPriceUnit(""); model.setPriceUnit("");
//sku_attrs
model.setSkus(getItemSkus(param, model.getImageList(), model.getItemType()));
// 设置属性列表 // 设置属性列表
model.setAttrs(getItemAttrs(param, model.getImageList(), model.getItemType())); model.setAttrs(getItemAttrs(param, model.getImageList(), model.getItemType()));
logger.info("属性列表:" + JSON.toJSONString(model)); logger.info("属性列表:" + JSON.toJSONString(model));
request.setBizModel(model); request.setBizModel(model);
return alipaySdkUtil.execute(request); return alipaySdkUtil.execute(request);
@ -345,6 +351,9 @@ public class ItemServiceImpl implements ItemService {
// 起租天数 // 起租天数
appItemAttrVO.setAttrValue("1"); appItemAttrVO.setAttrValue("1");
break; break;
case "lease_term_type":
appItemAttrVO.setAttrValue("短租");
break;
case "item_fineness": case "item_fineness":
// 商品成色 // 商品成色
appItemAttrVO.setAttrValue("secondHand"); appItemAttrVO.setAttrValue("secondHand");
@ -368,4 +377,44 @@ public class ItemServiceImpl implements ItemService {
} }
return attrs; return attrs;
} }
private List<ItemSkuCreateVO> getItemSkus(RentRuleItem param, List<String> imageList, String itemType) throws AlipayApiException {
List<ItemSkuCreateVO> itemSkus = new ArrayList<>();
ItemSkuCreateVO sku = new ItemSkuCreateVO();
// 设置商家侧SKU ID需要全局唯一
sku.setOutSkuId(param.getOutItemId() + "_sku"); // 示例基于outItemId生成
// 设置售卖状态
sku.setSaleStatus("AVAILABLE");
// 设置SKU类型为租赁
sku.setSkuType("RENT");
// 设置价格相关字段
Long rentalPriceInCents = param.getRentalPrice().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
sku.setSalePrice(param.getRentalPrice().toString());
sku.setOriginalPrice(rentalPriceInCents);
// 设置库存
sku.setStockNum(String.valueOf(100L));
// 设置价格单元
sku.setPriceUnit("元/日");
// 设置销售属性
List<AppItemSkuAttrVo> skuAttrs = new ArrayList<>();
// 添加租赁商品属性
AppItemSkuAttrVo rentCommodityAttr = new AppItemSkuAttrVo();
rentCommodityAttr.setAttrKey("rent_commodity");
rentCommodityAttr.setAttrValue("----");
rentCommodityAttr.setAttrType("custom"); // 根据实际情况设置
skuAttrs.add(rentCommodityAttr);
itemSkus.add(sku);
return itemSkus;
}
} }

View File

@ -0,0 +1,39 @@
package com.sczx.pay.alipay.vo;
import com.alipay.api.AlipayObject;
import com.alipay.api.internal.mapping.ApiField;
public class AppItemSkuAttrVo
extends AlipayObject
{
private static final long serialVersionUID = 8193327886322884429L;
@ApiField("attr_key")
private String attrKey;
@ApiField("attr_value")
private String attrValue;
public String getAttrType() {
return attrType;
}
public void setAttrType(String attrType) {
this.attrType = attrType;
}
@ApiField("attr_type")
private String attrType;
public String getAttrKey() {
return this.attrKey;
}
public void setAttrKey(String attrKey) {
this.attrKey = attrKey;
}
public String getAttrValue() {
return this.attrValue;
}
public void setAttrValue(String attrValue) {
this.attrValue = attrValue;
}
}