Commit f71d4590 authored by shiyu's avatar shiyu

盲盒专区列表

parent 44fe0598
......@@ -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.ItemSkuDao;
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.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.ItemSku;
......@@ -221,7 +222,12 @@ public class BlindBoxServiceImpl implements BlindBoxService {
@Override
public Result findSkuDetail(ItemSkuRequestDto dto) {
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) {
logger.error("查询商品sku详情 error : {}", e);
}
......
......@@ -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.distribution.DistributionOrderRequestDto;
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.core.api.WxAppletApi;
import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg;
......@@ -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.DistributionOrderVo;
import com.wwdz.ch.wx.entity.vo.distribution.UserExchangeInfo;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.DistributorProfitService;
import com.wwdz.ch.wx.service.distribution.*;
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.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
......@@ -148,6 +146,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Autowired
AuctionEarnestService auctionEarnestService;
@Autowired
SellActivityService sellActivityService;
@Transactional
@Override
public Result createDistributionOrder(DistributionOrderRequestDto dto) {
......@@ -470,7 +471,18 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrder.setBuyerOpenid(dto.getBuyerOpenid());
distributionOrder.setShopId(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.setReceiverAddress(dto.getReceiverAddress());
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 {
if (!lock.tryLock(0,1 ,TimeUnit.SECONDS)) {
return Result.failed("操作过快,稍后再试");
}
//检查用户历史上传的
long totalItemNum = supplierItemDao.countAllItemByCreatorId(dto.getUserId(), null);
//不在白名单中的用户,上传商品数量有限制
CollectorWhiteList collectorWhiteList = collectorWhiteListDao.findById(dto.getUserId());
if (collectorWhiteList == null || collectorWhiteList.getIsUploadLimit()) {
//检查用户历史上传的
if (supplierItemDao.countAllItemByCreatorId(dto.getUserId(), null) >= 100) {
if (totalItemNum >= 100) {
return Result.failed("普通用户最多上传100件商品");
}
//用户每天上传商品不可超过10件
......@@ -829,6 +830,10 @@ public class SupplierItemServiceImpl implements SupplierItemService {
if (supplierItemDao.countAllItemByCreatorId(dto.getUserId(), DateUtils.fromLocalDateTime(startOfDay)) >= 10) {
return Result.failed("普通用户每天最多上传10件商品");
}
} else {
if (totalItemNum >= 2000) {
return Result.failed("藏家最多上传2000件商品");
}
}
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;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.consts.ResultCode;
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.wx.service.distribution.BlindBoxService;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -49,4 +51,15 @@ public class BlindBoxController {
}
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