记得上下班打卡 | git大法好,push需谨慎

Commit 339fdeb3 authored by 姜秀龙's avatar 姜秀龙

收钱 goblin商品列表

parent fd0e404d
...@@ -133,9 +133,9 @@ public class GoblinStoreMgtGoodsSqbAddParam implements Serializable { ...@@ -133,9 +133,9 @@ public class GoblinStoreMgtGoodsSqbAddParam implements Serializable {
vo.setCoverPic(CollectionUtil.isEmpty(sqbGoods.getConverImages()) ? "" : sqbGoods.getConverImages().get(0)); vo.setCoverPic(CollectionUtil.isEmpty(sqbGoods.getConverImages()) ? "" : sqbGoods.getConverImages().get(0));
vo.setVideo(""); vo.setVideo("");
vo.setSpecMode("1"); vo.setSpecMode("1");
vo.setCateFid("22196120924543"); vo.setCateFid("2690132621531");
vo.setCateSid("22199134037630"); vo.setCateSid("2690132639617");
vo.setCateTid("22199134105660"); vo.setCateTid("2690132656988");
vo.setShelvesHandle("1"); vo.setShelvesHandle("1");
vo.setShelvesTime(null); vo.setShelvesTime(null);
vo.setVirtualFlg("1"); vo.setVirtualFlg("1");
......
package com.liquidnet.service.goblin.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 收钱吧-演出关联商品前端展示VO
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "GoblinSqbPerformanceGoodsInfoVo", description = "收钱吧-演出关联商品前端展示VO")
public class GoblinSqbPerformanceGoodsInfoVo extends GoblinGoodsInfoVo {
@ApiModelProperty(value = "正常售价")
private BigDecimal price;
@ApiModelProperty(value = "换购价(不设置则按正常价)")
private BigDecimal settlementPrice;
}
...@@ -42,6 +42,11 @@ public interface GoblinFrontService { ...@@ -42,6 +42,11 @@ public interface GoblinFrontService {
*/ */
GoblinFrontSelectGoodVo getSelectGoods(int page, int pageSize); GoblinFrontSelectGoodVo getSelectGoods(int page, int pageSize);
/**
* 按演出ID查询已关联商品列表
*/
GoblinFrontSelectGoodVo getPerformanceSelectGoods(String performancesId, int page, int pageSize);
//根据艺人标签和演出id查询商品列表 //根据艺人标签和演出id查询商品列表
List<GoblinGoodsInfoVo> getGoodByMusicTagP(String musicTag, String performanceId); List<GoblinGoodsInfoVo> getGoodByMusicTagP(String musicTag, String performanceId);
......
...@@ -2,11 +2,14 @@ package com.liquidnet.service.goblin.controller; ...@@ -2,11 +2,14 @@ package com.liquidnet.service.goblin.controller;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinFrontSelectGoodVo;
import com.liquidnet.service.goblin.dto.vo.GoblinSqbCouponVo; import com.liquidnet.service.goblin.dto.vo.GoblinSqbCouponVo;
import com.liquidnet.service.goblin.dto.vo.GoblinSqbOrderDetailVo; import com.liquidnet.service.goblin.dto.vo.GoblinSqbOrderDetailVo;
import com.liquidnet.service.goblin.service.GoblinFrontService;
import com.liquidnet.service.goblin.service.IGoblinSqbService; import com.liquidnet.service.goblin.service.IGoblinSqbService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
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;
...@@ -26,6 +29,8 @@ public class GoblinSqbController { ...@@ -26,6 +29,8 @@ public class GoblinSqbController {
@Autowired @Autowired
private IGoblinSqbService goblinSqbService; private IGoblinSqbService goblinSqbService;
@Autowired
private GoblinFrontService goblinFrontService;
/** /**
...@@ -96,5 +101,19 @@ public class GoblinSqbController { ...@@ -96,5 +101,19 @@ public class GoblinSqbController {
return goblinSqbService.getOrderDetail(userId, orderId); return goblinSqbService.getOrderDetail(userId, orderId);
} }
@GetMapping("/performance/selectGoods")
@ApiOperation("按演出ID获得已关联商品列表(pageNumber从0开始)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", required = true, dataType = "String", name = "performancesId", value = "演出ID"),
@ApiImplicitParam(paramType = "query", required = true, dataType = "int", name = "pageSize", value = "分页大小"),
@ApiImplicitParam(paramType = "query", required = true, dataType = "int", name = "pageNumber", value = "页码(从0开始)")
})
public ResponseDto<GoblinFrontSelectGoodVo> getPerformanceSelectGoods(
@RequestParam(name = "performancesId", required = true) String performancesId,
@RequestParam(name = "pageSize", required = true) int pageSize,
@RequestParam(name = "pageNumber", required = true) int pageNumber) {
return ResponseDto.success(goblinFrontService.getPerformanceSelectGoods(performancesId, pageNumber, pageSize));
}
} }
package com.liquidnet.service.goblin.service.impl; package com.liquidnet.service.goblin.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
...@@ -12,6 +13,7 @@ import com.liquidnet.service.goblin.constant.GoblinRedisConst; ...@@ -12,6 +13,7 @@ import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst; import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.*; import com.liquidnet.service.goblin.entity.*;
import com.liquidnet.service.goblin.mapper.GoblinSqbPerformanceGoodsMapper;
import com.liquidnet.service.goblin.enums.GoblinStoreConf; import com.liquidnet.service.goblin.enums.GoblinStoreConf;
import com.liquidnet.service.goblin.service.GoblinCouponService; import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.GoblinFrontService; import com.liquidnet.service.goblin.service.GoblinFrontService;
...@@ -58,6 +60,8 @@ public class GoblinFrontServiceImpl implements GoblinFrontService { ...@@ -58,6 +60,8 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
GoblinMongoUtils mongoUtils; GoblinMongoUtils mongoUtils;
@Autowired @Autowired
GoblinCouponService goblinCouponService; GoblinCouponService goblinCouponService;
@Autowired
private GoblinSqbPerformanceGoodsMapper goblinSqbPerformanceGoodsMapper;
@Override @Override
public ArrayList<GoblinFrontBannerVo> getListBanner() { public ArrayList<GoblinFrontBannerVo> getListBanner() {
...@@ -1056,6 +1060,114 @@ public class GoblinFrontServiceImpl implements GoblinFrontService { ...@@ -1056,6 +1060,114 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
// return null; // return null;
} }
@Override
public GoblinFrontSelectGoodVo getPerformanceSelectGoods(String performancesId, int page, int pageSize) {
GoblinFrontSelectGoodVo respVo = GoblinFrontSelectGoodVo.getNew();
if (StringUtil.isBlank(performancesId)) {
respVo.setCount(0);
respVo.setGoblinGoodsInfoVoList(ObjectUtil.goblinGoodsInfoVoArrayList());
return respVo;
}
int safePage = Math.max(page, 0);
int safePageSize = pageSize <= 0 ? 40 : Math.min(pageSize, 100);
List<GoblinSqbPerformanceGoods> relations = goblinSqbPerformanceGoodsMapper.selectList(
new LambdaQueryWrapper<GoblinSqbPerformanceGoods>()
.eq(GoblinSqbPerformanceGoods::getPerformancesId, performancesId)
.eq(GoblinSqbPerformanceGoods::getStatus, 1)
.orderByAsc(GoblinSqbPerformanceGoods::getSort, GoblinSqbPerformanceGoods::getMid));
if (CollectionUtils.isEmpty(relations)) {
respVo.setCount(0);
respVo.setGoblinGoodsInfoVoList(ObjectUtil.goblinGoodsInfoVoArrayList());
return respVo;
}
ArrayList<GoblinGoodsInfoVo> allGoods = ObjectUtil.goblinGoodsInfoVoArrayList();
for (GoblinSqbPerformanceGoods rel : relations) {
if (rel == null || StringUtils.isBlank(rel.getSpuId())) {
continue;
}
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(rel.getSpuId());
if (goodsInfoVo == null) {
continue;
}
// 演出关联列表只保留可售商品,避免下架/删除商品混入
if (!"0".equals(goodsInfoVo.getDelFlg())) {
continue;
}
if (!"0".equals(goodsInfoVo.getSpuAppear())) {
continue;
}
// if (!"3".equals(goodsInfoVo.getShelvesStatus())) {
// continue;
// }
if (StringUtil.isNotBlank(goodsInfoVo.getMarketId())) {
continue;
}
GoblinSqbPerformanceGoodsInfoVo frontGoods = new GoblinSqbPerformanceGoodsInfoVo();
BeanUtils.copyProperties(goodsInfoVo, frontGoods);
BigDecimal normalPrice = resolveGoodsSellPrice(goodsInfoVo);
frontGoods.setSellPrice(normalPrice);
frontGoods.setPrice(normalPrice);
frontGoods.setSettlementPrice(rel.getSettlementPrice());
allGoods.add(frontGoods);
}
int total = allGoods.size();
int start = safePage * safePageSize;
if (start >= total) {
respVo.setCount(total);
respVo.setGoblinGoodsInfoVoList(ObjectUtil.goblinGoodsInfoVoArrayList());
return respVo;
}
int end = Math.min(start + safePageSize, total);
ArrayList<GoblinGoodsInfoVo> pageList = ObjectUtil.goblinGoodsInfoVoArrayList();
pageList.addAll(allGoods.subList(start, end));
respVo.setCount(total);
respVo.setGoblinGoodsInfoVoList(pageList);
return respVo;
}
private BigDecimal resolveGoodsSellPrice(GoblinGoodsInfoVo goodsInfoVo) {
if (goodsInfoVo == null) {
return null;
}
if (goodsInfoVo.getSellPrice() != null) {
return goodsInfoVo.getSellPrice();
}
BigDecimal minSkuPrice = null;
if (!CollectionUtils.isEmpty(goodsInfoVo.getSkuIdList())) {
for (String skuId : goodsInfoVo.getSkuIdList()) {
GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (skuInfoVo == null) {
continue;
}
BigDecimal skuShowPrice = skuInfoVo.getSellPrice() != null ? skuInfoVo.getSellPrice()
: skuInfoVo.getPrice();
if (skuShowPrice == null) {
continue;
}
if (minSkuPrice == null || skuShowPrice.compareTo(minSkuPrice) < 0) {
minSkuPrice = skuShowPrice;
}
}
}
if (minSkuPrice != null) {
return minSkuPrice;
}
if (goodsInfoVo.getPriceGe() != null) {
return goodsInfoVo.getPriceGe();
}
return goodsInfoVo.getPriceLe();
}
@Override @Override
public List<GoblinGoodsInfoVo> getGoodByMusicTagP(String musicTag, String performanceId) { public List<GoblinGoodsInfoVo> getGoodByMusicTagP(String musicTag, String performanceId) {
return goblinRedisUtils.getMusicTagList(musicTag, performanceId); return goblinRedisUtils.getMusicTagList(musicTag, performanceId);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment