Commit 57811618 authored by shiyu's avatar shiyu

签到赠礼品订单加上运费

parent 84dd223f
......@@ -245,8 +245,9 @@ public class WxPayCallbackController {
if (!updateResult.getSuccess()) {
return JsonUtils.from(returnMap);
}
} else if (distributionOrder.getType() == DistributionEnum.DistributionTypeEnum.DISCOUNT.getCode()) {
//折扣订单
} else if (distributionOrder.getType() == DistributionEnum.DistributionTypeEnum.DISCOUNT.getCode()
|| distributionOrder.getType() == DistributionEnum.DistributionTypeEnum.GIFT.getCode()) {
//折扣订单,签到赠品订单
Result updateResult = handleOrderOfDiscount(transaction);
if (!updateResult.getSuccess()) {
return JsonUtils.from(returnMap);
......
package com.wwdz.ch.wx.impl;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DisposableSubscribeRecordEnum;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.SigninEnum;
import com.wwdz.ch.core.api.wxpay.WxPayServiceApi;
import com.wwdz.ch.core.consts.*;
import com.wwdz.ch.core.entity.SignDateRecord;
import com.wwdz.ch.core.entity.SupplierItemVo;
import com.wwdz.ch.core.type.Result;
......@@ -20,7 +18,9 @@ import com.wwdz.ch.db.domain.UserSignIn;
import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.db.dto.request.UserSignInRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.db.dto.request.openShop.EarnestRecordRequestDto;
import com.wwdz.ch.wx.entity.vo.SignInRewardVo;
import com.wwdz.ch.wx.service.UserSigninService;
import com.xxdxxs.utils.DateUtils;
......@@ -68,6 +68,9 @@ public class UserSigninServiceImpl implements UserSigninService {
@Autowired
DisposableSubscribeRecordDao disposableSubscribeRecordDao;
@Autowired
WxPayServiceApi wxPayServiceApi;
@Override
public Result signIn(UserSignInRequestDto dto) {
try {
......@@ -204,11 +207,22 @@ public class UserSigninServiceImpl implements UserSigninService {
beforeUpdateDto.setSignInDate(newDateString);
userSignInDao.updateInvalid(beforeUpdateDto);
}
String distributionOrderId = IdUtils.getOrderNumber(CommConsts.DISTRIBUTION_ORDER_PREFIX);
//赠品订单收取运费10元
long orderAmount = 1000L;
DistributionOrderRequestDto prePayDto = new DistributionOrderRequestDto();
prePayDto.setDistributionOrderId(distributionOrderId);
prePayDto.setAmount(String.valueOf(orderAmount));
prePayDto.setBuyerOpenid(dto.getUserOpenId());
prePayDto.setItemName("签到礼品运费");
Result prePayResult = wxPayServiceApi.createPrepareOrder(prePayDto);
if (!prePayResult.getSuccess()) {
return Result.failed("签到礼品支付运费预下单失败");
}
String prepayId = (String) prePayResult.getData();
//创建赠品订单
DistributionOrder distributionOrder = new DistributionOrder();
String distributionOrderId = IdUtils.getOrderNumber(CommConsts.DISTRIBUTION_ORDER_PREFIX);
distributionOrder.setItemId(dto.getItemId());
distributionOrder.setItemNum(1);
distributionOrder.setDistributionOrderId(distributionOrderId);
......@@ -216,7 +230,7 @@ public class UserSigninServiceImpl implements UserSigninService {
distributionOrder.setBuyerOpenid(dto.getUserOpenId());
distributionOrder.setShopId(CommConsts.SYSTEM_ACCOUNT.longValue());
distributionOrder.setSellerId(CommConsts.SYSTEM_ACCOUNT.longValue());
distributionOrder.setAmount(0L);
distributionOrder.setAmount(orderAmount);
distributionOrder.setReceiverAddress(dto.getReceiverAddress());
distributionOrder.setReceiverName(dto.getReceiverName());
distributionOrder.setReceiverPhone(dto.getReceiverPhone());
......@@ -224,9 +238,12 @@ public class UserSigninServiceImpl implements UserSigninService {
distributionOrder.setUpdateTime(new Date());
distributionOrder.setType(DistributionEnum.DistributionTypeEnum.GIFT.getCode());
distributionOrder.setRemark(null);
distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_SEND.getCode());
distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode());
distributionOrderDao.insert(distributionOrder);
return Result.success();
Map<String, String> map = new HashMap<>();
map.put("distributionOrderId", distributionOrderId);
map.put("prepayId", prepayId);
return Result.success(map);
} catch (Exception e) {
logger.error("领取奖励失败 error : {}", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
......
......@@ -1392,7 +1392,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
DistributionOrder distributionOrder = distributionOrderDao.findById(distributionOrderId);
if (distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode()) {
long diffInMillies = Math.abs(new Date().getTime() - distributionOrder.getCreateTime().getTime());
if (type == DistributionEnum.DistributionTypeEnum.FIXED_PRICE.getCode()) {
if (type == DistributionEnum.DistributionTypeEnum.FIXED_PRICE.getCode() || type == DistributionEnum.DistributionTypeEnum.GIFT.getCode()) {
long diffInMinutes = diffInMillies / (60 * 1000);
if (diffInMinutes >= 30) {
//待支付超出半小时,订单取消
......@@ -1438,7 +1438,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
prePayList.forEach(distributionOrder -> {
long diffInMillies = Math.abs(new Date().getTime() - distributionOrder.getCreateTime().getTime());
int type = distributionOrder.getType();
if (type == DistributionEnum.DistributionTypeEnum.FIXED_PRICE.getCode() || type == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()) {
if (type == DistributionEnum.DistributionTypeEnum.FIXED_PRICE.getCode() || type == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()
|| type == DistributionEnum.DistributionTypeEnum.GIFT.getCode()) {
long diffInMinutes = diffInMillies / (60 * 1000);
if (diffInMinutes >= 30) {
//待支付超出半小时,订单取消
......
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