Commit 15abe8ac authored by shiyu's avatar shiyu

团购商品列表2

parent 4dd4c6ca
......@@ -19,6 +19,7 @@ public interface UserAccountDetailDao {
/**
* 根据交易id和收支类型查询账单明细
*
* @param transactionId
* @param type
* @return
......@@ -27,8 +28,12 @@ public interface UserAccountDetailDao {
/**
* 按照筛选条件汇总账户金额
*
* @param dto
* @return
*/
long summaryAmount(UserAccountDetailRequestDto dto);
}
......@@ -18,6 +18,8 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/
private Long id;
private Long itemId;
/**
* 批量操作,逗号分隔
*/
......
......@@ -98,4 +98,6 @@ public class UserAccountDetailDaoImpl implements UserAccountDetailDao {
JdbcHelper.ifPresent(dto.getFundType(), criteria::andFundTypeEqualTo);
return userAccountDetailMapper.summaryAmount(example);
}
}
......@@ -69,5 +69,8 @@ public interface UserAccountDetailMapper {
long summaryAmount(UserAccountDetailExample example);
long summaryIntroduceAmount(UserAccountDetailExample example);
}
\ No newline at end of file
......@@ -101,7 +101,7 @@
@project https://github.com/itfsw/mybatis-generator-plugin
-->
select
'true' as QUERYID,
<if test="example.distinct">
distinct
</if>
......
......@@ -375,4 +375,11 @@
<include refid="Example_Where_Clause" />
</if>
</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>
\ No newline at end of file
......@@ -45,7 +45,7 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
"/wx/returnOrder/**", "/wx/distributionOrder/confirmSigned", "/wx/distributionOrder/delivery", "/wx/distributionOrder/cancel",
"/wx/distributionOrder/refund",
"/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/supplierItem/**", "/wx/shareRecord/**", "/wx/distributionOrder/**", "/wx/selfPage/**", "/wx/auctionRecord/**",
......
......@@ -24,21 +24,11 @@ public class GroupPurchaseInfo implements Entity {
*/
private Integer peopleNum;
/**
* 定金
*/
private String deposit;
/**
* 商品售价
*/
private String salePrice;
/**
* 参团用户头像
*/
private List<String> userAvatarList;
/**
* 进度比例
*/
......
......@@ -33,6 +33,16 @@ public class GroupPurchaseItemVo implements Entity {
*/
private String creatorAvatar;
/**
* 商品图片
*/
private String images;
/**
* 商品视频
*/
private String videos;
/**
* 简介
*/
......@@ -48,13 +58,27 @@ public class GroupPurchaseItemVo implements Entity {
private Boolean isSubscribedOfCloseToSuccess;
/**
* 是否订阅了尾款支付提醒消息
* 团购状态
*/
private Boolean isSubscribedOfPay;
private Integer state;
private String stateName;
/**
* 团购进度
*/
private GroupPurchaseInfo rateInfo;
private String ruleUrl;
/**
* 商品类型
*/
private Integer type;
private String wxQrcode;
/**
* 限购数量
*/
private Integer buyLimitNum;
}
......@@ -489,9 +489,20 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override
public Result createGroupPurchaseOrder(GroupPurchaseRecordRequestDto dto) {
public Result createGroupPurchaseOrder(DistributionOrderRequestDto dto) {
try {
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);
//查询该用户和藏家的介绍人
FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto();
......@@ -528,6 +539,10 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrder.setShopId(supplierItem.getCreatorId());
distributionOrder.setSellerId(supplierItem.getCreatorId());
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.setUpdateTime(new Date());
distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode());
......@@ -538,6 +553,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
String depositPayId = IdUtils.getOrderNumber(CommConsts.GROUPPURCHASE_DEPOSIT_PREFIX);
GroupPurchaseRecord groupPurchaseRecord = new GroupPurchaseRecord();
groupPurchaseRecord.setDepositPayId(depositPayId);
groupPurchaseRecord.setDistributionOrderId(distributionOrderId);
groupPurchaseRecord.setPrepayId(prepayId);
groupPurchaseRecord.setItemId(distributionOrder.getItemId());
groupPurchaseRecord.setItemNum(distributionOrder.getItemNum());
......
......@@ -3,12 +3,14 @@ package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.consts.BillEnum;
import com.wwdz.ch.core.consts.CommConsts;
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.UserBillDao;
import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.DistributorProfit;
import com.wwdz.ch.db.domain.distribution.UserAccountDetail;
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.UserBillService;
import com.xxdxxs.utils.StringUtils;
......@@ -29,8 +31,6 @@ public class UserAccountDetailServiceImpl implements UserAccountDetailService {
private static final Logger logger = LoggerFactory.getLogger(SelfPageServiceImpl.class);
@Autowired
UserAccountDetailDao userAccountDetailDao;
......@@ -143,4 +143,28 @@ public class UserAccountDetailServiceImpl implements UserAccountDetailService {
}
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;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.GroupPurchaseEnum;
import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
......@@ -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.GroupPurchaseRecord;
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.RedissonClient;
import org.slf4j.Logger;
......@@ -42,6 +45,9 @@ public class GroupPurchaseJob {
@Autowired
DistributorProfitDao distributorProfitDao;
@Autowired
GroupPurchaseService groupPurchaseService;
/**
* 隔2分钟运行一次
*/
......@@ -56,6 +62,8 @@ public class GroupPurchaseJob {
try {
//查询状态进行中,但实际已经结束的团购商品
checkProcessGroupPurchase();
//查询已经结束,还未处理订单的团购商品
checkEndGroupPurchase();
} catch (Exception e) {
logger.error("检测团购进度任务 error:{}", e);
} finally {
......@@ -79,25 +87,39 @@ public class GroupPurchaseJob {
}
}
//查询已经结束,还未处理订单的团购商品
/**
* 查询已经结束,还未处理订单的团购商品
*/
public void checkEndGroupPurchase() {
GroupPurchaseConfigRequestDto groupPurchaseConfigRequestDto = new GroupPurchaseConfigRequestDto();
groupPurchaseConfigRequestDto.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
groupPurchaseConfigRequestDto.setIsDeal(false);
List<GroupPurchaseConfig> purchaseConfigList = groupPurchaseConfigDao.findList(groupPurchaseConfigRequestDto);
for (GroupPurchaseConfig groupPurchaseConfig : purchaseConfigList) {
//判断是否成功成团,暂时默认true
boolean flag = true;
int targetNum = groupPurchaseConfig.getTargetNum();
long itemId = groupPurchaseConfig.getItemId();
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) {
if (groupPurchaseRecord.getUserId() == CommConsts.SYSTEM_ACCOUNT.longValue()) {
//系统为了团购成功插入的假数据不用处理
continue;
}
String distributionOrderId = groupPurchaseRecord.getDistributionOrderId();
if (flag) {
//更改订单的状态为待发货
distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.PRE_SEND.getCode());
} else {
distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
GroupPurchaseRecordRequestDto groupPurchaseRecordRequestDto = new GroupPurchaseRecordRequestDto();
groupPurchaseRecordRequestDto.setDistributionOrderId(groupPurchaseRecord.getDistributionOrderId());
groupPurchaseService.cancelOrder(groupPurchaseRecordRequestDto);
}
}
groupPurchaseConfigDao.updateDealByPrimaryKey(groupPurchaseConfig.getId(), true);
......
......@@ -36,7 +36,7 @@ public interface DistributionOrderService {
* @param dto
* @return
*/
Result createGroupPurchaseOrder(GroupPurchaseRecordRequestDto dto);
Result createGroupPurchaseOrder(DistributionOrderRequestDto dto);
/**
......
......@@ -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.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
......@@ -22,7 +23,7 @@ public interface GroupPurchaseService {
* @param dto
* @return
*/
Result findItemDetail(GroupPurchaseConfigRequestDto dto);
Result findItemDetail(SupplierItemRequestDto dto);
/**
......
......@@ -19,5 +19,14 @@ public interface UserAccountDetailService {
* @param distributionOrder
* @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 {
@ApiOperation(value = "创建团购订单")
@PostMapping("/createGroupPurchaseOrder")
public Result createGroupPurchaseOrder(@RequestBody GroupPurchaseRecordRequestDto dto) {
public Result createGroupPurchaseOrder(@RequestBody DistributionOrderRequestDto dto) {
logger.info("创建团购订单,请求参数:{}", JSON.toJSONString(dto));
if (!StringUtils.isAllNotEmpty(dto.getItemId(), dto.getItemNum(), dto.getUserId(), dto.getBuyerOpenid(), dto.getAmount())) {
return Result.failed(ResultCode.PARAM_ERROR);
......
......@@ -5,6 +5,7 @@ import com.wwdz.ch.core.consts.ResultCode;
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.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.wx.service.distribution.GroupPurchaseService;
import com.xxdxxs.utils.StringUtils;
import io.swagger.annotations.ApiOperation;
......@@ -35,11 +36,8 @@ public class GroupPurchaseController {
@ApiOperation(value = "查询团购商品详情")
@PostMapping("/findItemDetail")
public Result findItemDetail(@RequestBody GroupPurchaseConfigRequestDto dto) {
public Result findItemDetail(@RequestBody SupplierItemRequestDto dto) {
logger.info("查询团购商品详情,请求参数:{}", JSON.toJSONString(dto));
if (dto.getItemId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
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