|
@@ -1,5 +1,6 @@
|
|
package com.fdkankan.ucenter.service.impl;
|
|
package com.fdkankan.ucenter.service.impl;
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
import com.amazonaws.services.simpleworkflow.flow.annotations.NoWait;
|
|
import com.amazonaws.services.simpleworkflow.flow.annotations.NoWait;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -11,14 +12,17 @@ import com.fdkankan.common.exception.BusinessException;
|
|
import com.fdkankan.ucenter.common.PageInfo;
|
|
import com.fdkankan.ucenter.common.PageInfo;
|
|
import com.fdkankan.common.util.NumberUtils;
|
|
import com.fdkankan.common.util.NumberUtils;
|
|
import com.fdkankan.ucenter.common.SkuEnum;
|
|
import com.fdkankan.ucenter.common.SkuEnum;
|
|
|
|
+import com.fdkankan.ucenter.common.constants.ResultCode;
|
|
import com.fdkankan.ucenter.constant.LoginConstant;
|
|
import com.fdkankan.ucenter.constant.LoginConstant;
|
|
import com.fdkankan.ucenter.constant.OrderConstant;
|
|
import com.fdkankan.ucenter.constant.OrderConstant;
|
|
import com.fdkankan.ucenter.entity.*;
|
|
import com.fdkankan.ucenter.entity.*;
|
|
import com.fdkankan.ucenter.httpClient.client.PayClient;
|
|
import com.fdkankan.ucenter.httpClient.client.PayClient;
|
|
|
|
+import com.fdkankan.ucenter.httpClient.param.PayAutoPayVo;
|
|
import com.fdkankan.ucenter.httpClient.param.PayGoods;
|
|
import com.fdkankan.ucenter.httpClient.param.PayGoods;
|
|
import com.fdkankan.ucenter.httpClient.service.PayService;
|
|
import com.fdkankan.ucenter.httpClient.service.PayService;
|
|
import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
|
|
import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
|
|
import com.fdkankan.ucenter.mapper.IIncrementOrderMapper;
|
|
import com.fdkankan.ucenter.mapper.IIncrementOrderMapper;
|
|
|
|
+import com.fdkankan.ucenter.pay.paypal.sdk.AutoPaypalVo;
|
|
import com.fdkankan.ucenter.service.*;
|
|
import com.fdkankan.ucenter.service.*;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.fdkankan.ucenter.util.DateUserUtil;
|
|
import com.fdkankan.ucenter.util.DateUserUtil;
|
|
@@ -36,6 +40,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -62,6 +67,8 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
|
|
IGoodsSkuService goodsSkuService;
|
|
IGoodsSkuService goodsSkuService;
|
|
@Autowired
|
|
@Autowired
|
|
IIncrementTypeService incrementTypeService;
|
|
IIncrementTypeService incrementTypeService;
|
|
|
|
+ @Autowired
|
|
|
|
+ IIncrementAutoOrderService incrementAutoOrderService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public PageInfo pageList(IncrementOrderParam param) {
|
|
public PageInfo pageList(IncrementOrderParam param) {
|
|
@@ -169,13 +176,41 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
|
|
if(param.getMonthQy() != null){
|
|
if(param.getMonthQy() != null){
|
|
total = total.multiply(new BigDecimal(param.getMonthQy())); //高级会员月份
|
|
total = total.multiply(new BigDecimal(param.getMonthQy())); //高级会员月份
|
|
}
|
|
}
|
|
|
|
+ if(param.getIncrementId() != null){
|
|
|
|
+ IncrementAutoOrder autoOrder2 = incrementAutoOrderService.getByIncrementId(param.getIncrementId());
|
|
|
|
+ if(autoOrder2 != null){
|
|
|
|
+ throw new BusinessException(ResultCode.FAILURE_CODE_400007,ResultCode.FAILURE_MSG_400007);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
IncrementOrder incrementOrderEntity = new IncrementOrder();
|
|
IncrementOrder incrementOrderEntity = new IncrementOrder();
|
|
|
|
+ PayAutoPayVo autoPayVo = null;
|
|
|
|
+ String autoStartTime = null;
|
|
|
|
+ String autoPayTime = null;
|
|
|
|
+ UserIncrement userIncrement = null;
|
|
|
|
+ if(param.getAutoPay() != null && param.getAutoPay() == 1){
|
|
|
|
+ if(param.getIncrementId() != null){
|
|
|
|
+ userIncrement = userIncrementService.getById(param.getIncrementId());
|
|
|
|
+ if(userIncrement != null){
|
|
|
|
+ autoStartTime = userIncrement.getIncrementEndTime();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(incrementType.getValidTimeType() == 0){
|
|
|
|
+ incrementOrderEntity.setMemberLevels("PR");
|
|
|
|
+ autoPayTime = "YEAR";
|
|
|
|
+ }
|
|
|
|
+ if(incrementType.getValidTimeType() == 1){
|
|
|
|
+ incrementOrderEntity.setMemberLevels("SE");
|
|
|
|
+ autoPayTime = "MONTH";
|
|
|
|
+ }
|
|
|
|
+ autoPayVo =new PayAutoPayVo(param.getAutoPay(),autoPayTime,autoStartTime);
|
|
PayGoods payGoods = new PayGoods(incrementType.getName(),param.getCount(),incrementType.getValidTimeType(),param.getMonthQy());
|
|
PayGoods payGoods = new PayGoods(incrementType.getName(),param.getCount(),incrementType.getValidTimeType(),param.getMonthQy());
|
|
- PayOrderVo payOrderVo = payService.downOrder(total, "incrementOrder",user.getUserName(),user.getNickName(), Arrays.asList(payGoods));
|
|
|
|
|
|
+ PayOrderVo payOrderVo = payService.downOrder(total, "incrementOrder",user.getUserName(),user.getNickName(), Arrays.asList(payGoods),autoPayVo);
|
|
if(payOrderVo == null){
|
|
if(payOrderVo == null){
|
|
throw new BusinessException(OrderConstant.FAILURE_CODE_8005,OrderConstant.FAILURE_MSG_8005);
|
|
throw new BusinessException(OrderConstant.FAILURE_CODE_8005,OrderConstant.FAILURE_MSG_8005);
|
|
}
|
|
}
|
|
|
|
+
|
|
incrementOrderEntity.setOrderSn(payOrderVo.getOrderSn());
|
|
incrementOrderEntity.setOrderSn(payOrderVo.getOrderSn());
|
|
incrementOrderEntity.setAmount(total);
|
|
incrementOrderEntity.setAmount(total);
|
|
incrementOrderEntity.setPayType(param.getPayType());
|
|
incrementOrderEntity.setPayType(param.getPayType());
|
|
@@ -191,11 +226,10 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
|
|
incrementOrderEntity.setIncrementType(incrementType.getId());
|
|
incrementOrderEntity.setIncrementType(incrementType.getId());
|
|
incrementOrderEntity.setMonthQy(param.getMonthQy());
|
|
incrementOrderEntity.setMonthQy(param.getMonthQy());
|
|
incrementOrderEntity.setTimeZoneOff(param.getTimeZoneOff());
|
|
incrementOrderEntity.setTimeZoneOff(param.getTimeZoneOff());
|
|
- if(incrementType.getValidTimeType() == 0){
|
|
|
|
- incrementOrderEntity.setMemberLevels("PR");
|
|
|
|
- }
|
|
|
|
- if(incrementType.getValidTimeType() == 1){
|
|
|
|
- incrementOrderEntity.setMemberLevels("SE");
|
|
|
|
|
|
+ incrementOrderEntity.setAutoPay(param.getAutoPay());
|
|
|
|
+ if(param.getAutoPay() != null && param.getAutoPay()==1){
|
|
|
|
+ incrementAutoOrderService.addOrder(user.getId(),incrementType.getId(),param.getIncrementId(),incrementOrderEntity.getOrderSn());
|
|
|
|
+ return incrementOrderEntity;
|
|
}
|
|
}
|
|
this.save(incrementOrderEntity);
|
|
this.save(incrementOrderEntity);
|
|
return incrementOrderEntity;
|
|
return incrementOrderEntity;
|
|
@@ -233,4 +267,44 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
|
|
.eq(IncrementOrder::getOrderSn,orderSn);
|
|
.eq(IncrementOrder::getOrderSn,orderSn);
|
|
return this.update(updateWrapper);
|
|
return this.update(updateWrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void addNewOrderByOrder(IncrementAutoOrder incrementAutoOrder, AutoPaypalVo order) {
|
|
|
|
+
|
|
|
|
+ IncrementOrder incrementOrder = new IncrementOrder();
|
|
|
|
+ incrementOrder.setOrderSn(order.getOrderSn());
|
|
|
|
+ incrementOrder.setAmount(new BigDecimal(order.getAmount()));
|
|
|
|
+ incrementOrder.setPayType(2);
|
|
|
|
+ incrementOrder.setPayStatus(-1);
|
|
|
|
+ incrementOrder.setUserId(incrementAutoOrder.getUserId());
|
|
|
|
+ incrementOrder.setCount(1);
|
|
|
|
+ incrementOrder.setNumber(order.getTradeNo());
|
|
|
|
+ incrementOrder.setAbroad(1);
|
|
|
|
+ incrementOrder.setStatus(incrementAutoOrder.getUserIncrementId() == null ? 1 : 2);
|
|
|
|
+ incrementOrder.setIncrementId(incrementAutoOrder.getUserIncrementId());
|
|
|
|
+ incrementOrder.setRecStatus("A");
|
|
|
|
+ incrementOrder.setCreateTime(DateUserUtil.getDate(new Date()));
|
|
|
|
+ incrementOrder.setUpdateTime(DateUserUtil.getDate(new Date()));
|
|
|
|
+ incrementOrder.setIncrementType(incrementAutoOrder.getIncrementTypeId());
|
|
|
|
+ incrementOrder.setMonthQy(1);
|
|
|
|
+ incrementOrder.setAutoPay(1);
|
|
|
|
+ incrementOrder.setAutoOrderId(incrementAutoOrder.getId());
|
|
|
|
+ incrementOrder.setTimeZoneOff(-480);
|
|
|
|
+
|
|
|
|
+ IncrementType incrementType = incrementTypeService.getById(incrementAutoOrder.getIncrementTypeId());
|
|
|
|
+ if(incrementType != null && incrementType.getValidTimeType() == 0){
|
|
|
|
+ incrementOrder.setMemberLevels("PR");
|
|
|
|
+ }
|
|
|
|
+ if(incrementType != null && incrementType.getValidTimeType() == 1){
|
|
|
|
+ incrementOrder.setMemberLevels("SE");
|
|
|
|
+ }
|
|
|
|
+ if(incrementType != null && incrementType.getPrice() != null && StringUtils.isNotBlank(order.getAmount())){
|
|
|
|
+ BigDecimal payAmount = new BigDecimal(order.getAmount());
|
|
|
|
+ BigDecimal price = incrementType.getPrice();
|
|
|
|
+ Integer monthQy = payAmount.divide(price,2, RoundingMode.HALF_UP).intValue();
|
|
|
|
+ incrementOrder.setMonthQy(monthQy <=0 ? 1 : monthQy);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.save(incrementOrder);
|
|
|
|
+ }
|
|
}
|
|
}
|