Commit 57811618 authored by shiyu's avatar shiyu

签到赠礼品订单加上运费

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