Commit f71d4590 authored by shiyu's avatar shiyu

盲盒专区列表

parent 44fe0598
...@@ -10,6 +10,7 @@ import com.wwdz.ch.core.util.StringUtil; ...@@ -10,6 +10,7 @@ import com.wwdz.ch.core.util.StringUtil;
import com.wwdz.ch.db.dao.distribution.DistributionOrderDao; import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import com.wwdz.ch.db.dao.distribution.ItemSkuDao; import com.wwdz.ch.db.dao.distribution.ItemSkuDao;
import com.wwdz.ch.db.dao.distribution.SupplierItemDao; import com.wwdz.ch.db.dao.distribution.SupplierItemDao;
import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.domain.User; import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.ItemSku; import com.wwdz.ch.db.domain.distribution.ItemSku;
...@@ -221,7 +222,12 @@ public class BlindBoxServiceImpl implements BlindBoxService { ...@@ -221,7 +222,12 @@ public class BlindBoxServiceImpl implements BlindBoxService {
@Override @Override
public Result findSkuDetail(ItemSkuRequestDto dto) { public Result findSkuDetail(ItemSkuRequestDto dto) {
try { try {
ItemSku itemSku = itemSkuDao.findBySkuCode(dto.getSkuCode());
ItemSkuVo itemSkuVo = new ItemSkuVo();
EntityMapper.copyAttribute(itemSku, itemSkuVo);
itemSkuVo.setPrice(PriceUtil.convertPriceFenToYuan(itemSku.getPrice()));
itemSkuVo.setImages(Arrays.asList(itemSku.getImages().split(";")));
return Result.success(itemSkuVo);
} catch (Exception e) { } catch (Exception e) {
logger.error("查询商品sku详情 error : {}", e); logger.error("查询商品sku详情 error : {}", e);
} }
......
...@@ -20,6 +20,7 @@ import com.wwdz.ch.db.domain.distribution.*; ...@@ -20,6 +20,7 @@ import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto; import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto; import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto; import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SellActivityRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto; import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.core.api.WxAppletApi; import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg; import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg;
...@@ -29,11 +30,8 @@ import com.wwdz.ch.wx.entity.GroupPurchaseInfo; ...@@ -29,11 +30,8 @@ import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderDetailVo; import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderDetailVo;
import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo; import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo;
import com.wwdz.ch.wx.entity.vo.distribution.UserExchangeInfo; import com.wwdz.ch.wx.entity.vo.distribution.UserExchangeInfo;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService; import com.wwdz.ch.wx.service.distribution.*;
import com.wwdz.ch.wx.service.distribution.DistributorProfitService;
import com.wwdz.ch.core.service.SendMsgService; import com.wwdz.ch.core.service.SendMsgService;
import com.wwdz.ch.wx.service.distribution.GroupPurchaseService;
import com.wwdz.ch.wx.service.distribution.IdentifyOrderService;
import com.wwdz.ch.wx.service.openShop.AuctionEarnestService; import com.wwdz.ch.wx.service.openShop.AuctionEarnestService;
import com.xxdxxs.utils.DateUtils; import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper; import com.xxdxxs.utils.EntityMapper;
...@@ -148,6 +146,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -148,6 +146,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Autowired @Autowired
AuctionEarnestService auctionEarnestService; AuctionEarnestService auctionEarnestService;
@Autowired
SellActivityService sellActivityService;
@Transactional @Transactional
@Override @Override
public Result createDistributionOrder(DistributionOrderRequestDto dto) { public Result createDistributionOrder(DistributionOrderRequestDto dto) {
...@@ -470,7 +471,18 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -470,7 +471,18 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrder.setBuyerOpenid(dto.getBuyerOpenid()); distributionOrder.setBuyerOpenid(dto.getBuyerOpenid());
distributionOrder.setShopId(supplierItem.getCreatorId()); distributionOrder.setShopId(supplierItem.getCreatorId());
distributionOrder.setSellerId(supplierItem.getCreatorId()); distributionOrder.setSellerId(supplierItem.getCreatorId());
distributionOrder.setAmount(supplierItem.getDistributionPrice() * dto.getItemNum()); long orderAmount = supplierItem.getDistributionPrice() * dto.getItemNum();
//盲盒订单存在优惠活动,特殊处理
if (dto.getType() != null && DistributionEnum.DistributionTypeEnum.BLACK_COLLECTION.getCode() == dto.getType()) {
SellActivityRequestDto sellActivityRequestDto = new SellActivityRequestDto();
sellActivityRequestDto.setOrderAmount(orderAmount);
//查询优惠活动后的订单价格
Result<Long> result = sellActivityService.getActivityDiscountPrice(sellActivityRequestDto);
if (result.getSuccess()) {
orderAmount = result.getData();
}
}
distributionOrder.setAmount(orderAmount);
distributionOrder.setAddressId(dto.getAddressId()); distributionOrder.setAddressId(dto.getAddressId());
distributionOrder.setReceiverAddress(dto.getReceiverAddress()); distributionOrder.setReceiverAddress(dto.getReceiverAddress());
distributionOrder.setReceiverName(dto.getReceiverName()); distributionOrder.setReceiverName(dto.getReceiverName());
......
package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.distribution.SellActivityDao;
import com.wwdz.ch.db.domain.distribution.SellActivity;
import com.wwdz.ch.db.dto.request.distribution.SellActivityRequestDto;
import com.wwdz.ch.wx.service.distribution.SellActivityService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class SellActivityServiceImpl implements SellActivityService {
private static final Logger logger = LoggerFactory.getLogger(SellActivityServiceImpl.class);
@Autowired
SellActivityDao sellActivityDao;
@Override
public Result<Long> getActivityDiscountPrice(SellActivityRequestDto dto) {
try {
//优惠活动的起始时间小于当前,结束时间大于当前时间,按照使用门槛倒序排列
dto.setCurrentTime(new Date());
List<SellActivity> sellActivityList = sellActivityDao.findList(dto);
long orderAmount = dto.getOrderAmount();
for (SellActivity sellActivity : sellActivityList) {
if (sellActivity.getThresholdAmount() <= orderAmount) {
return Result.success(orderAmount - sellActivity.getDiscountAmount());
}
}
return Result.success(orderAmount);
} catch (Exception e) {
logger.error("选择活动优惠失败error:{}", e);
}
return Result.failed();
}
}
...@@ -816,11 +816,12 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -816,11 +816,12 @@ public class SupplierItemServiceImpl implements SupplierItemService {
if (!lock.tryLock(0,1 ,TimeUnit.SECONDS)) { if (!lock.tryLock(0,1 ,TimeUnit.SECONDS)) {
return Result.failed("操作过快,稍后再试"); return Result.failed("操作过快,稍后再试");
} }
//检查用户历史上传的
long totalItemNum = supplierItemDao.countAllItemByCreatorId(dto.getUserId(), null);
//不在白名单中的用户,上传商品数量有限制 //不在白名单中的用户,上传商品数量有限制
CollectorWhiteList collectorWhiteList = collectorWhiteListDao.findById(dto.getUserId()); CollectorWhiteList collectorWhiteList = collectorWhiteListDao.findById(dto.getUserId());
if (collectorWhiteList == null || collectorWhiteList.getIsUploadLimit()) { if (collectorWhiteList == null || collectorWhiteList.getIsUploadLimit()) {
//检查用户历史上传的 if (totalItemNum >= 100) {
if (supplierItemDao.countAllItemByCreatorId(dto.getUserId(), null) >= 100) {
return Result.failed("普通用户最多上传100件商品"); return Result.failed("普通用户最多上传100件商品");
} }
//用户每天上传商品不可超过10件 //用户每天上传商品不可超过10件
...@@ -829,6 +830,10 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -829,6 +830,10 @@ public class SupplierItemServiceImpl implements SupplierItemService {
if (supplierItemDao.countAllItemByCreatorId(dto.getUserId(), DateUtils.fromLocalDateTime(startOfDay)) >= 10) { if (supplierItemDao.countAllItemByCreatorId(dto.getUserId(), DateUtils.fromLocalDateTime(startOfDay)) >= 10) {
return Result.failed("普通用户每天最多上传10件商品"); return Result.failed("普通用户每天最多上传10件商品");
} }
} else {
if (totalItemNum >= 2000) {
return Result.failed("藏家最多上传2000件商品");
}
} }
SupplierItem supplierItem = new SupplierItem(); SupplierItem supplierItem = new SupplierItem();
......
package com.wwdz.ch.wx.service.distribution;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.SellActivityRequestDto;
public interface SellActivityService {
/**
* 获取订单折扣后的价格
* 没有合适优惠就返回原订单价格
* @param dto
* @return
*/
Result getActivityDiscountPrice(SellActivityRequestDto dto);
}
...@@ -4,12 +4,14 @@ package com.wwdz.ch.wx.web.distribution; ...@@ -4,12 +4,14 @@ package com.wwdz.ch.wx.web.distribution;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.consts.ResultCode; import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.ItemSkuRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto; import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.wx.service.distribution.BlindBoxService; import com.wwdz.ch.wx.service.distribution.BlindBoxService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
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;
...@@ -49,4 +51,15 @@ public class BlindBoxController { ...@@ -49,4 +51,15 @@ public class BlindBoxController {
} }
return blindBoxService.findDetail(dto); return blindBoxService.findDetail(dto);
} }
@ApiOperation(value = "查询福袋sku详情")
@PostMapping("/findSkuDetail")
public Result findSkuDetail(@RequestBody ItemSkuRequestDto dto) {
logger.info("查询福袋sku详情,请求参数:{}", JSON.toJSONString(dto));
if (StringUtils.isEmpty(dto.getSkuCode())) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return blindBoxService.findSkuDetail(dto);
}
} }
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