Commit 3deb99dd authored by shiyu's avatar shiyu

查询团购进度

parent 617874e3
package com.wwdz.ch.wx.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class GroupPurchaseInfo implements Entity {
/**
* 团购优惠要求件数
*/
private Integer requireNum;
/**
* 已达到的件数
*/
private Integer itemNum;
/**
* 参团人数
*/
private Integer peopleNum;
/**
* 定金
*/
private String deposit;
/**
* 商品售价
*/
private String salePrice;
/**
* 参团用户头像
*/
private List<String> userAvatarList;
/**
* 优惠比例
*/
private String rebate;
/**
* 团购结束时间
*/
private Date endTime;
/**
* 团购状态
*/
private Integer state;
/**
* 团购是否成功
*/
private Boolean groupPurchaseSuccess;
}
...@@ -245,4 +245,24 @@ public class DistributionOrderDetailVo implements Entity { ...@@ -245,4 +245,24 @@ public class DistributionOrderDetailVo implements Entity {
* 平台收货地址 * 平台收货地址
*/ */
private String channelReceiveAddress; private String channelReceiveAddress;
/**
* 团购定金
*/
private String deposit;
/**
* 团购尾款金额
*/
private String surplusAmount;
/**
* 团购折扣
*/
private String discountRebate;
/**
* 团购结束时间
*/
private Date groupPurchaseEndTime;
} }
package com.wwdz.ch.wx.entity.vo.distribution; package com.wwdz.ch.wx.entity.vo.distribution;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import com.xxdxxs.entity.Entity; import com.xxdxxs.entity.Entity;
import lombok.Data; import lombok.Data;
import java.util.Map; import java.util.Map;
...@@ -54,6 +55,6 @@ public class GroupPurchaseItemVo implements Entity { ...@@ -54,6 +55,6 @@ public class GroupPurchaseItemVo implements Entity {
/** /**
* 折扣相关信息、进度 * 折扣相关信息、进度
*/ */
private Map<String, Object> discountInfo; private GroupPurchaseInfo discountInfo;
} }
...@@ -24,11 +24,13 @@ import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto; ...@@ -24,11 +24,13 @@ 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;
import com.wwdz.ch.core.entity.SignedNoticeMsg; import com.wwdz.ch.core.entity.SignedNoticeMsg;
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.service.distribution.DistributionOrderService; import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.DistributorProfitService; 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.distribution.IdentifyOrderService;
import com.xxdxxs.utils.DateUtils; import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper; import com.xxdxxs.utils.EntityMapper;
...@@ -131,6 +133,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -131,6 +133,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Autowired @Autowired
GroupPurchaseRecordDao groupPurchaseRecordDao; GroupPurchaseRecordDao groupPurchaseRecordDao;
@Autowired
GroupPurchaseService groupPurchaseService;
@Transactional @Transactional
@Override @Override
public Result createDistributionOrder(DistributionOrderRequestDto dto) { public Result createDistributionOrder(DistributionOrderRequestDto dto) {
...@@ -996,7 +1001,20 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -996,7 +1001,20 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrderDetailVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos())); distributionOrderDetailVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
distributionOrderDetailVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(distributionOrder.getType())); distributionOrderDetailVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(distributionOrder.getType()));
distributionOrderDetailVo.setLogisticsName(LogisticsEnum.getNameByCode(distributionOrder.getLogisticsCode())); distributionOrderDetailVo.setLogisticsName(LogisticsEnum.getNameByCode(distributionOrder.getLogisticsCode()));
if (type == DistributionEnum.DistributionTypeEnum.GROUP_PURCHASE.getCode()) {
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(distributionOrder.getItemId());
Result<GroupPurchaseInfo> result = groupPurchaseService.checkGroupPurchase(groupPurchaseRecordRequestDto);
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(distributionOrder.getItemId());
distributionOrderDetailVo.setDeposit(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getDeposit()));
distributionOrderDetailVo.setSurplusAmount(PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount() - groupPurchaseConfig.getDeposit()));
distributionOrderDetailVo.setGroupPurchaseEndTime(groupPurchaseConfig.getEndTime());
Date endTime = groupPurchaseConfig.getEndTime();
Instant instant = endTime.toInstant().plus(Duration.ofHours(24));
Date time = Date.from(instant);
distributionOrderDetailVo.setPayEndTime(time);
}
if (distributionOrder.getType() == DistributionEnum.DistributionTypeEnum.COLLECT.getCode() if (distributionOrder.getType() == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()
&& distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode()) { && distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode()) {
//如果藏家订单是取消状态,查询对应鉴定单信息 //如果藏家订单是取消状态,查询对应鉴定单信息
...@@ -1017,7 +1035,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -1017,7 +1035,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
Instant instant = date.toInstant().plus(Duration.ofMinutes(30)); Instant instant = date.toInstant().plus(Duration.ofMinutes(30));
Date time = Date.from(instant); Date time = Date.from(instant);
distributionOrderDetailVo.setPayEndTime(time); distributionOrderDetailVo.setPayEndTime(time);
} else { } else if (type != DistributionEnum.DistributionTypeEnum.GROUP_PURCHASE.getCode()) {
Instant instant = date.toInstant().plus(Duration.ofHours(24)); Instant instant = date.toInstant().plus(Duration.ofHours(24));
Date time = Date.from(instant); Date time = Date.from(instant);
distributionOrderDetailVo.setPayEndTime(time); distributionOrderDetailVo.setPayEndTime(time);
......
...@@ -16,6 +16,7 @@ import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto; ...@@ -16,6 +16,7 @@ import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto; import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
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.SpecialPerformanceRequestDto; import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import com.wwdz.ch.wx.entity.vo.distribution.GroupPurchaseItemVo; import com.wwdz.ch.wx.entity.vo.distribution.GroupPurchaseItemVo;
import com.wwdz.ch.wx.service.distribution.DistributorProfitService; import com.wwdz.ch.wx.service.distribution.DistributorProfitService;
import com.wwdz.ch.wx.service.distribution.GroupPurchaseService; import com.wwdz.ch.wx.service.distribution.GroupPurchaseService;
...@@ -98,12 +99,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -98,12 +99,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos())); groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto(); GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(groupPurchaseConfig.getItemId()); groupPurchaseRecordRequestDto.setItemId(groupPurchaseConfig.getItemId());
Result<Map<String, Object>> result = checkGroupPurchase(groupPurchaseRecordRequestDto); Result<GroupPurchaseInfo> result = checkGroupPurchase(groupPurchaseRecordRequestDto);
if (!result.getSuccess()) { if (!result.getSuccess()) {
continue; continue;
} }
Map<String, Object> map = result.getData(); groupPurchaseItemVo.setDiscountInfo(result.getData());
groupPurchaseItemVo.setDiscountInfo(map);
groupPurchaseItemVos.add(groupPurchaseItemVo); groupPurchaseItemVos.add(groupPurchaseItemVo);
} }
return Result.success(groupPurchaseItemVos); return Result.success(groupPurchaseItemVos);
...@@ -129,12 +129,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -129,12 +129,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos())); groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto(); GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(itemId); groupPurchaseRecordRequestDto.setItemId(itemId);
Result<Map<String, Object>> result = checkGroupPurchase(groupPurchaseRecordRequestDto); Result<GroupPurchaseInfo> result = checkGroupPurchase(groupPurchaseRecordRequestDto);
if (!result.getSuccess()) { if (!result.getSuccess()) {
return Result.failed("查询团购信息错误"); return Result.failed("查询团购信息错误");
} }
Map<String, Object> map = result.getData(); groupPurchaseItemVo.setDiscountInfo(result.getData());
groupPurchaseItemVo.setDiscountInfo(map);
groupPurchaseItemVo.setIsSubscribedOfCloseToSuccess(disposableSubscribeRecordDao.isSubscribed(dto.getUserId(), itemId, DisposableSubscribeRecordEnum.TypeEnum.GROUPPURASE_CLOSER_TO_SUCCESS.getType())); groupPurchaseItemVo.setIsSubscribedOfCloseToSuccess(disposableSubscribeRecordDao.isSubscribed(dto.getUserId(), itemId, DisposableSubscribeRecordEnum.TypeEnum.GROUPPURASE_CLOSER_TO_SUCCESS.getType()));
groupPurchaseItemVo.setIsSubscribedOfPay(disposableSubscribeRecordDao.isSubscribed(dto.getUserId(), itemId, DisposableSubscribeRecordEnum.TypeEnum.GROUPPURASE_SURPLUS_AMOUNT_PAY.getType())); groupPurchaseItemVo.setIsSubscribedOfPay(disposableSubscribeRecordDao.isSubscribed(dto.getUserId(), itemId, DisposableSubscribeRecordEnum.TypeEnum.GROUPPURASE_SURPLUS_AMOUNT_PAY.getType()));
return Result.success(groupPurchaseItemVo); return Result.success(groupPurchaseItemVo);
...@@ -238,7 +237,7 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -238,7 +237,7 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
} }
@Override @Override
public Result checkGroupPurchase(GroupPurchaseRecordRequestDto dto) { public Result<GroupPurchaseInfo> checkGroupPurchase(GroupPurchaseRecordRequestDto dto) {
try { try {
//默认团购数量没达到要求,没有折扣 //默认团购数量没达到要求,没有折扣
BigDecimal rebate = new BigDecimal("1"); BigDecimal rebate = new BigDecimal("1");
...@@ -270,30 +269,38 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -270,30 +269,38 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
if (itemNum >= requireNum) { if (itemNum >= requireNum) {
rebate = groupPurchaseDiscount.getRebate(); rebate = groupPurchaseDiscount.getRebate();
} }
GroupPurchaseInfo groupPurchaseInfo = new GroupPurchaseInfo();
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("requireNum", requireNum); if (itemNum >= requireNum) {
map.put("itemNum", itemNum); groupPurchaseInfo.setGroupPurchaseSuccess(true);
map.put("peopleNum", peopleNum); } else {
map.put("deposit", PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getDeposit())); groupPurchaseInfo.setGroupPurchaseSuccess(false);
map.put("rebate", rebate); }
map.put("endTime", groupPurchaseConfig.getEndTime()); groupPurchaseInfo.setRequireNum(requireNum);
map.put("salePrice", PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice())); groupPurchaseInfo.setItemNum((int) itemNum);
map.put("userAvatarList", userAvatarList); groupPurchaseInfo.setPeopleNum((int) peopleNum);
groupPurchaseInfo.setDeposit(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getDeposit()));
groupPurchaseInfo.setRebate(rebate.toPlainString());
groupPurchaseInfo.setEndTime(groupPurchaseConfig.getEndTime());
groupPurchaseInfo.setSalePrice(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice()));
groupPurchaseInfo.setUserAvatarList(userAvatarList);
Date now = new Date(); Date now = new Date();
if (groupPurchaseConfig.getStartTime().after(now) && groupPurchaseConfig.getEndTime().after(now)) { if (groupPurchaseConfig.getStartTime().after(now) && groupPurchaseConfig.getEndTime().after(now)) {
map.put("state", GroupPurchaseEnum.ItemStateEnum.PROCESSING); groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode());
} else if (groupPurchaseConfig.getEndTime().before(now)) { } else if (groupPurchaseConfig.getEndTime().before(now)) {
map.put("state", GroupPurchaseEnum.ItemStateEnum.END); groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
} else { } else {
map.put("state", GroupPurchaseEnum.ItemStateEnum.NOT_START); groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.NOT_START.getCode());
} }
return Result.success(map); return Result.success(groupPurchaseInfo);
} catch (Exception e) { } catch (Exception e) {
logger.error("查询团购进度失败 error : {}", e); logger.error("查询团购进度失败 error : {}", e);
} }
return Result.failed("查询团购进度失败"); return Result.failed("查询团购进度失败");
} }
@Override @Override
@Transactional @Transactional
public Result calculateProfit(GroupPurchaseRecordRequestDto dto) { public Result calculateProfit(GroupPurchaseRecordRequestDto dto) {
......
...@@ -19,6 +19,7 @@ import com.wwdz.ch.db.dto.request.distribution.*; ...@@ -19,6 +19,7 @@ import com.wwdz.ch.db.dto.request.distribution.*;
import com.wwdz.ch.core.entity.SupplierItemVo; import com.wwdz.ch.core.entity.SupplierItemVo;
import com.wwdz.ch.wx.aspect.AddBrowseLog; import com.wwdz.ch.wx.aspect.AddBrowseLog;
import com.wwdz.ch.wx.constant.CollectionBookConstants; import com.wwdz.ch.wx.constant.CollectionBookConstants;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionDetailVo; import com.wwdz.ch.wx.entity.vo.distribution.AuctionDetailVo;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo; import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo;
import com.wwdz.ch.wx.service.FollowFansRecordService; import com.wwdz.ch.wx.service.FollowFansRecordService;
...@@ -1007,14 +1008,13 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -1007,14 +1008,13 @@ public class SupplierItemServiceImpl implements SupplierItemService {
supplierItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos())); supplierItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto(); GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(itemId); groupPurchaseRecordRequestDto.setItemId(itemId);
Result<Map<String, Object>> result = groupPurchaseService.checkGroupPurchase(groupPurchaseRecordRequestDto); Result<GroupPurchaseInfo> result = groupPurchaseService.checkGroupPurchase(groupPurchaseRecordRequestDto);
if (!result.getSuccess()) { if (!result.getSuccess()) {
return Result.failed("查询商品团购信息失败"); return Result.failed("查询商品团购信息失败");
} }
Map<String, Object> map = result.getData();
Map<String, Object> resultData = new HashMap<>(); Map<String, Object> resultData = new HashMap<>();
resultData.put("itemInfo", supplierItemVo); resultData.put("itemInfo", supplierItemVo);
resultData.put("groupPurchaseInfo", map); resultData.put("groupPurchaseInfo", result.getData());
return Result.success(resultData); return Result.success(resultData);
} catch (Exception e) { } catch (Exception e) {
logger.error("查询团购藏品详情 error : {}", e); logger.error("查询团购藏品详情 error : {}", e);
......
...@@ -3,6 +3,7 @@ package com.wwdz.ch.wx.service.distribution; ...@@ -3,6 +3,7 @@ package com.wwdz.ch.wx.service.distribution;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto; import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto; import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import java.util.Map; import java.util.Map;
...@@ -45,7 +46,7 @@ public interface GroupPurchaseService { ...@@ -45,7 +46,7 @@ public interface GroupPurchaseService {
* @param dto * @param dto
* @return * @return
*/ */
Result<Map<String, Object>> checkGroupPurchase(GroupPurchaseRecordRequestDto dto); Result<GroupPurchaseInfo> checkGroupPurchase(GroupPurchaseRecordRequestDto dto);
Result calculateProfit(GroupPurchaseRecordRequestDto dto); Result calculateProfit(GroupPurchaseRecordRequestDto 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