UserBusinessFrontServiceImpl.java 21 KB

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