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 {
* 平台收货地址
*/
private String channelReceiveAddress;
/**
* 团购定金
*/
private String deposit;
/**
* 团购尾款金额
*/
private String surplusAmount;
/**
* 团购折扣
*/
private String discountRebate;
/**
* 团购结束时间
*/
private Date groupPurchaseEndTime;
}
package com.wwdz.ch.wx.entity.vo.distribution;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Map;
......@@ -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;
import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg;
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.DistributionOrderVo;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.DistributorProfitService;
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.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
......@@ -131,6 +133,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Autowired
GroupPurchaseRecordDao groupPurchaseRecordDao;
@Autowired
GroupPurchaseService groupPurchaseService;
@Transactional
@Override
public Result createDistributionOrder(DistributionOrderRequestDto dto) {
......@@ -996,7 +1001,20 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrderDetailVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
distributionOrderDetailVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(distributionOrder.getType()));
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()
&& distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode()) {
//如果藏家订单是取消状态,查询对应鉴定单信息
......@@ -1017,7 +1035,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
Instant instant = date.toInstant().plus(Duration.ofMinutes(30));
Date time = Date.from(instant);
distributionOrderDetailVo.setPayEndTime(time);
} else {
} else if (type != DistributionEnum.DistributionTypeEnum.GROUP_PURCHASE.getCode()) {
Instant instant = date.toInstant().plus(Duration.ofHours(24));
Date time = Date.from(instant);
distributionOrderDetailVo.setPayEndTime(time);
......
......@@ -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.GroupPurchaseRecordRequestDto;
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.service.distribution.DistributorProfitService;
import com.wwdz.ch.wx.service.distribution.GroupPurchaseService;
......@@ -98,12 +99,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(groupPurchaseConfig.getItemId());
Result<Map<String, Object>> result = checkGroupPurchase(groupPurchaseRecordRequestDto);
Result<GroupPurchaseInfo> result = checkGroupPurchase(groupPurchaseRecordRequestDto);
if (!result.getSuccess()) {
continue;
}
Map<String, Object> map = result.getData();
groupPurchaseItemVo.setDiscountInfo(map);
groupPurchaseItemVo.setDiscountInfo(result.getData());
groupPurchaseItemVos.add(groupPurchaseItemVo);
}
return Result.success(groupPurchaseItemVos);
......@@ -129,12 +129,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(itemId);
Result<Map<String, Object>> result = checkGroupPurchase(groupPurchaseRecordRequestDto);
Result<GroupPurchaseInfo> result = checkGroupPurchase(groupPurchaseRecordRequestDto);
if (!result.getSuccess()) {
return Result.failed("查询团购信息错误");
}
Map<String, Object> map = result.getData();
groupPurchaseItemVo.setDiscountInfo(map);
groupPurchaseItemVo.setDiscountInfo(result.getData());
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()));
return Result.success(groupPurchaseItemVo);
......@@ -238,7 +237,7 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
}
@Override
public Result checkGroupPurchase(GroupPurchaseRecordRequestDto dto) {
public Result<GroupPurchaseInfo> checkGroupPurchase(GroupPurchaseRecordRequestDto dto) {
try {
//默认团购数量没达到要求,没有折扣
BigDecimal rebate = new BigDecimal("1");
......@@ -270,30 +269,38 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
if (itemNum >= requireNum) {
rebate = groupPurchaseDiscount.getRebate();
}
GroupPurchaseInfo groupPurchaseInfo = new GroupPurchaseInfo();
Map<String, Object> map = new HashMap<>();
map.put("requireNum", requireNum);
map.put("itemNum", itemNum);
map.put("peopleNum", peopleNum);
map.put("deposit", PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getDeposit()));
map.put("rebate", rebate);
map.put("endTime", groupPurchaseConfig.getEndTime());
map.put("salePrice", PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice()));
map.put("userAvatarList", userAvatarList);
if (itemNum >= requireNum) {
groupPurchaseInfo.setGroupPurchaseSuccess(true);
} else {
groupPurchaseInfo.setGroupPurchaseSuccess(false);
}
groupPurchaseInfo.setRequireNum(requireNum);
groupPurchaseInfo.setItemNum((int) itemNum);
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();
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)) {
map.put("state", GroupPurchaseEnum.ItemStateEnum.END);
groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
} 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) {
logger.error("查询团购进度失败 error : {}", e);
}
return Result.failed("查询团购进度失败");
}
@Override
@Transactional
public Result calculateProfit(GroupPurchaseRecordRequestDto dto) {
......
......@@ -19,6 +19,7 @@ import com.wwdz.ch.db.dto.request.distribution.*;
import com.wwdz.ch.core.entity.SupplierItemVo;
import com.wwdz.ch.wx.aspect.AddBrowseLog;
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.AuctionRecordRowVo;
import com.wwdz.ch.wx.service.FollowFansRecordService;
......@@ -1007,14 +1008,13 @@ public class SupplierItemServiceImpl implements SupplierItemService {
supplierItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(itemId);
Result<Map<String, Object>> result = groupPurchaseService.checkGroupPurchase(groupPurchaseRecordRequestDto);
Result<GroupPurchaseInfo> result = groupPurchaseService.checkGroupPurchase(groupPurchaseRecordRequestDto);
if (!result.getSuccess()) {
return Result.failed("查询商品团购信息失败");
}
Map<String, Object> map = result.getData();
Map<String, Object> resultData = new HashMap<>();
resultData.put("itemInfo", supplierItemVo);
resultData.put("groupPurchaseInfo", map);
resultData.put("groupPurchaseInfo", result.getData());
return Result.success(resultData);
} catch (Exception e) {
logger.error("查询团购藏品详情 error : {}", e);
......
......@@ -3,6 +3,7 @@ package com.wwdz.ch.wx.service.distribution;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import java.util.Map;
......@@ -45,7 +46,7 @@ public interface GroupPurchaseService {
* @param dto
* @return
*/
Result<Map<String, Object>> checkGroupPurchase(GroupPurchaseRecordRequestDto dto);
Result<GroupPurchaseInfo> checkGroupPurchase(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