|
|
@@ -19,6 +19,7 @@ import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.snowflake.Sequence;
|
|
|
import com.cyksj.common.util.Codec;
|
|
|
import com.cyksj.common.util.Jsons;
|
|
|
+import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.config.zfb.AliPayClientFactory;
|
|
|
import com.cyksj.config.zfb.BaseZfbConfig;
|
|
|
import com.cyksj.config.zfb.ZfbProductCode;
|
|
|
@@ -32,6 +33,7 @@ import com.cyksj.mapper.vip.VipOrderDonDeductRelationMapper;
|
|
|
import com.cyksj.mapper.vip.VipOrderDonMapper;
|
|
|
import com.cyksj.mapper.vip.VipUserMapper;
|
|
|
import com.cyksj.model.dto.AliPayParams;
|
|
|
+import com.cyksj.model.dto.GalaxyCoinConsumeRateDto;
|
|
|
import com.cyksj.model.dto.GalaxyCoinPayConfigDto;
|
|
|
import com.cyksj.model.dto.VipDeductDto;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
@@ -423,6 +425,11 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
|
|
|
handlerDistributeOrder(orderDon);
|
|
|
this.saveOrUpdate(orderDon);
|
|
|
}
|
|
|
+
|
|
|
+ //扣除下单银河币
|
|
|
+ userGalaxyCoinService.handleUserGalaxyCoinOrderNotify(orderDon.getId(), orderDon.getUserId(), orderDon.getOrderNo(), Boolean.TRUE);
|
|
|
+ //银河币返回
|
|
|
+ returnGalaxyCoin(orderDon);
|
|
|
}
|
|
|
|
|
|
private void sendVipTicketToUser(Long userId, Date vipStartTime, Date vipExpiryTime, List<Long> userIds, Long orderId) {
|
|
|
@@ -848,4 +855,30 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
|
|
|
throw BusinessRuntimeException.getInstance("银河币抵扣异常,请刷新页面重试");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public void returnGalaxyCoin(VipOrderDon orderDon) {
|
|
|
+ if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ Long userId = orderDon.getUserId();
|
|
|
+ BigDecimal money = orderDon.getMoney();
|
|
|
+ SysConfig galaxyCoinConsumeReturnRateConfig = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
|
|
|
+ .eq(SysConfig::getSysKey, Constant.GALAXY_COIN_CONSUME_RETURN_RATE_KEY)
|
|
|
+ .last("limit 1"));
|
|
|
+ BigDecimal retrunGalaxyCoin = BigDecimal.ZERO;
|
|
|
+ if (galaxyCoinConsumeReturnRateConfig != null && StrUtil.isNotEmpty(galaxyCoinConsumeReturnRateConfig.getSysValue())) {
|
|
|
+ try {
|
|
|
+ GalaxyCoinConsumeRateDto galaxyCoinConsumeRateDto = Jsons.parseObject(galaxyCoinConsumeReturnRateConfig.getSysValue(), GalaxyCoinConsumeRateDto.class);
|
|
|
+ BigDecimal moneyAvg = galaxyCoinConsumeRateDto.getMoney();
|
|
|
+ //返回银河币倍数
|
|
|
+ BigDecimal number = money.divide(moneyAvg);
|
|
|
+ retrunGalaxyCoin = number.multiply(galaxyCoinConsumeRateDto.getGalaxyCoin());
|
|
|
+ //发送银河币并记录
|
|
|
+ userGalaxyCoinService.sendGalaxyCoinRecord(userId, retrunGalaxyCoin.intValue(), PointsRecordConst.ORDER_CASHBACK, false);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("发送会员用户:{}银河币points:{}错误:{}", userId, retrunGalaxyCoin, StringUtil.getErrorText(e));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|