UserBusinessFrontServiceImpl.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. package com.cyksj.service.distribute.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.cyksj.common.constant.Constant;
  5. import com.cyksj.mapper.OrderDonMapper;
  6. import com.cyksj.mapper.UserDistributeSpecialMapper;
  7. import com.cyksj.mapper.UserRenewChangeTicketRecordMapper;
  8. import com.cyksj.mapper.manage.distribute.UserBusinessDefaultRateConfigMapper;
  9. import com.cyksj.mapper.manage.distribute.UserDistributeBusinessOrderDonRecordMapper;
  10. import com.cyksj.mapper.manage.distribute.UserDistributeBusinessRateMapper;
  11. import com.cyksj.mapper.shop.YhShopUserDistributeBusinessOrderDonRecordMapper;
  12. import com.cyksj.mapper.shop.YhShopUserDistributeBusinessRateMapper;
  13. import com.cyksj.model.entity.*;
  14. import com.cyksj.redis.RedisService;
  15. import com.cyksj.service.distribute.UserBusinessFrontService;
  16. import com.ejlchina.searcher.BeanSearcher;
  17. import lombok.RequiredArgsConstructor;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.dao.DuplicateKeyException;
  20. import org.springframework.stereotype.Service;
  21. import java.math.BigDecimal;
  22. /*
  23. *项目名: netflix
  24. *文件名: UserBusinessFrontServiceImpl
  25. *创建者: JavaZou
  26. *创建时间:2023/3/23 14:20
  27. */
  28. @Service
  29. @RequiredArgsConstructor
  30. @Slf4j
  31. public class UserBusinessFrontServiceImpl implements UserBusinessFrontService {
  32. private final BeanSearcher beanSearcher;
  33. private final UserDistributeBusinessRateMapper userDistributeBusinessRateMapper;
  34. private final OrderDonMapper orderDonMapper;
  35. private final UserDistributeBusinessOrderDonRecordMapper businessOrderDonRecordMapper;
  36. private final UserRenewChangeTicketRecordMapper renewChangeTicketRecordMapper;
  37. private final RedisService redisService;
  38. private final UserBusinessDefaultRateConfigMapper defaultRateConfigMapper;
  39. private final UserDistributeSpecialMapper UserDistributeSpecialMapper;
  40. private final YhShopUserDistributeBusinessRateMapper yhShopUserDistributeBusinessRateMapper;
  41. private final YhShopUserDistributeBusinessOrderDonRecordMapper yhShopBusinessOrderDonRecordMapper;
  42. @Override
  43. public void taskDistributeRateBenefits(Long sharedId, Long businessId, Integer goodsType, OrderDon order, Integer distributeRate) {
  44. LambdaQueryWrapper<UserDistributeBusinessRate> wrapper = Wrappers.lambdaQuery(UserDistributeBusinessRate.class)
  45. .eq(UserDistributeBusinessRate::getBusinessId, businessId)
  46. .eq(UserDistributeBusinessRate::getGoodsId, order.getGoodsId())
  47. .last("limit 1");
  48. if (goodsType == 1) {
  49. wrapper.eq(UserDistributeBusinessRate::getSkuId, order.getSkuId());
  50. }
  51. UserDistributeBusinessRate businessRate = userDistributeBusinessRateMapper.selectOne(wrapper);
  52. //06-21 奈飞平台商务比例特殊处理
  53. UserDistributeSpecial userDistributeSpecial = UserDistributeSpecialMapper.selectOne(Wrappers.lambdaQuery(UserDistributeSpecial.class)
  54. .eq(UserDistributeSpecial::getSkuId, order.getSkuId())
  55. .eq(UserDistributeSpecial::getSharedId, sharedId)
  56. .eq(UserDistributeSpecial::getBusinessId, businessId)
  57. .last("limit 1"));
  58. if (userDistributeSpecial != null) {
  59. businessRate.setFirstOrderRate(userDistributeSpecial.getFirstRate());
  60. businessRate.setRenewOrderRate(userDistributeSpecial.getRenewRate());
  61. }
  62. if (businessRate != null) {
  63. if (order.getOrderType() == 1) {
  64. //实物商务分销提成 无首单
  65. if (goodsType != 1) {
  66. UserDistributeBusinessOrderDonRecord record = saveBusinessTakeMoneyRecord(order, businessId, sharedId, businessRate.getFirstOrderRate(), null, distributeRate);
  67. if (record == null) {
  68. return;
  69. }
  70. businessOrderDonRecordMapper.insert(record);
  71. log.info("开始给商务人员:{}分配分销人:{}分销的用户:{}实物:{}提成", businessId, sharedId, order.getUserId(), order.getId());
  72. return;
  73. }
  74. //首单
  75. log.info("商务首单orderId:{}分销分配提成开始", order.getId());
  76. //用户之前是否下过单
  77. Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
  78. .eq(OrderDon::getUserId, order.getUserId())
  79. .ne(OrderDon::getId, order.getId()).notIn(OrderDon::getStatus, Constant.noOrderAllStatus));
  80. if (count == 0) {
  81. //是否享受过该用户带来的首单 提成
  82. UserDistributeBusinessOrderDonRecord record = businessOrderDonRecordMapper.selectOne(Wrappers.lambdaQuery(UserDistributeBusinessOrderDonRecord.class)
  83. .eq(UserDistributeBusinessOrderDonRecord::getBusinessId, businessId)
  84. .eq(UserDistributeBusinessOrderDonRecord::getUserId, order.getUserId())
  85. .eq(UserDistributeBusinessOrderDonRecord::getOrderType, 1)
  86. .eq(UserDistributeBusinessOrderDonRecord::getStatus, UserDistributeBusinessOrderDonRecord.Status.success)
  87. .last("limit 1"));
  88. if (record == null) {
  89. try {
  90. boolean isSuccess = redisService.setNx(RedisService.key.BUSINESS_FIRST_ORDER_USER_KEY.getNameFormat(order.getUserId()), businessId, RedisService.key.BUSINESS_FIRST_ORDER_USER_KEY.getTimeout());
  91. if (isSuccess) {
  92. //首单虚物规格 提成
  93. record = saveBusinessTakeMoneyRecord(order, businessId, sharedId, businessRate.getFirstOrderRate(), null, distributeRate);
  94. if (record == null) {
  95. return;
  96. }
  97. businessOrderDonRecordMapper.insert(record);
  98. log.info("开始给商务人员:{}分配分销人:{}分销的用户:{}首单:{}提成", businessId, sharedId, order.getUserId(), order.getId());
  99. redisService.del(RedisService.key.BUSINESS_FIRST_ORDER_USER_KEY.getNameFormat(order.getUserId()));
  100. }
  101. } catch (DuplicateKeyException e) {
  102. log.error("商务:{}重复获取分销人:{}分销的用户:{}首单:{}提成", businessId, businessId, order.getUserId(), order.getId());
  103. }
  104. }
  105. }
  106. }
  107. //续费
  108. if (order.getOrderType() == 2) {
  109. log.info("商务首单续费分销分配提成开始");
  110. //是否享受过该用户首单 提成
  111. UserDistributeBusinessOrderDonRecord record = businessOrderDonRecordMapper.selectOne(Wrappers.lambdaQuery(UserDistributeBusinessOrderDonRecord.class)
  112. .eq(UserDistributeBusinessOrderDonRecord::getBusinessId, businessId)
  113. .eq(UserDistributeBusinessOrderDonRecord::getUserId, order.getUserId())
  114. .eq(UserDistributeBusinessOrderDonRecord::getOrderType, 1)
  115. .eq(UserDistributeBusinessOrderDonRecord::getStatus, UserDistributeBusinessOrderDonRecord.Status.success)
  116. .last("limit 1"));
  117. if (record != null) {
  118. log.info("开始给商务人员:{}分配用户:{}首单续费提成", businessId, order.getUserId());
  119. //是否更换过车票规格座位号
  120. Long preRelationId = record.getPreRelationId();
  121. Long relationId = order.getRelationId();
  122. if (relationId.equals(preRelationId)) {
  123. try {
  124. //分配首单续费提成
  125. record = saveBusinessTakeMoneyRecord(order, businessId, sharedId, null, businessRate.getRenewOrderRate(), distributeRate);
  126. if (record == null) {
  127. return;
  128. }
  129. businessOrderDonRecordMapper.insert(record);
  130. log.info("开始给商务人员:{}分配分销人:{}分销的用户:{}续费首单:{}提成", businessId, sharedId, order.getUserId(), order.getId());
  131. } catch (DuplicateKeyException e) {
  132. log.error("商务:{}重复获取分销人:{}分销的用户:{}续费首单:{}提成", businessId, businessId, order.getUserId(), order.getId());
  133. }
  134. } else {
  135. UserRenewChangeTicketRecord renewChangeTicketRecord = renewChangeTicketRecordMapper.selectOne(Wrappers.lambdaQuery(UserRenewChangeTicketRecord.class)
  136. .eq(UserRenewChangeTicketRecord::getUserId, order.getUserId())
  137. .eq(UserRenewChangeTicketRecord::getAfterRelationId, relationId)
  138. .last("limit 1"));
  139. if (renewChangeTicketRecord != null && renewChangeTicketRecord.getPreRelationId().equals(preRelationId)) {
  140. try {
  141. //分配首单续费更换车位后提成
  142. record = saveBusinessTakeMoneyRecord(order, businessId, sharedId, null, businessRate.getRenewOrderRate(), distributeRate);
  143. if (record == null) {
  144. return;
  145. }
  146. businessOrderDonRecordMapper.insert(record);
  147. log.info("开始给商务人员:{}分配分销人:{}分销的用户:{}续费首单:{}更换后车位提成", businessId, sharedId, order.getUserId(), order.getId());
  148. } catch (DuplicateKeyException e) {
  149. log.error("商务:{}重复获取分销人:{}分销的用户:{}续费首单:{}更换后车位提成", businessId, businessId, order.getUserId(), order.getId());
  150. }
  151. }
  152. }
  153. }
  154. }
  155. }
  156. }
  157. /**
  158. * 店铺商务提成
  159. */
  160. @Override
  161. public void taskYhShopDistributeRateBenefits(Long shopUserId, Long businessId, Integer goodsType, OrderDon order, Integer distributeRate) {
  162. LambdaQueryWrapper<YhShopUserDistributeBusinessRate> wrapper = Wrappers.lambdaQuery(YhShopUserDistributeBusinessRate.class)
  163. .eq(YhShopUserDistributeBusinessRate::getBusinessId, businessId)
  164. .eq(YhShopUserDistributeBusinessRate::getGoodsId, order.getGoodsId())
  165. .last("limit 1");
  166. //虚拟平台
  167. if (goodsType == 1) {
  168. wrapper.eq(YhShopUserDistributeBusinessRate::getSkuId, order.getSkuId());
  169. }
  170. YhShopUserDistributeBusinessRate businessRate = yhShopUserDistributeBusinessRateMapper.selectOne(wrapper);
  171. if (businessRate != null) {
  172. if (order.getOrderType() == 1) {
  173. //实物商务分销提成 无首单
  174. if (goodsType != 1) {
  175. YhShopUserDistributeBusinessOrderDonRecord record = saveYhShopBusinessTakeMoneyRecord(order, businessId, shopUserId, businessRate.getFirstOrderRate(), null, distributeRate);
  176. if (record == null) {
  177. return;
  178. }
  179. yhShopBusinessOrderDonRecordMapper.insert(record);
  180. log.info("开始给店铺商务人员:{}分配分销人:{}分销的用户:{}实物:{}提成", businessId, shopUserId, order.getUserId(), order.getId());
  181. return;
  182. }
  183. //首单
  184. log.info("店铺商务首单orderId:{}分销分配提成开始", order.getId());
  185. //用户之前是否下过单
  186. Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
  187. .eq(OrderDon::getUserId, order.getUserId())
  188. .ne(OrderDon::getId, order.getId()).notIn(OrderDon::getStatus, Constant.noOrderAllStatus));
  189. if (count == 0) {
  190. //是否享受过该用户带来的首单 提成
  191. YhShopUserDistributeBusinessOrderDonRecord record = yhShopBusinessOrderDonRecordMapper.selectOne(Wrappers.lambdaQuery(YhShopUserDistributeBusinessOrderDonRecord.class)
  192. .eq(YhShopUserDistributeBusinessOrderDonRecord::getBusinessId, businessId)
  193. .eq(YhShopUserDistributeBusinessOrderDonRecord::getUserId, order.getUserId())
  194. .eq(YhShopUserDistributeBusinessOrderDonRecord::getOrderType, 1)
  195. .eq(YhShopUserDistributeBusinessOrderDonRecord::getStatus, UserDistributeBusinessOrderDonRecord.Status.success)
  196. .last("limit 1"));
  197. if (record == null) {
  198. try {
  199. boolean isSuccess = redisService.setNx(RedisService.key.BUSINESS_FIRST_ORDER_USER_KEY.getNameFormat(order.getUserId()), businessId, RedisService.key.BUSINESS_FIRST_ORDER_USER_KEY.getTimeout());
  200. if (isSuccess) {
  201. //首单虚物规格 提成
  202. record = saveYhShopBusinessTakeMoneyRecord(order, businessId, shopUserId, businessRate.getFirstOrderRate(), null, distributeRate);
  203. if (record == null) {
  204. return;
  205. }
  206. yhShopBusinessOrderDonRecordMapper.insert(record);
  207. log.info("开始给店铺商务人员:{}分配分销人:{}分销的用户:{}首单:{}提成", businessId, shopUserId, order.getUserId(), order.getId());
  208. redisService.del(RedisService.key.BUSINESS_FIRST_ORDER_USER_KEY.getNameFormat(order.getUserId()));
  209. }
  210. } catch (DuplicateKeyException e) {
  211. log.error("店铺商务:{}重复获取分销人:{}分销的用户:{}首单:{}提成", businessId, businessId, order.getUserId(), order.getId());
  212. }
  213. }
  214. }
  215. }
  216. //续费
  217. if (order.getOrderType() == 2) {
  218. log.info("店铺商务首单续费分销分配提成开始");
  219. //是否享受过该用户首单 提成
  220. YhShopUserDistributeBusinessOrderDonRecord record = yhShopBusinessOrderDonRecordMapper.selectOne(Wrappers.lambdaQuery(YhShopUserDistributeBusinessOrderDonRecord.class)
  221. .eq(YhShopUserDistributeBusinessOrderDonRecord::getBusinessId, businessId)
  222. .eq(YhShopUserDistributeBusinessOrderDonRecord::getUserId, order.getUserId())
  223. .eq(YhShopUserDistributeBusinessOrderDonRecord::getOrderType, 1)
  224. .eq(YhShopUserDistributeBusinessOrderDonRecord::getStatus, UserDistributeBusinessOrderDonRecord.Status.success)
  225. .last("limit 1"));
  226. if (record != null) {
  227. log.info("开始给店铺商务人员:{}分配用户:{}首单续费提成", businessId, order.getUserId());
  228. //是否更换过车票规格座位号
  229. Long preRelationId = record.getPreRelationId();
  230. Long relationId = order.getRelationId();
  231. if (relationId.equals(preRelationId)) {
  232. try {
  233. //分配首单续费提成
  234. record = saveYhShopBusinessTakeMoneyRecord(order, businessId, shopUserId, null, businessRate.getRenewOrderRate(), distributeRate);
  235. if (record == null) {
  236. return;
  237. }
  238. yhShopBusinessOrderDonRecordMapper.insert(record);
  239. log.info("开始给店铺商务人员:{}分配分销人:{}分销的用户:{}续费首单:{}提成", businessId, shopUserId, order.getUserId(), order.getId());
  240. } catch (DuplicateKeyException e) {
  241. log.error("店铺商务:{}重复获取分销人:{}分销的用户:{}续费首单:{}提成", businessId, businessId, order.getUserId(), order.getId());
  242. }
  243. } else {
  244. UserRenewChangeTicketRecord renewChangeTicketRecord = renewChangeTicketRecordMapper.selectOne(Wrappers.lambdaQuery(UserRenewChangeTicketRecord.class)
  245. .eq(UserRenewChangeTicketRecord::getUserId, order.getUserId())
  246. .eq(UserRenewChangeTicketRecord::getAfterRelationId, relationId)
  247. .last("limit 1"));
  248. if (renewChangeTicketRecord != null && renewChangeTicketRecord.getPreRelationId().equals(preRelationId)) {
  249. try {
  250. //分配首单续费更换车位后提成
  251. record = saveYhShopBusinessTakeMoneyRecord(order, businessId, shopUserId, null, businessRate.getRenewOrderRate(), distributeRate);
  252. if (record == null) {
  253. return;
  254. }
  255. yhShopBusinessOrderDonRecordMapper.insert(record);
  256. log.info("开始给店铺商务人员:{}分配分销人:{}分销的用户:{}续费首单:{}更换后车位提成", businessId, shopUserId, order.getUserId(), order.getId());
  257. } catch (DuplicateKeyException e) {
  258. log.error("店铺商务:{}重复获取分销人:{}分销的用户:{}续费首单:{}更换后车位提成", businessId, businessId, order.getUserId(), order.getId());
  259. }
  260. }
  261. }
  262. }
  263. }
  264. }
  265. }
  266. /**
  267. * 保存商务分配提成记录
  268. */
  269. public UserDistributeBusinessOrderDonRecord saveBusinessTakeMoneyRecord(OrderDon order, Long businessId, Long sharedId, Integer firstOrderRate, Integer renewOrderRate, Integer distributeRate) {
  270. UserBusinessDefaultRateConfig defaultGoodsRateConfig = defaultRateConfigMapper.selectOne(Wrappers.lambdaQuery(UserBusinessDefaultRateConfig.class)
  271. .eq(UserBusinessDefaultRateConfig::getGoodsId, order.getGoodsId()).last("limit 1"));
  272. if (defaultGoodsRateConfig == null) {
  273. log.info("系统默认商务分销配置未配置,businessId:{},orderId:{}", businessId, order.getId());
  274. return null;
  275. }
  276. UserDistributeBusinessOrderDonRecord record = new UserDistributeBusinessOrderDonRecord();
  277. record.setBusinessId(businessId);
  278. record.setUserId(order.getUserId());
  279. record.setSharedId(sharedId);
  280. record.setOrderType(order.getOrderType());
  281. record.setOrderCreatedTime(order.getCreatedTime());
  282. record.setOrderId(order.getId());
  283. record.setPreRelationId(order.getRelationId());
  284. //是否超过默认配置平台比例
  285. Integer defaultGoodsRate = defaultGoodsRateConfig.getRate();
  286. //首单提成比例
  287. BigDecimal orderMoney = order.getMoney();
  288. BigDecimal takeMoney = BigDecimal.ZERO;
  289. if (firstOrderRate != null) {
  290. if (distributeRate > defaultGoodsRate) {
  291. if (defaultGoodsRateConfig.getIsPlatPay()) {
  292. log.info("首单,平台承担商务businessId:{}配置分销者sharedId:{}超过平台goodsId:{}标准分销比例:{}", businessId, sharedId, order.getGoodsId(), defaultGoodsRate);
  293. } else {
  294. firstOrderRate -= distributeRate - defaultGoodsRate;
  295. log.info("商务businessId:{}配置分销者sharedId:{}比例超过标准比例,可获取首单提成比例为:{}", businessId, sharedId, firstOrderRate);
  296. if (firstOrderRate <= 0) {
  297. log.info("商务businessId:{}获得分销者sharedId:{}首单提成比例不大于0", businessId, sharedId);
  298. return null;
  299. }
  300. }
  301. }
  302. record.setRate(firstOrderRate);
  303. BigDecimal firstRate = BigDecimal.valueOf(firstOrderRate).divide(BigDecimal.valueOf(100));
  304. takeMoney = orderMoney.multiply(firstRate);
  305. }
  306. if (renewOrderRate != null) {
  307. if (distributeRate > defaultGoodsRate) {
  308. if (defaultGoodsRateConfig.getIsPlatPay()) {
  309. log.info("首单续费,平台承担商务businessId:{}配置分销者sharedId:{}超过平台goodsId:{}标准分销比例:{}", businessId, sharedId, order.getGoodsId(), defaultGoodsRate);
  310. } else {
  311. renewOrderRate -= distributeRate - defaultGoodsRate;
  312. log.info("商务businessId:{}配置分销者sharedId:{}比例超过标准比例,可获取首单续费提成比例为:{}", businessId, sharedId, renewOrderRate);
  313. if (renewOrderRate <= 0) {
  314. log.info("商务businessId:{}获得分销者sharedId:{}首单续费提成比例不大于0", businessId, sharedId);
  315. return null;
  316. }
  317. }
  318. }
  319. record.setRate(renewOrderRate);
  320. BigDecimal renewRate = BigDecimal.valueOf(renewOrderRate).divide(BigDecimal.valueOf(100));
  321. takeMoney = orderMoney.multiply(renewRate);
  322. }
  323. record.setTakeMoney(takeMoney);
  324. return record;
  325. }
  326. /**
  327. * 保存店铺商务分配提成记录
  328. */
  329. public YhShopUserDistributeBusinessOrderDonRecord saveYhShopBusinessTakeMoneyRecord(OrderDon order, Long businessId, Long shopUserId, Integer firstOrderRate, Integer renewOrderRate, Integer distributeRate) {
  330. UserBusinessDefaultRateConfig defaultGoodsRateConfig = defaultRateConfigMapper.selectOne(Wrappers.lambdaQuery(UserBusinessDefaultRateConfig.class)
  331. .eq(UserBusinessDefaultRateConfig::getGoodsId, order.getGoodsId()).last("limit 1"));
  332. if (defaultGoodsRateConfig == null) {
  333. log.info("系统默认商务分销配置未配置,businessId:{},orderId:{}", businessId, order.getId());
  334. return null;
  335. }
  336. YhShopUserDistributeBusinessOrderDonRecord record = new YhShopUserDistributeBusinessOrderDonRecord();
  337. record.setBusinessId(businessId);
  338. record.setUserId(order.getUserId());
  339. record.setShopUserId(shopUserId);
  340. record.setOrderType(order.getOrderType());
  341. record.setOrderCreatedTime(order.getCreatedTime());
  342. record.setOrderId(order.getId());
  343. record.setPreRelationId(order.getRelationId());
  344. //是否超过默认配置平台比例
  345. Integer defaultGoodsRate = defaultGoodsRateConfig.getRate();
  346. //首单提成比例
  347. BigDecimal orderMoney = order.getMoney();
  348. BigDecimal takeMoney = BigDecimal.ZERO;
  349. if (firstOrderRate != null) {
  350. if (distributeRate > defaultGoodsRate) {
  351. if (defaultGoodsRateConfig.getIsPlatPay()) {
  352. log.info("首单,平台承担商务businessId:{}配置分销者sharedId:{}超过平台goodsId:{}标准分销比例:{}", businessId, shopUserId, order.getGoodsId(), defaultGoodsRate);
  353. } else {
  354. firstOrderRate -= distributeRate - defaultGoodsRate;
  355. log.info("商务businessId:{}配置分销者sharedId:{}比例超过标准比例,可获取首单提成比例为:{}", businessId, shopUserId, firstOrderRate);
  356. if (firstOrderRate <= 0) {
  357. log.info("商务businessId:{}获得分销者sharedId:{}首单提成比例不大于0", businessId, shopUserId);
  358. return null;
  359. }
  360. }
  361. }
  362. record.setRate(firstOrderRate);
  363. BigDecimal firstRate = BigDecimal.valueOf(firstOrderRate).divide(BigDecimal.valueOf(100));
  364. takeMoney = orderMoney.multiply(firstRate);
  365. }
  366. if (renewOrderRate != null) {
  367. if (distributeRate > defaultGoodsRate) {
  368. if (defaultGoodsRateConfig.getIsPlatPay()) {
  369. log.info("首单续费,平台承担商务businessId:{}配置分销者sharedId:{}超过平台goodsId:{}标准分销比例:{}", businessId, shopUserId, order.getGoodsId(), defaultGoodsRate);
  370. } else {
  371. renewOrderRate -= distributeRate - defaultGoodsRate;
  372. log.info("商务businessId:{}配置分销者sharedId:{}比例超过标准比例,可获取首单续费提成比例为:{}", businessId, shopUserId, renewOrderRate);
  373. if (renewOrderRate <= 0) {
  374. log.info("商务businessId:{}获得分销者sharedId:{}首单续费提成比例不大于0", businessId, shopUserId);
  375. return null;
  376. }
  377. }
  378. }
  379. record.setRate(renewOrderRate);
  380. BigDecimal renewRate = BigDecimal.valueOf(renewOrderRate).divide(BigDecimal.valueOf(100));
  381. takeMoney = orderMoney.multiply(renewRate);
  382. }
  383. record.setTakeMoney(takeMoney);
  384. return record;
  385. }
  386. }