no message
This commit is contained in:
@ -72,7 +72,7 @@ public class ItemController {
|
|||||||
|
|
||||||
|
|
||||||
@PostMapping(value = "/rent/modify")
|
@PostMapping(value = "/rent/modify")
|
||||||
public OpenResponse<String> modifyCreate(@RequestBody String request) {
|
public OpenResponse<String> modifyCreate(@RequestBody RentRuleItem request) {
|
||||||
return itemService.modifyItem(request);
|
return itemService.modifyItem(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,7 @@ public interface ItemService {
|
|||||||
*/
|
*/
|
||||||
OpenResponse<String> createRentItem(RentRuleItem param);
|
OpenResponse<String> createRentItem(RentRuleItem param);
|
||||||
|
|
||||||
OpenResponse<String> modifyItem(String param);
|
OpenResponse<String> modifyItem(RentRuleItem param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据业务属性写死自提履约信息
|
* 根据业务属性写死自提履约信息
|
||||||
|
|||||||
@ -155,14 +155,19 @@ public class ItemServiceImpl implements ItemService {
|
|||||||
|
|
||||||
// 设置价格单元
|
// 设置价格单元
|
||||||
model.setPriceUnit("元/日");
|
model.setPriceUnit("元/日");
|
||||||
|
|
||||||
|
//设置商品ID
|
||||||
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
||||||
String uuidSuffix = UUID.randomUUID().toString().replace("-", "").substring(0, 6).toUpperCase();
|
String uuidSuffix = UUID.randomUUID().toString().replace("-", "").substring(0, 6).toUpperCase();
|
||||||
String outItemId = "OI"+timestamp + uuidSuffix;
|
String outItemId = "OI"+timestamp + uuidSuffix;
|
||||||
model.setOutItemId(outItemId);
|
model.setOutItemId(outItemId);
|
||||||
rentRuleItemvo.setOutItemId(outItemId);
|
rentRuleItemvo.setOutItemId(outItemId);
|
||||||
rentRuleItemvo.setOutSkuId(outItemId+"_sku");
|
rentRuleItemvo.setOutSkuId(outItemId+"_sku");
|
||||||
|
//设置商品详情页路径
|
||||||
model.setPath("alipays://platformapi/startapp?appId=2021004169641281&page=pages/rentGoodsDetail/index?outItemId="+outItemId);
|
model.setPath("alipays://platformapi/startapp?appId=2021004169641281&page=pages/rentGoodsDetail/index?outItemId="+outItemId);
|
||||||
rentRuleItemvo.setPagePath("alipays://platformapi/startapp?appId=2021004169641281&page=pages/rentGoodsDetail/index?outItemId="+outItemId);
|
rentRuleItemvo.setPagePath("alipays://platformapi/startapp?appId=2021004169641281&page=pages/rentGoodsDetail/index?outItemId="+outItemId);
|
||||||
|
|
||||||
|
//设置商品状态
|
||||||
model.setSaleStatus("AVAILABLE");
|
model.setSaleStatus("AVAILABLE");
|
||||||
//sku_attrs
|
//sku_attrs
|
||||||
model.setSkus(getItemSkus(rentRuleItem, model.getImageList(), model.getItemType()));
|
model.setSkus(getItemSkus(rentRuleItem, model.getImageList(), model.getItemType()));
|
||||||
@ -198,18 +203,65 @@ public class ItemServiceImpl implements ItemService {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OpenResponse<String> modifyItem(String param) {
|
public OpenResponse<String> modifyItem(RentRuleItem rentRuleItem) {
|
||||||
return AlipayApiTemplate.execute(new AlipayApiCallback<String, AlipayOpenAppItemModifyResponse >() {
|
return AlipayApiTemplate.execute(new AlipayApiCallback<String, AlipayOpenAppItemModifyResponse >() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlipayOpenAppItemModifyResponse process() throws AlipayApiException {
|
public AlipayOpenAppItemModifyResponse process() throws AlipayApiException {
|
||||||
|
|
||||||
AlipayOpenAppItemModifyModel itemCreateRequest = JSON.parseObject(param, AlipayOpenAppItemModifyModel.class);
|
|
||||||
|
|
||||||
// 构造请求参数以调用接口
|
// 构造请求参数以调用接口
|
||||||
AlipayOpenAppItemModifyRequest request = new AlipayOpenAppItemModifyRequest();
|
AlipayOpenAppItemModifyRequest request = new AlipayOpenAppItemModifyRequest();
|
||||||
AlipayOpenAppItemModifyModel model = itemCreateRequest;
|
AlipayOpenAppItemModifyModel model = new AlipayOpenAppItemModifyModel();
|
||||||
|
|
||||||
|
RentRuleItem rentRuleItemvo = rentRuleItem;
|
||||||
|
// 设置平台类目
|
||||||
|
model.setCategoryId("C001684401");
|
||||||
|
// 设置商品名称由品牌、型号、电池规格、租赁类型、套餐名称拼接
|
||||||
|
String title = rentRuleItem.getBrandName() + rentRuleItem.getModelName() +"_"+ rentRuleItem.getCategoryName() + "_" + rentRuleItem.getRentType()+rentRuleItem.getRuleName();
|
||||||
|
rentRuleItemvo.setItemDesc(title);
|
||||||
|
// 设置商品名称
|
||||||
|
model.setTitle(title);
|
||||||
|
// 设置导购描述
|
||||||
|
model.setDesc(title);
|
||||||
|
// 设置平台类目
|
||||||
|
model.setCategoryId("C001684401");
|
||||||
|
// 设置商品主图
|
||||||
|
String imgStr = imageUploadService.uploadAndReturnId(rentRuleItem.getImage(), "ITEM_HEAD_IMG");
|
||||||
|
model.setHeadImg(imgStr);
|
||||||
|
rentRuleItemvo.setImage(imgStr);
|
||||||
|
// 设置商品模版类型
|
||||||
|
model.setItemType("2");
|
||||||
|
//sku_attrs
|
||||||
|
|
||||||
|
// 设置价格单元
|
||||||
|
model.setPriceUnit("元/日");
|
||||||
|
|
||||||
|
//设置商品ID
|
||||||
|
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
||||||
|
String uuidSuffix = UUID.randomUUID().toString().replace("-", "").substring(0, 6).toUpperCase();
|
||||||
|
String outItemId = "OI"+timestamp + uuidSuffix;
|
||||||
|
model.setOutItemId(outItemId);
|
||||||
|
rentRuleItemvo.setOutItemId(outItemId);
|
||||||
|
rentRuleItemvo.setOutSkuId(outItemId+"_sku");
|
||||||
|
//设置商品详情页路径
|
||||||
|
model.setPath("alipays://platformapi/startapp?appId=2021004169641281&page=pages/rentGoodsDetail/index?outItemId="+outItemId);
|
||||||
|
rentRuleItemvo.setPagePath("alipays://platformapi/startapp?appId=2021004169641281&page=pages/rentGoodsDetail/index?outItemId="+outItemId);
|
||||||
|
|
||||||
|
//设置商品状态
|
||||||
|
model.setSaleStatus("AVAILABLE");
|
||||||
|
//sku_attrs
|
||||||
|
model.setSkus(modifyItemSkus(rentRuleItem));
|
||||||
|
|
||||||
|
// 设置属性列表
|
||||||
|
model.setAttrs(getItemAttrs(rentRuleItem, model.getImageList(), model.getItemType()));
|
||||||
|
|
||||||
|
RentRuleItem res = rentRuleItemMapper.selectItemByFourIds(rentRuleItem.getBatteryRuleId(), rentRuleItem.getCarRuleId(), rentRuleItem.getCarModelId(), rentRuleItem.getBrandId());
|
||||||
|
|
||||||
|
if(res != null ){
|
||||||
|
rentRuleItemMapper.updateItemIdByOutItemId(rentRuleItemvo);
|
||||||
|
}else {
|
||||||
|
rentRuleItemMapper.insertByFourId(rentRuleItemvo);
|
||||||
|
}
|
||||||
|
|
||||||
logger.info("属性列表:" + JSON.toJSONString(model));
|
logger.info("属性列表:" + JSON.toJSONString(model));
|
||||||
request.setBizModel(model);
|
request.setBizModel(model);
|
||||||
@ -471,6 +523,9 @@ public class ItemServiceImpl implements ItemService {
|
|||||||
// 是否可买断
|
// 是否可买断
|
||||||
appItemAttrVO.setAttrValue("1");
|
appItemAttrVO.setAttrValue("1");
|
||||||
break;
|
break;
|
||||||
|
case "收货方式":
|
||||||
|
appItemAttrVO.setAttrValue("自提");
|
||||||
|
break ;
|
||||||
}
|
}
|
||||||
if (!StringUtils.isEmpty(appItemAttrVO.getAttrValue())) {
|
if (!StringUtils.isEmpty(appItemAttrVO.getAttrValue())) {
|
||||||
attrs.add(appItemAttrVO);
|
attrs.add(appItemAttrVO);
|
||||||
@ -503,7 +558,7 @@ public class ItemServiceImpl implements ItemService {
|
|||||||
// sku.setOriginalPrice(originalPriceInCents);
|
// sku.setOriginalPrice(originalPriceInCents);
|
||||||
|
|
||||||
// 设置库存
|
// 设置库存
|
||||||
sku.setStockNum(String.valueOf(100L));
|
sku.setStockNum(String.valueOf(999999));
|
||||||
|
|
||||||
// 设置价格单元
|
// 设置价格单元
|
||||||
sku.setPriceUnit("元/日");
|
sku.setPriceUnit("元/日");
|
||||||
@ -522,7 +577,9 @@ public class ItemServiceImpl implements ItemService {
|
|||||||
config.setCustomLease("0");
|
config.setCustomLease("0");
|
||||||
config.setSlopeFormula("DEFAULT_SLOPE_FORMULA");
|
config.setSlopeFormula("DEFAULT_SLOPE_FORMULA");
|
||||||
config.setDurationUnit("日");
|
config.setDurationUnit("日");
|
||||||
config.setBuyoutPrice("10000");
|
|
||||||
|
//买断价10000元*100 单位分
|
||||||
|
config.setBuyoutPrice("1000000");
|
||||||
config.setPriceUnit("元");
|
config.setPriceUnit("元");
|
||||||
|
|
||||||
int rentalDays = 1;
|
int rentalDays = 1;
|
||||||
@ -535,7 +592,7 @@ public class ItemServiceImpl implements ItemService {
|
|||||||
|
|
||||||
for(int i = 1; i < 4; i++){
|
for(int i = 1; i < 4; i++){
|
||||||
RentCommodityConfig.DurationPrice durationPrice = new RentCommodityConfig.DurationPrice();
|
RentCommodityConfig.DurationPrice durationPrice = new RentCommodityConfig.DurationPrice();
|
||||||
String val = i + "";
|
String val = i*100 + "";
|
||||||
durationPrice.setDuration(i*rentalDays+"");
|
durationPrice.setDuration(i*rentalDays+"");
|
||||||
durationPrice.setTotalSalePrice(param.getRentalPrice()
|
durationPrice.setTotalSalePrice(param.getRentalPrice()
|
||||||
.multiply(new BigDecimal(val))
|
.multiply(new BigDecimal(val))
|
||||||
@ -555,6 +612,87 @@ public class ItemServiceImpl implements ItemService {
|
|||||||
return itemSkus;
|
return itemSkus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<ItemSkuVO> modifyItemSkus(RentRuleItem param) throws AlipayApiException {
|
||||||
|
List<ItemSkuVO> itemSkus = new ArrayList<>();
|
||||||
|
|
||||||
|
ItemSkuVO sku = new ItemSkuVO();
|
||||||
|
|
||||||
|
// 设置商家侧SKU ID,需要全局唯一
|
||||||
|
sku.setOutSkuId(param.getOutItemId() + "_sku");
|
||||||
|
|
||||||
|
// 设置售卖状态
|
||||||
|
sku.setSaleStatus("AVAILABLE");
|
||||||
|
|
||||||
|
// 设置SKU类型为租赁
|
||||||
|
sku.setSkuType("RENT");
|
||||||
|
|
||||||
|
// 设置价格相关字段
|
||||||
|
Long rentalPriceInCents = param.getRentalPrice().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
|
||||||
|
// sku.setSalePrice(rentalPriceInCents.toString());
|
||||||
|
// // 设置原价为租赁价格的1.2倍
|
||||||
|
// Long originalPriceInCents = new BigDecimal(rentalPriceInCents)
|
||||||
|
// .multiply(new BigDecimal("1.2"))
|
||||||
|
// .setScale(0, BigDecimal.ROUND_HALF_UP)
|
||||||
|
// .longValue();
|
||||||
|
// sku.setOriginalPrice(originalPriceInCents);
|
||||||
|
|
||||||
|
// 设置库存
|
||||||
|
sku.setStockNum(999999L);
|
||||||
|
|
||||||
|
// 设置价格单元
|
||||||
|
sku.setPriceUnit("元/日");
|
||||||
|
|
||||||
|
// 设置销售属性
|
||||||
|
List<ItemSkuAttrVO> skuAttrs = new ArrayList<>();
|
||||||
|
|
||||||
|
// 添加租赁商品属性
|
||||||
|
ItemSkuAttrVO rentCommodityAttr = new ItemSkuAttrVO();
|
||||||
|
rentCommodityAttr.setAttrKey("rent_commodity");
|
||||||
|
rentCommodityAttr.setAttrType("custom");
|
||||||
|
|
||||||
|
RentCommodityConfig config = new RentCommodityConfig();
|
||||||
|
config.setName("门店自提,租完归还");
|
||||||
|
config.setDescription("套餐说明");
|
||||||
|
config.setCustomLease("0");
|
||||||
|
config.setSlopeFormula("DEFAULT_SLOPE_FORMULA");
|
||||||
|
config.setDurationUnit("日");
|
||||||
|
|
||||||
|
//买断价10000元*100 单位分
|
||||||
|
config.setBuyoutPrice("1000000");
|
||||||
|
config.setPriceUnit("元");
|
||||||
|
|
||||||
|
int rentalDays = 1;
|
||||||
|
if(param.getRentalDays() != null && param.getRentalDays() > 0){
|
||||||
|
rentalDays = param.getRentalDays();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建时段价格列表根据基础价格创建3个时段价格
|
||||||
|
List<RentCommodityConfig.DurationPrice> durationPriceList = new ArrayList<>();
|
||||||
|
|
||||||
|
for(int i = 1; i < 4; i++){
|
||||||
|
RentCommodityConfig.DurationPrice durationPrice = new RentCommodityConfig.DurationPrice();
|
||||||
|
String val = i*100 + "";
|
||||||
|
durationPrice.setDuration(i*rentalDays+"");
|
||||||
|
durationPrice.setTotalSalePrice(param.getRentalPrice()
|
||||||
|
.multiply(new BigDecimal(val))
|
||||||
|
.setScale(0, BigDecimal.ROUND_HALF_UP).toString());
|
||||||
|
durationPrice.setTotalOriginalPrice(param.getRentalPrice()
|
||||||
|
.multiply(new BigDecimal(val))
|
||||||
|
.setScale(0, BigDecimal.ROUND_HALF_UP).toString());
|
||||||
|
durationPriceList.add(durationPrice);
|
||||||
|
}
|
||||||
|
config.setDurationPriceList(durationPriceList);
|
||||||
|
rentCommodityAttr.setAttrValue(JSON.toJSONString(config));
|
||||||
|
// 根据实际情况设置
|
||||||
|
skuAttrs.add(rentCommodityAttr);
|
||||||
|
sku.setSkuAttrs(skuAttrs);
|
||||||
|
|
||||||
|
itemSkus.add(sku);
|
||||||
|
return itemSkus;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OpenResponse<AlipayOpenAppItemQueryResponse> queryItemDetail(String itemId, String outItemId, long needEditSpu) {
|
public OpenResponse<AlipayOpenAppItemQueryResponse> queryItemDetail(String itemId, String outItemId, long needEditSpu) {
|
||||||
return AlipayApiTemplate.execute(new AlipayApiCallback<AlipayOpenAppItemQueryResponse, AlipayOpenAppItemQueryResponse>() {
|
return AlipayApiTemplate.execute(new AlipayApiCallback<AlipayOpenAppItemQueryResponse, AlipayOpenAppItemQueryResponse>() {
|
||||||
|
|||||||
@ -38,8 +38,17 @@ public class RentRuleItemServiceImpl implements RentRuleItemService {
|
|||||||
map.put("code","500");
|
map.put("code","500");
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
RentRuleItem ruleRes = rentRuleItemMapper.selectItemByFourIds(Long.valueOf(batteryRuleId), Long.valueOf(carRuleId), Long.valueOf(carModelId), Long.valueOf(brandId));
|
||||||
|
OpenResponse<String> response = new OpenResponse<>();
|
||||||
|
if(ruleRes == null){
|
||||||
|
response = itemService.createRentItem(rentRuleItem);
|
||||||
|
}else{
|
||||||
|
response = itemService.modifyItem(rentRuleItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OpenResponse<String> response = itemService.createRentItem(rentRuleItem);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import java.util.List;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface RentRuleItemMapper {
|
public interface RentRuleItemMapper {
|
||||||
|
|
||||||
|
RentRuleItem selectByAliId(@Param("aliItemId") String aliItemId);
|
||||||
|
|
||||||
RentRuleItem selectByFourId(@Param("batteryRuleId") Long batteryRuleId, @Param("carRuleId") Long carRuleId, @Param("carModelId") Long carModelId,@Param("brandId") Long brandId);
|
RentRuleItem selectByFourId(@Param("batteryRuleId") Long batteryRuleId, @Param("carRuleId") Long carRuleId, @Param("carModelId") Long carModelId,@Param("brandId") Long brandId);
|
||||||
|
|
||||||
@ -25,5 +25,5 @@ public interface RentRuleItemMapper {
|
|||||||
|
|
||||||
int updateByOutItemId(@Param("outItemId") String outItemId, @Param("aliItemId") String aliItemId);
|
int updateByOutItemId(@Param("outItemId") String outItemId, @Param("aliItemId") String aliItemId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user