OrderTipUtils.java 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. package com.ydd.app;
  2. import com.fasterxml.jackson.core.type.TypeReference;
  3. import com.ydd.common.enums.DeliveryTypeEnums;
  4. import com.ydd.common.utils.StringUtils;
  5. import com.ydd.ecloud.core.utils.JsonMapper;
  6. import com.ydd.module.dto.OrderTipDto;
  7. import com.ydd.module.dto.SfShopDto;
  8. import com.ydd.third.common.vo.vo.order.OrderTipsVo;
  9. import org.apache.commons.collections4.CollectionUtils;
  10. import java.math.BigDecimal;
  11. import java.util.List;
  12. /**
  13. * Project:lb-server
  14. * Class:OrderTipUtils
  15. * Description:TODO
  16. * Time:2021/3/9 19:28
  17. *
  18. * @author zoe
  19. */
  20. public class OrderTipUtils {
  21. public static OrderTipsVo createOrderVo(OrderTipDto order, Integer type) {
  22. OrderTipsVo orderTipsVo = new OrderTipsVo();
  23. if (DeliveryTypeEnums.DADA.getType().equals(type)) {
  24. orderTipsVo.setLbClient(DeliveryTypeEnums.DADA.getName());
  25. /**
  26. * 订单编号
  27. * 达达
  28. * 达达:order_id 必传,第三方订单编号
  29. */
  30. orderTipsVo.setOrderNo(order.getOrderSn());
  31. /**
  32. * 小费金额
  33. * 达达
  34. * 达达:tips 必传,小费金额(单位:元)
  35. */
  36. orderTipsVo.setTips(order.getTips());
  37. /**
  38. * 订单城市区号
  39. * 达达
  40. * 达达:city_code 必传,订单城市区号
  41. */
  42. orderTipsVo.setCityCode(order.getCityCode() == null ? "0512" : order.getCityCode());
  43. orderTipsVo.setIsDirectDelivery(0);
  44. orderTipsVo.setMerchantId(order.getSourceId());
  45. }else if (DeliveryTypeEnums.DADA_YZ.getType().equals(type)) {
  46. orderTipsVo.setLbClient(DeliveryTypeEnums.DADA_YZ.getName());
  47. /**
  48. * 订单编号
  49. * 达达
  50. * 达达:order_id 必传,第三方订单编号
  51. */
  52. orderTipsVo.setOrderNo(order.getOrderSn());
  53. /**
  54. * 小费金额
  55. * 达达
  56. * 达达:tips 必传,小费金额(单位:元)
  57. */
  58. orderTipsVo.setTips(order.getTips());
  59. /**
  60. * 订单城市区号
  61. * 达达
  62. * 达达:city_code 必传,订单城市区号
  63. */
  64. orderTipsVo.setCityCode(order.getCityCode() == null ? "0512" : order.getCityCode());
  65. orderTipsVo.setIsDirectDelivery(1);
  66. orderTipsVo.setMerchantId(order.getSourceId());
  67. } else if (DeliveryTypeEnums.SHAN_SONG.getType().equals(type)) {
  68. orderTipsVo.setLbClient(DeliveryTypeEnums.SHAN_SONG.getName());
  69. /**
  70. * 订单id
  71. * 闪送:issOrderNo 必传,闪送订单编号
  72. */
  73. orderTipsVo.setOrderNo(order.getOutTradeNo());
  74. /**
  75. * 小费金额
  76. * 闪送
  77. * 闪送:additionAmount 必传,小费金额,单位:元
  78. */
  79. orderTipsVo.setTips(order.getTips());
  80. orderTipsVo.setIsShansongSH(false);
  81. if(order.getIsMine()==1){
  82. orderTipsVo.setIsShansongSH(true);
  83. orderTipsVo.setAccessToken(order.getToken());
  84. }
  85. } else if (DeliveryTypeEnums.SHUN_FENG.getType().equals(type)) {
  86. orderTipsVo.setLbClient(DeliveryTypeEnums.SHUN_FENG.getName());
  87. if (StringUtils.isNotBlank(order.getThirdShopId())) {
  88. orderTipsVo.setShopId(order.getThirdShopId());
  89. orderTipsVo.setShopType(1);
  90. } else {
  91. //匹配出顺丰shop_id
  92. List<SfShopDto> list = JsonMapper.nonEmptyMapper().fromJson(order.getShopId(), new TypeReference<List<SfShopDto>>() {
  93. });
  94. if (CollectionUtils.isNotEmpty(list)) {
  95. for (SfShopDto dto : list) {
  96. if (dto.getCity().equals(order.getCityName())) {
  97. /**
  98. * 店铺ID
  99. * 顺丰:
  100. * shop_id 必传
  101. */
  102. orderTipsVo.setShopId(dto.getShopId());
  103. orderTipsVo.setShopType(1);
  104. break;
  105. }
  106. }
  107. } else {
  108. //不设置商家店铺,默认走全国统一个人快递业务
  109. orderTipsVo.setShopId("3258674679761");
  110. orderTipsVo.setShopType(1);
  111. }
  112. }
  113. /**
  114. * 订单编号
  115. * 顺丰
  116. */
  117. orderTipsVo.setOrderNo(order.getOrderSn());
  118. /**
  119. * 订单ID类型
  120. * 顺丰
  121. * 顺丰:order_type 必传,查询订单ID类型 1、顺丰订单号 2、商家订单号1、顺丰订单号 2、商家订单号
  122. */
  123. orderTipsVo.setOrderType(2);
  124. /**
  125. * 小费金额
  126. * 顺丰
  127. * 顺丰:gratuity_fee 必传, 订单小费
  128. */
  129. orderTipsVo.setTips(order.getTips());
  130. } else if (DeliveryTypeEnums.DWD.getType().equals(type)) {
  131. orderTipsVo.setLbClient(DeliveryTypeEnums.DWD.getName());
  132. /**
  133. * 订单编号
  134. * 顺丰
  135. */
  136. orderTipsVo.setOrderNo(order.getOrderSn());
  137. /**
  138. * 总小费
  139. */
  140. orderTipsVo.setTips(order.getTips().multiply(new BigDecimal(100)));
  141. }else if (DeliveryTypeEnums.UUPT.getType().equals(type)) {
  142. orderTipsVo.setLbClient(DeliveryTypeEnums.UUPT.getName());
  143. /**
  144. * 订单编号
  145. */
  146. orderTipsVo.setOrderNo(order.getOutTradeNo());
  147. orderTipsVo.setOriginId(order.getOrderSn());
  148. /**
  149. * 总小费
  150. */
  151. orderTipsVo.setTips(order.getTips());
  152. orderTipsVo.setUuptOpenId(order.getUuptOpenId());
  153. }else if (DeliveryTypeEnums.KUAI_FU.getType().equals(type)) {
  154. orderTipsVo.setLbClient(DeliveryTypeEnums.KUAI_FU.getName());
  155. /**
  156. * 订单编号
  157. */
  158. orderTipsVo.setOrderNo(order.getOutTradeNo());
  159. orderTipsVo.setOriginId(order.getOrderSn());
  160. /**
  161. * 总小费
  162. */
  163. orderTipsVo.setTips(order.getTips());
  164. orderTipsVo.setAccessToken(order.getKfAccessToken());
  165. orderTipsVo.setIsMine(order.getIsMine());
  166. }else if (DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(type)) {
  167. orderTipsVo.setLbClient(DeliveryTypeEnums.MEI_TUAN_ZB.getName());
  168. /**
  169. * 订单编号
  170. */
  171. orderTipsVo.setOrderNo(order.getZbOrderSn());
  172. orderTipsVo.setAccessToken(order.getZbToken());
  173. /**
  174. * 总小费
  175. */
  176. orderTipsVo.setTips(order.getTips());
  177. }else if (DeliveryTypeEnums.HUO_LA_LA.getType().equals(type)){
  178. orderTipsVo.setLbClient(DeliveryTypeEnums.HUO_LA_LA.getName());
  179. orderTipsVo.setOrderNo(order.getOutTradeNo());
  180. orderTipsVo.setTips(order.getTips().multiply(new BigDecimal(100)));
  181. orderTipsVo.setAccessToken(order.getToken());
  182. }else if (DeliveryTypeEnums.MEI_TUAN.getType().equals(type)){
  183. orderTipsVo.setLbClient(DeliveryTypeEnums.MEI_TUAN.getName());
  184. orderTipsVo.setOrderNo(order.getMtOrderSn());
  185. orderTipsVo.setTips(order.getTips());
  186. orderTipsVo.setDeliveryId(order.getOrderId());
  187. }else if (DeliveryTypeEnums.FENG_NIAO.getType().equals(type)){
  188. orderTipsVo.setLbClient(DeliveryTypeEnums.FENG_NIAO.getName());
  189. orderTipsVo.setTips(order.getTips().multiply(new BigDecimal(100)));
  190. orderTipsVo.setOrderNo(order.getOrderSn());// 外部订单号
  191. /**
  192. * 蜂鸟V3,
  193. * 商户ID
  194. */
  195. orderTipsVo.setMerchantId(order.getMerchantId());//"3742995"); //"3640883");
  196. /**
  197. * 闪送,蜂鸟V3
  198. * 商户Token
  199. */
  200. orderTipsVo.setAccessToken(order.getToken());
  201. }else if (DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType().equals(type)) {
  202. orderTipsVo.setLbClient(DeliveryTypeEnums.MEI_TUAN_SG_ZB.getName());
  203. /**
  204. * 订单编号
  205. */
  206. orderTipsVo.setOrderNo(order.getZbOrderSn());
  207. orderTipsVo.setAccessToken(order.getZbToken());
  208. /**
  209. * 总小费
  210. */
  211. orderTipsVo.setTips(order.getTips());
  212. }else if (DeliveryTypeEnums.FENG_NIAO_PT.getType().equals(type)){
  213. orderTipsVo.setLbClient(DeliveryTypeEnums.FENG_NIAO_PT.getName());
  214. orderTipsVo.setTips(order.getTips().multiply(new BigDecimal(100)));
  215. orderTipsVo.setOrderNo(order.getOrderSn());// 外部订单号
  216. /**
  217. * 蜂鸟V3,
  218. * 商户ID
  219. */
  220. orderTipsVo.setMerchantId(order.getMerchantId());//"3742995"); //"3640883");
  221. /**
  222. * 闪送,蜂鸟V3
  223. * 商户Token
  224. */
  225. orderTipsVo.setAccessToken(order.getToken());
  226. }
  227. return orderTipsVo;
  228. }
  229. }