Commit 15abe8ac authored by shiyu's avatar shiyu

团购商品列表2

parent 4dd4c6ca
...@@ -19,6 +19,7 @@ public interface UserAccountDetailDao { ...@@ -19,6 +19,7 @@ public interface UserAccountDetailDao {
/** /**
* 根据交易id和收支类型查询账单明细 * 根据交易id和收支类型查询账单明细
*
* @param transactionId * @param transactionId
* @param type * @param type
* @return * @return
...@@ -27,8 +28,12 @@ public interface UserAccountDetailDao { ...@@ -27,8 +28,12 @@ public interface UserAccountDetailDao {
/** /**
* 按照筛选条件汇总账户金额 * 按照筛选条件汇总账户金额
*
* @param dto * @param dto
* @return * @return
*/ */
long summaryAmount(UserAccountDetailRequestDto dto); long summaryAmount(UserAccountDetailRequestDto dto);
} }
...@@ -18,6 +18,8 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity { ...@@ -18,6 +18,8 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/ */
private Long id; private Long id;
private Long itemId;
/** /**
* 批量操作,逗号分隔 * 批量操作,逗号分隔
*/ */
......
...@@ -98,4 +98,6 @@ public class UserAccountDetailDaoImpl implements UserAccountDetailDao { ...@@ -98,4 +98,6 @@ public class UserAccountDetailDaoImpl implements UserAccountDetailDao {
JdbcHelper.ifPresent(dto.getFundType(), criteria::andFundTypeEqualTo); JdbcHelper.ifPresent(dto.getFundType(), criteria::andFundTypeEqualTo);
return userAccountDetailMapper.summaryAmount(example); return userAccountDetailMapper.summaryAmount(example);
} }
} }
...@@ -69,5 +69,8 @@ public interface UserAccountDetailMapper { ...@@ -69,5 +69,8 @@ public interface UserAccountDetailMapper {
long summaryAmount(UserAccountDetailExample example); long summaryAmount(UserAccountDetailExample example);
long summaryIntroduceAmount(UserAccountDetailExample example);
} }
\ No newline at end of file
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
@project https://github.com/itfsw/mybatis-generator-plugin @project https://github.com/itfsw/mybatis-generator-plugin
--> -->
select select
'true' as QUERYID,
<if test="example.distinct"> <if test="example.distinct">
distinct distinct
</if> </if>
......
...@@ -375,4 +375,11 @@ ...@@ -375,4 +375,11 @@
<include refid="Example_Where_Clause" /> <include refid="Example_Where_Clause" />
</if> </if>
</select> </select>
<select id="summaryIntroduceAmount" parameterType="com.wwdz.ch.db.domain.distribution.UserAccountDetailExample" resultType="java.lang.Long">
select IFNULL(sum(amount), 0) as totalAmount from user_account_detail
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -45,7 +45,7 @@ public class WebMvcConfiguration implements WebMvcConfigurer { ...@@ -45,7 +45,7 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
"/wx/returnOrder/**", "/wx/distributionOrder/confirmSigned", "/wx/distributionOrder/delivery", "/wx/distributionOrder/cancel", "/wx/returnOrder/**", "/wx/distributionOrder/confirmSigned", "/wx/distributionOrder/delivery", "/wx/distributionOrder/cancel",
"/wx/distributionOrder/refund", "/wx/distributionOrder/refund",
"/wx/supplierItem/findItemsOfCurrentDistributor", "/wx/selfPage/updateSwitch", "/wx/supplierItem/findHomePage", "/wx/supplierItem/findItemsOfCurrentDistributor", "/wx/selfPage/updateSwitch", "/wx/supplierItem/findHomePage",
"/wx/specialPerformance/sendMsg", "/wx/specialPerformance/sendMsgTest" "/wx/specialPerformance/sendMsg", "/wx/specialPerformance/sendMsgTest", "/wx/groupPurchase/**"
//下列路径上线注释 //下列路径上线注释
/*,"/wx/specialPerformance/**" /*,"/wx/specialPerformance/**"
, "/wx/supplierItem/**", "/wx/shareRecord/**", "/wx/distributionOrder/**", "/wx/selfPage/**", "/wx/auctionRecord/**", , "/wx/supplierItem/**", "/wx/shareRecord/**", "/wx/distributionOrder/**", "/wx/selfPage/**", "/wx/auctionRecord/**",
......
...@@ -24,21 +24,11 @@ public class GroupPurchaseInfo implements Entity { ...@@ -24,21 +24,11 @@ public class GroupPurchaseInfo implements Entity {
*/ */
private Integer peopleNum; private Integer peopleNum;
/**
* 定金
*/
private String deposit;
/** /**
* 商品售价 * 商品售价
*/ */
private String salePrice; private String salePrice;
/**
* 参团用户头像
*/
private List<String> userAvatarList;
/** /**
* 进度比例 * 进度比例
*/ */
......
...@@ -33,6 +33,16 @@ public class GroupPurchaseItemVo implements Entity { ...@@ -33,6 +33,16 @@ public class GroupPurchaseItemVo implements Entity {
*/ */
private String creatorAvatar; private String creatorAvatar;
/**
* 商品图片
*/
private String images;
/**
* 商品视频
*/
private String videos;
/** /**
* 简介 * 简介
*/ */
...@@ -48,13 +58,27 @@ public class GroupPurchaseItemVo implements Entity { ...@@ -48,13 +58,27 @@ public class GroupPurchaseItemVo implements Entity {
private Boolean isSubscribedOfCloseToSuccess; private Boolean isSubscribedOfCloseToSuccess;
/** /**
* 是否订阅了尾款支付提醒消息 * 团购状态
*/ */
private Boolean isSubscribedOfPay; private Integer state;
private String stateName;
/** /**
* 团购进度 * 团购进度
*/ */
private GroupPurchaseInfo rateInfo; private GroupPurchaseInfo rateInfo;
private String ruleUrl;
/**
* 商品类型
*/
private Integer type;
private String wxQrcode;
/**
* 限购数量
*/
private Integer buyLimitNum;
} }
...@@ -489,9 +489,20 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -489,9 +489,20 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override @Override
public Result createGroupPurchaseOrder(GroupPurchaseRecordRequestDto dto) { public Result createGroupPurchaseOrder(DistributionOrderRequestDto dto) {
try { try {
long itemId = dto.getItemId(); long itemId = dto.getItemId();
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setItemId(itemId);
groupPurchaseRecordRequestDto.setUserId(dto.getUserId());
long buyNum = groupPurchaseRecordDao.summaryItemNum(groupPurchaseRecordRequestDto);
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(itemId);
int limit = groupPurchaseConfig.getLimitNum();
if (limit != -1 && (buyNum + dto.getItemNum()) >limit) {
return Result.failed("超出购买上限");
}
SupplierItem supplierItem = supplierItemDao.findById(itemId); SupplierItem supplierItem = supplierItemDao.findById(itemId);
//查询该用户和藏家的介绍人 //查询该用户和藏家的介绍人
FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto(); FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto();
...@@ -528,6 +539,10 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -528,6 +539,10 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrder.setShopId(supplierItem.getCreatorId()); distributionOrder.setShopId(supplierItem.getCreatorId());
distributionOrder.setSellerId(supplierItem.getCreatorId()); distributionOrder.setSellerId(supplierItem.getCreatorId());
distributionOrder.setAmount(PriceUtil.convertPriceFromStr(dto.getAmount())); distributionOrder.setAmount(PriceUtil.convertPriceFromStr(dto.getAmount()));
distributionOrder.setAddressId(dto.getAddressId());
distributionOrder.setReceiverAddress(dto.getReceiverAddress());
distributionOrder.setReceiverName(dto.getReceiverName());
distributionOrder.setReceiverPhone(dto.getReceiverPhone());
distributionOrder.setCreateTime(new Date()); distributionOrder.setCreateTime(new Date());
distributionOrder.setUpdateTime(new Date()); distributionOrder.setUpdateTime(new Date());
distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode()); distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode());
...@@ -538,6 +553,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -538,6 +553,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
String depositPayId = IdUtils.getOrderNumber(CommConsts.GROUPPURCHASE_DEPOSIT_PREFIX); String depositPayId = IdUtils.getOrderNumber(CommConsts.GROUPPURCHASE_DEPOSIT_PREFIX);
GroupPurchaseRecord groupPurchaseRecord = new GroupPurchaseRecord(); GroupPurchaseRecord groupPurchaseRecord = new GroupPurchaseRecord();
groupPurchaseRecord.setDepositPayId(depositPayId); groupPurchaseRecord.setDepositPayId(depositPayId);
groupPurchaseRecord.setDistributionOrderId(distributionOrderId);
groupPurchaseRecord.setPrepayId(prepayId); groupPurchaseRecord.setPrepayId(prepayId);
groupPurchaseRecord.setItemId(distributionOrder.getItemId()); groupPurchaseRecord.setItemId(distributionOrder.getItemId());
groupPurchaseRecord.setItemNum(distributionOrder.getItemNum()); groupPurchaseRecord.setItemNum(distributionOrder.getItemNum());
......
package com.wwdz.ch.wx.impl.distribution; package com.wwdz.ch.wx.impl.distribution;
import com.github.pagehelper.PageInfo;
import com.wechat.pay.java.service.refund.model.Refund; import com.wechat.pay.java.service.refund.model.Refund;
import com.wechat.pay.java.service.refund.model.Status; import com.wechat.pay.java.service.refund.model.Status;
import com.wwdz.ch.core.api.wxpay.WxPayServiceApi; import com.wwdz.ch.core.api.wxpay.WxPayServiceApi;
import com.wwdz.ch.core.consts.*; import com.wwdz.ch.core.consts.*;
import com.wwdz.ch.core.entity.wxPay.DistributionOrderRefundRequestDto; import com.wwdz.ch.core.entity.wxPay.DistributionOrderRefundRequestDto;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.*; import com.wwdz.ch.core.util.*;
import com.wwdz.ch.db.dao.DisposableSubscribeRecordDao; import com.wwdz.ch.db.dao.DisposableSubscribeRecordDao;
...@@ -15,11 +17,14 @@ import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto; ...@@ -15,11 +17,14 @@ 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.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.SupplierItemRequestDto;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo; 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.FollowFansRecordService;
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;
import com.wwdz.ch.wx.service.distribution.UserAccountDetailService; import com.wwdz.ch.wx.service.distribution.UserAccountDetailService;
import com.xxdxxs.utils.StringUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -27,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -27,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.StringUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
...@@ -70,6 +74,12 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -70,6 +74,12 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
@Autowired @Autowired
UserAccountDetailService userAccountDetailService; UserAccountDetailService userAccountDetailService;
@Autowired
CollectionShareRecordDao collectionShareRecordDao;
@Autowired
FollowFansRecordService followFansRecordService;
@Override @Override
public Result findList(GroupPurchaseConfigRequestDto dto) { public Result findList(GroupPurchaseConfigRequestDto dto) {
try { try {
...@@ -78,22 +88,32 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -78,22 +88,32 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
dto.setState(GroupPurchaseEnum.ItemStateEnum.NOT_START.getCode()); dto.setState(GroupPurchaseEnum.ItemStateEnum.NOT_START.getCode());
List<GroupPurchaseConfig> groupPurchaseConfigList = groupPurchaseConfigDao.findList(dto); List<GroupPurchaseConfig> groupPurchaseConfigList = groupPurchaseConfigDao.findList(dto);
for (GroupPurchaseConfig groupPurchaseConfig : groupPurchaseConfigList) { for (GroupPurchaseConfig groupPurchaseConfig : groupPurchaseConfigList) {
if (now.after(groupPurchaseConfig.getStartTime()) && groupPurchaseConfig.getEndTime().after(now)) { if (groupPurchaseConfig.getStartTime() != null && groupPurchaseConfig.getEndTime() != null) {
groupPurchaseConfigDao.updateState(groupPurchaseConfig.getItemId(), GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode()); if (now.after(groupPurchaseConfig.getStartTime()) && groupPurchaseConfig.getEndTime().after(now)) {
groupPurchaseConfigDao.updateState(groupPurchaseConfig.getItemId(), GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode());
}
} }
} }
//查询进行中的团购 //查询进行中的团购
dto.setState(GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode()); dto.setState(GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode());
List<GroupPurchaseConfig> groupPurchaseConfigs = groupPurchaseConfigDao.findList(dto); List<GroupPurchaseConfig> groupPurchaseConfigs = groupPurchaseConfigDao.findList(dto);
PageInfo<GroupPurchaseConfig> pageInfo = new PageInfo<>(groupPurchaseConfigs);
List<GroupPurchaseItemVo> groupPurchaseItemVos = new ArrayList<>(); List<GroupPurchaseItemVo> groupPurchaseItemVos = new ArrayList<>();
for (GroupPurchaseConfig groupPurchaseConfig : groupPurchaseConfigs) { for (GroupPurchaseConfig groupPurchaseConfig : groupPurchaseConfigs) {
GroupPurchaseItemVo groupPurchaseItemVo = new GroupPurchaseItemVo();
//检测是否结束 //检测是否结束
if (groupPurchaseConfig.getEndTime().before(now)) { if (groupPurchaseConfig.getEndTime().before(now)) {
groupPurchaseConfigDao.updateState(groupPurchaseConfig.getItemId(), GroupPurchaseEnum.ItemStateEnum.END.getCode()); groupPurchaseConfigDao.updateState(groupPurchaseConfig.getItemId(), GroupPurchaseEnum.ItemStateEnum.END.getCode());
continue; groupPurchaseItemVo.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
groupPurchaseItemVo.setStateName(GroupPurchaseEnum.ItemStateEnum.END.getDes());
} else {
groupPurchaseItemVo.setState(groupPurchaseConfig.getState());
groupPurchaseItemVo.setStateName(GroupPurchaseEnum.ItemStateEnum.getNameByCode(groupPurchaseConfig.getState()));
} }
SupplierItem supplierItem = supplierItemDao.findById(groupPurchaseConfig.getItemId()); SupplierItem supplierItem = supplierItemDao.findById(groupPurchaseConfig.getItemId());
GroupPurchaseItemVo groupPurchaseItemVo = new GroupPurchaseItemVo(); groupPurchaseItemVo.setImages(supplierItem.getImages());
groupPurchaseItemVo.setVideos(supplierItem.getVideos());
groupPurchaseItemVo.setItemId(supplierItem.getId()); groupPurchaseItemVo.setItemId(supplierItem.getId());
groupPurchaseItemVo.setItemName(supplierItem.getName()); groupPurchaseItemVo.setItemName(supplierItem.getName());
groupPurchaseItemVo.setCreatorId(supplierItem.getCreatorId()); groupPurchaseItemVo.setCreatorId(supplierItem.getCreatorId());
...@@ -107,7 +127,7 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -107,7 +127,7 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
groupPurchaseItemVo.setRateInfo(result.getData()); groupPurchaseItemVo.setRateInfo(result.getData());
groupPurchaseItemVos.add(groupPurchaseItemVo); groupPurchaseItemVos.add(groupPurchaseItemVo);
} }
return Result.success(groupPurchaseItemVos); return Result.success(PageSearchResult.of(pageInfo, groupPurchaseItemVos));
} catch (Exception e) { } catch (Exception e) {
logger.error("查询团购商品失败 error : {}", e); logger.error("查询团购商品失败 error : {}", e);
} }
...@@ -115,16 +135,51 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -115,16 +135,51 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
} }
@Override @Override
public Result findItemDetail(GroupPurchaseConfigRequestDto dto) { public Result findItemDetail(SupplierItemRequestDto dto) {
try { try {
long itemId = dto.getItemId(); Long itemId;
String shareRecordId = dto.getShareRecordId();
CollectionShareRecord collectionShareRecord = null;
long introducerId = CommConsts.SYSTEM_ACCOUNT;
if (com.xxdxxs.utils.StringUtils.isEmpty(shareRecordId) && dto.getId() == null) {
return Result.failed("商品信息为空");
} else if (StringUtils.hasLength(shareRecordId) && !shareRecordId.equals(CommConsts.DEFAULT_SHARE_ID)) {
collectionShareRecord = collectionShareRecordDao.findById(dto.getShareRecordId());
introducerId = collectionShareRecord.getSharerId();
itemId = collectionShareRecord.getShareTargetId();
if (collectionShareRecord != null && collectionShareRecord.getItemUserId().longValue() != dto.getUserId().longValue()) {
//客态进入别人的藏馆,自动关注
FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto();
followFansRecordRequestDto.setFollowerId(collectionShareRecord.getItemUserId());
followFansRecordRequestDto.setFansId(dto.getUserId());
followFansRecordRequestDto.setIntroducerId(introducerId);
Result followResult = followFansRecordService.follow(followFansRecordRequestDto);
if (followResult.getSuccess()) {
logger.info("查询团购商品详情api-通过分享点击,用户id:{} 关注了 用户id为 {}, 介绍人为{}", dto.getUserId(), collectionShareRecord.getItemUserId(), collectionShareRecord.getSharerId());
} else {
logger.info("查询团购商品详情api-通过分享点击关注用户返回信息 : {}" + followResult.getErrmsg());
}
}
} else {
itemId = dto.getId();
}
if (itemId == null) {
return Result.failed("没有对应的商品id");
}
SupplierItem supplierItem = supplierItemDao.findById(itemId); SupplierItem supplierItem = supplierItemDao.findById(itemId);
GroupPurchaseItemVo groupPurchaseItemVo = new GroupPurchaseItemVo(); GroupPurchaseItemVo groupPurchaseItemVo = new GroupPurchaseItemVo();
groupPurchaseItemVo.setItemId(supplierItem.getId()); groupPurchaseItemVo.setItemId(supplierItem.getId());
groupPurchaseItemVo.setItemName(supplierItem.getName()); groupPurchaseItemVo.setItemName(supplierItem.getName());
groupPurchaseItemVo.setImages(supplierItem.getImages());
groupPurchaseItemVo.setVideos(supplierItem.getVideos());
groupPurchaseItemVo.setType(supplierItem.getType());
groupPurchaseItemVo.setDescription(supplierItem.getDescription()); groupPurchaseItemVo.setDescription(supplierItem.getDescription());
//众筹规则的图片url
groupPurchaseItemVo.setRuleUrl("https://cdn.wanwudezhi.com/quanku/802de83c450f4b15b518496cabc5079c_720x722.jpg");
User user = cacheUtil.appletUserInfoCache.get(supplierItem.getCreatorId()).get(); User user = cacheUtil.appletUserInfoCache.get(supplierItem.getCreatorId()).get();
groupPurchaseItemVo.setCreatorName(user.getNickname()); groupPurchaseItemVo.setCreatorName(user.getNickname());
groupPurchaseItemVo.setCreatorId(supplierItem.getCreatorId());
groupPurchaseItemVo.setCreatorAvatar(user.getAvatar()); groupPurchaseItemVo.setCreatorAvatar(user.getAvatar());
groupPurchaseItemVo.setCreatorProfile(user.getProfile()); groupPurchaseItemVo.setCreatorProfile(user.getProfile());
groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos())); groupPurchaseItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
...@@ -134,9 +189,21 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -134,9 +189,21 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
if (!result.getSuccess()) { if (!result.getSuccess()) {
return Result.failed("查询团购信息错误"); return Result.failed("查询团购信息错误");
} }
groupPurchaseItemVo.setRateInfo(result.getData()); GroupPurchaseInfo groupPurchaseInfo = result.getData();
groupPurchaseItemVo.setRateInfo(groupPurchaseInfo);
Date now = new Date();
if (groupPurchaseInfo.getEndTime().before(now)) {
groupPurchaseConfigDao.updateState(itemId, GroupPurchaseEnum.ItemStateEnum.END.getCode());
groupPurchaseItemVo.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
groupPurchaseItemVo.setStateName(GroupPurchaseEnum.ItemStateEnum.END.getDes());
} else {
groupPurchaseItemVo.setState(groupPurchaseInfo.getState());
groupPurchaseItemVo.setStateName(GroupPurchaseEnum.ItemStateEnum.getNameByCode(groupPurchaseInfo.getState()));
}
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(itemId);
groupPurchaseItemVo.setBuyLimitNum(groupPurchaseConfig.getLimitNum());
groupPurchaseConfig.setWxQrcode(groupPurchaseConfig.getWxQrcode());
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()));
return Result.success(groupPurchaseItemVo); return Result.success(groupPurchaseItemVo);
} catch (Exception e) { } catch (Exception e) {
logger.error("查询团购商品详情失败 error : {}", e); logger.error("查询团购商品详情失败 error : {}", e);
...@@ -209,23 +276,10 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -209,23 +276,10 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
@Override @Override
public Result<GroupPurchaseInfo> checkGroupPurchase(GroupPurchaseRecordRequestDto dto) { public Result<GroupPurchaseInfo> checkGroupPurchase(GroupPurchaseRecordRequestDto dto) {
try { try {
//默认团购数量没达到要求,没有折扣
BigDecimal rebate = new BigDecimal("1");
//查询当前团购的商品数量 //查询当前团购的商品数量
long itemNum = groupPurchaseRecordDao.summaryItemNum(dto); long itemNum = groupPurchaseRecordDao.summaryItemNum(dto);
List<GroupPurchaseRecord> groupPurchaseRecords = groupPurchaseRecordDao.countPeople(dto); List<GroupPurchaseRecord> groupPurchaseRecords = groupPurchaseRecordDao.countPeople(dto);
long peopleNum = groupPurchaseRecords.size(); long peopleNum = groupPurchaseRecords.size();
List<String> userAvatarList = new ArrayList<>();
//查询参加团购用户头像
long limitNum = 3;
if (0 < peopleNum && peopleNum < 3) {
limitNum = peopleNum;
}
for (int i = 0; i < limitNum; i++) {
long userId = groupPurchaseRecords.get(0).getUserId();
String avatarUrl = cacheUtil.appletUserInfoCache.get(userId).get().getAvatar();
userAvatarList.add(StringUtils.isEmpty(avatarUrl) ? CommConsts.DEFAULT_AVATAR_URL : avatarUrl);
}
//查询团购配置信息 //查询团购配置信息
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(dto.getItemId()); GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(dto.getItemId());
...@@ -244,9 +298,8 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -244,9 +298,8 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
groupPurchaseInfo.setPeopleNum((int) peopleNum); groupPurchaseInfo.setPeopleNum((int) peopleNum);
groupPurchaseInfo.setEndTime(groupPurchaseConfig.getEndTime()); groupPurchaseInfo.setEndTime(groupPurchaseConfig.getEndTime());
groupPurchaseInfo.setSalePrice(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice())); 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().before(now) && groupPurchaseConfig.getEndTime().after(now)) {
groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode()); groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode());
} else if (groupPurchaseConfig.getEndTime().before(now)) { } else if (groupPurchaseConfig.getEndTime().before(now)) {
groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode()); groupPurchaseInfo.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
......
...@@ -3,12 +3,14 @@ package com.wwdz.ch.wx.impl.distribution; ...@@ -3,12 +3,14 @@ package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.consts.BillEnum; import com.wwdz.ch.core.consts.BillEnum;
import com.wwdz.ch.core.consts.CommConsts; import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.PriceUtil;
import com.wwdz.ch.db.dao.distribution.UserAccountDetailDao; import com.wwdz.ch.db.dao.distribution.UserAccountDetailDao;
import com.wwdz.ch.db.dao.distribution.UserBillDao; import com.wwdz.ch.db.dao.distribution.UserBillDao;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.DistributorProfit; import com.wwdz.ch.db.domain.distribution.DistributorProfit;
import com.wwdz.ch.db.domain.distribution.UserAccountDetail; import com.wwdz.ch.db.domain.distribution.UserAccountDetail;
import com.wwdz.ch.db.domain.distribution.UserBill; import com.wwdz.ch.db.domain.distribution.UserBill;
import com.wwdz.ch.db.dto.request.distribution.UserAccountDetailRequestDto;
import com.wwdz.ch.wx.service.distribution.UserAccountDetailService; import com.wwdz.ch.wx.service.distribution.UserAccountDetailService;
import com.wwdz.ch.wx.service.distribution.UserBillService; import com.wwdz.ch.wx.service.distribution.UserBillService;
import com.xxdxxs.utils.StringUtils; import com.xxdxxs.utils.StringUtils;
...@@ -29,8 +31,6 @@ public class UserAccountDetailServiceImpl implements UserAccountDetailService { ...@@ -29,8 +31,6 @@ public class UserAccountDetailServiceImpl implements UserAccountDetailService {
private static final Logger logger = LoggerFactory.getLogger(SelfPageServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(SelfPageServiceImpl.class);
@Autowired @Autowired
UserAccountDetailDao userAccountDetailDao; UserAccountDetailDao userAccountDetailDao;
...@@ -143,4 +143,28 @@ public class UserAccountDetailServiceImpl implements UserAccountDetailService { ...@@ -143,4 +143,28 @@ public class UserAccountDetailServiceImpl implements UserAccountDetailService {
} }
return Result.failed(); return Result.failed();
} }
@Override
public Result countIntroduceAmount(long userId) {
try {
//统计未到账佣金
UserAccountDetailRequestDto waitIntroduceDto = new UserAccountDetailRequestDto();
waitIntroduceDto.setUserId(userId);
waitIntroduceDto.setType(BillEnum.AccountDetailTypeEnum.INTRODUCE.getCode());
waitIntroduceDto.setState(BillEnum.AccountDetailStateEnum.WAIT_ENTRY.getCode());
long waitIntroduceAmount = userAccountDetailDao.summaryAmount(waitIntroduceDto);
UserAccountDetailRequestDto entryIntroduceDto = new UserAccountDetailRequestDto();
entryIntroduceDto.setUserId(userId);
entryIntroduceDto.setType(BillEnum.AccountDetailTypeEnum.INTRODUCE.getCode());
entryIntroduceDto.setState(BillEnum.AccountDetailStateEnum.ENTRY.getCode());
long entryIntroduceAmount = userAccountDetailDao.summaryAmount(entryIntroduceDto);
long totalIntroduceAmount = waitIntroduceAmount + entryIntroduceAmount;
return Result.success(PriceUtil.convertPriceFenToYuan(totalIntroduceAmount));
} catch (Exception e) {
logger.error("统计介绍佣金 error:{}", e);
}
return Result.failed();
}
} }
package com.wwdz.ch.wx.job; package com.wwdz.ch.wx.job;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum; import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.GroupPurchaseEnum; import com.wwdz.ch.core.consts.GroupPurchaseEnum;
import com.wwdz.ch.db.dao.distribution.DistributionOrderDao; import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
...@@ -9,6 +10,8 @@ import com.wwdz.ch.db.dao.distribution.GroupPurchaseRecordDao; ...@@ -9,6 +10,8 @@ import com.wwdz.ch.db.dao.distribution.GroupPurchaseRecordDao;
import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig; import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig;
import com.wwdz.ch.db.domain.distribution.GroupPurchaseRecord; import com.wwdz.ch.db.domain.distribution.GroupPurchaseRecord;
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.wx.service.distribution.GroupPurchaseService;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -42,6 +45,9 @@ public class GroupPurchaseJob { ...@@ -42,6 +45,9 @@ public class GroupPurchaseJob {
@Autowired @Autowired
DistributorProfitDao distributorProfitDao; DistributorProfitDao distributorProfitDao;
@Autowired
GroupPurchaseService groupPurchaseService;
/** /**
* 隔2分钟运行一次 * 隔2分钟运行一次
*/ */
...@@ -56,6 +62,8 @@ public class GroupPurchaseJob { ...@@ -56,6 +62,8 @@ public class GroupPurchaseJob {
try { try {
//查询状态进行中,但实际已经结束的团购商品 //查询状态进行中,但实际已经结束的团购商品
checkProcessGroupPurchase(); checkProcessGroupPurchase();
//查询已经结束,还未处理订单的团购商品
checkEndGroupPurchase();
} catch (Exception e) { } catch (Exception e) {
logger.error("检测团购进度任务 error:{}", e); logger.error("检测团购进度任务 error:{}", e);
} finally { } finally {
...@@ -79,25 +87,39 @@ public class GroupPurchaseJob { ...@@ -79,25 +87,39 @@ public class GroupPurchaseJob {
} }
} }
//查询已经结束,还未处理订单的团购商品 /**
* 查询已经结束,还未处理订单的团购商品
*/
public void checkEndGroupPurchase() { public void checkEndGroupPurchase() {
GroupPurchaseConfigRequestDto groupPurchaseConfigRequestDto = new GroupPurchaseConfigRequestDto(); GroupPurchaseConfigRequestDto groupPurchaseConfigRequestDto = new GroupPurchaseConfigRequestDto();
groupPurchaseConfigRequestDto.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode()); groupPurchaseConfigRequestDto.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
groupPurchaseConfigRequestDto.setIsDeal(false); groupPurchaseConfigRequestDto.setIsDeal(false);
List<GroupPurchaseConfig> purchaseConfigList = groupPurchaseConfigDao.findList(groupPurchaseConfigRequestDto); List<GroupPurchaseConfig> purchaseConfigList = groupPurchaseConfigDao.findList(groupPurchaseConfigRequestDto);
for (GroupPurchaseConfig groupPurchaseConfig : purchaseConfigList) { for (GroupPurchaseConfig groupPurchaseConfig : purchaseConfigList) {
//判断是否成功成团,暂时默认true int targetNum = groupPurchaseConfig.getTargetNum();
boolean flag = true;
long itemId = groupPurchaseConfig.getItemId(); long itemId = groupPurchaseConfig.getItemId();
List<GroupPurchaseRecord> groupPurchaseRecordList = groupPurchaseRecordDao.findByItemId(itemId); List<GroupPurchaseRecord> groupPurchaseRecordList = groupPurchaseRecordDao.findByItemId(itemId);
GroupPurchaseRecordRequestDto dto = new GroupPurchaseRecordRequestDto();
dto.setItemId(itemId);
long itemNum = groupPurchaseRecordDao.summaryItemNum(dto);
//判断是否成功成团
boolean flag = true;
if (itemNum < targetNum) {
flag = false;
}
for (GroupPurchaseRecord groupPurchaseRecord : groupPurchaseRecordList) { for (GroupPurchaseRecord groupPurchaseRecord : groupPurchaseRecordList) {
if (groupPurchaseRecord.getUserId() == CommConsts.SYSTEM_ACCOUNT.longValue()) {
//系统为了团购成功插入的假数据不用处理
continue;
}
String distributionOrderId = groupPurchaseRecord.getDistributionOrderId(); String distributionOrderId = groupPurchaseRecord.getDistributionOrderId();
if (flag) { if (flag) {
//更改订单的状态为待发货 //更改订单的状态为待发货
distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.PRE_SEND.getCode()); distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.PRE_SEND.getCode());
} else { } else {
distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode()); GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setDistributionOrderId(groupPurchaseRecord.getDistributionOrderId());
groupPurchaseService.cancelOrder(groupPurchaseRecordRequestDto);
} }
} }
groupPurchaseConfigDao.updateDealByPrimaryKey(groupPurchaseConfig.getId(), true); groupPurchaseConfigDao.updateDealByPrimaryKey(groupPurchaseConfig.getId(), true);
......
...@@ -36,7 +36,7 @@ public interface DistributionOrderService { ...@@ -36,7 +36,7 @@ public interface DistributionOrderService {
* @param dto * @param dto
* @return * @return
*/ */
Result createGroupPurchaseOrder(GroupPurchaseRecordRequestDto dto); Result createGroupPurchaseOrder(DistributionOrderRequestDto dto);
/** /**
......
...@@ -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.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo; import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
...@@ -22,7 +23,7 @@ public interface GroupPurchaseService { ...@@ -22,7 +23,7 @@ public interface GroupPurchaseService {
* @param dto * @param dto
* @return * @return
*/ */
Result findItemDetail(GroupPurchaseConfigRequestDto dto); Result findItemDetail(SupplierItemRequestDto dto);
/** /**
......
...@@ -19,5 +19,14 @@ public interface UserAccountDetailService { ...@@ -19,5 +19,14 @@ public interface UserAccountDetailService {
* @param distributionOrder * @param distributionOrder
* @return * @return
*/ */
Result cancel(DistributionOrder distributionOrder) throws Exception; Result cancel(DistributionOrder distributionOrder);
/**
* 统计介绍佣金
* @param userId
* @return
*/
Result countIntroduceAmount(long userId);
} }
...@@ -108,7 +108,7 @@ public class DistributionOrderController { ...@@ -108,7 +108,7 @@ public class DistributionOrderController {
@ApiOperation(value = "创建团购订单") @ApiOperation(value = "创建团购订单")
@PostMapping("/createGroupPurchaseOrder") @PostMapping("/createGroupPurchaseOrder")
public Result createGroupPurchaseOrder(@RequestBody GroupPurchaseRecordRequestDto dto) { public Result createGroupPurchaseOrder(@RequestBody DistributionOrderRequestDto dto) {
logger.info("创建团购订单,请求参数:{}", JSON.toJSONString(dto)); logger.info("创建团购订单,请求参数:{}", JSON.toJSONString(dto));
if (!StringUtils.isAllNotEmpty(dto.getItemId(), dto.getItemNum(), dto.getUserId(), dto.getBuyerOpenid(), dto.getAmount())) { if (!StringUtils.isAllNotEmpty(dto.getItemId(), dto.getItemNum(), dto.getUserId(), dto.getBuyerOpenid(), dto.getAmount())) {
return Result.failed(ResultCode.PARAM_ERROR); return Result.failed(ResultCode.PARAM_ERROR);
......
...@@ -5,6 +5,7 @@ import com.wwdz.ch.core.consts.ResultCode; ...@@ -5,6 +5,7 @@ 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.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.SupplierItemRequestDto;
import com.wwdz.ch.wx.service.distribution.GroupPurchaseService; import com.wwdz.ch.wx.service.distribution.GroupPurchaseService;
import com.xxdxxs.utils.StringUtils; import com.xxdxxs.utils.StringUtils;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -35,11 +36,8 @@ public class GroupPurchaseController { ...@@ -35,11 +36,8 @@ public class GroupPurchaseController {
@ApiOperation(value = "查询团购商品详情") @ApiOperation(value = "查询团购商品详情")
@PostMapping("/findItemDetail") @PostMapping("/findItemDetail")
public Result findItemDetail(@RequestBody GroupPurchaseConfigRequestDto dto) { public Result findItemDetail(@RequestBody SupplierItemRequestDto dto) {
logger.info("查询团购商品详情,请求参数:{}", JSON.toJSONString(dto)); logger.info("查询团购商品详情,请求参数:{}", JSON.toJSONString(dto));
if (dto.getItemId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return groupPurchaseService.findItemDetail(dto); return groupPurchaseService.findItemDetail(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