ShopEntityUtils.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. package com.ydd.app;
  2. import com.ydd.common.enums.DeliveryTypeEnums;
  3. import com.ydd.module.domain.DspDelivery;
  4. import com.ydd.module.domain.Merchant;
  5. import com.ydd.module.domain.Shop;
  6. import com.ydd.third.common.vo.shop.ShopVo;
  7. import java.math.BigDecimal;
  8. /**
  9. * Project:lb-server
  10. * Class:OrderEntityUtils
  11. * Description:TODO
  12. * Time:2021/3/8 16:14
  13. *
  14. * @author zoe
  15. */
  16. public class ShopEntityUtils {
  17. public static ShopVo createShopVo(Shop shop, DspDelivery delivery, Merchant merchant) {
  18. ShopVo shopVo = new ShopVo();
  19. String poiAddress = shop.getPoiAddress() == null ? "" : shop.getPoiAddress();
  20. if (DeliveryTypeEnums.DADA.getType().equals(delivery.getType())) {
  21. shopVo.setLbClient(DeliveryTypeEnums.DADA.getName());
  22. /**
  23. * 门店名称
  24. * 达达:station_name,门店名称,必传
  25. * */
  26. shopVo.setShopName(shop.getName());
  27. /**
  28. * 业务类型
  29. * 达达:business,必传,业务类型
  30. * (食品小吃-1,饮料-2,鲜花-3,文印票务-8,便利店-9,水果生鲜-13,同城电商-19, 医药-20,蛋糕-21,酒品-24,小商品市场-25,服装-26,汽修零配-27,
  31. * 数码-28,小龙虾-29,火锅-51,其他-5)
  32. */
  33. shopVo.setBusiness(merchant.getDdCcategory());
  34. /**
  35. * 城市名称
  36. * 达达:city_name 必传,城市名称(如,上海)
  37. */
  38. shopVo.setCityName(shop.getCityName());
  39. /**
  40. * 区域名称
  41. * 达达:area_name 必传, 区域名称(如,浦东新区)
  42. */
  43. shopVo.setAreaName(shop.getDistrictName());
  44. /**
  45. * 门店地址
  46. * 达达:station_address 必传,门店地址
  47. */
  48. shopVo.setShopAddress(poiAddress + shop.getAddress() + shop.getStreet());
  49. /**
  50. *门店经度
  51. * 达达:lng 必传,门店经度,店铺经度
  52. */
  53. shopVo.setShopLng(new BigDecimal(shop.getLng()));
  54. /**
  55. * 门店纬度
  56. * 达达:lat 必传,门店纬度
  57. */
  58. shopVo.setShopLat(new BigDecimal(shop.getLat()));
  59. /**
  60. * 联系人姓名
  61. * 达达:contact_name 必传 联系人姓名
  62. */
  63. shopVo.setContactName(shop.getContactName());
  64. /**
  65. * 联系人电话
  66. * 达达:phone 必传,联系人电话
  67. */
  68. shopVo.setContactPhone(shop.getMobile());
  69. } else if (DeliveryTypeEnums.DADA_YZ.getType().equals(delivery.getType())) {
  70. shopVo.setLbClient(DeliveryTypeEnums.DADA_YZ.getName());
  71. /**
  72. * 门店名称
  73. * 达达:station_name,门店名称,必传
  74. * */
  75. shopVo.setShopName(shop.getName());
  76. /**
  77. * 业务类型
  78. * 达达:business,必传,业务类型
  79. * (食品小吃-1,饮料-2,鲜花-3,文印票务-8,便利店-9,水果生鲜-13,同城电商-19, 医药-20,蛋糕-21,酒品-24,小商品市场-25,服装-26,汽修零配-27,
  80. * 数码-28,小龙虾-29,火锅-51,其他-5)
  81. */
  82. shopVo.setBusiness(merchant.getDdCcategory());
  83. /**
  84. * 城市名称
  85. * 达达:city_name 必传,城市名称(如,上海)
  86. */
  87. shopVo.setCityName(shop.getCityName());
  88. /**
  89. * 区域名称
  90. * 达达:area_name 必传, 区域名称(如,浦东新区)
  91. */
  92. shopVo.setAreaName(shop.getDistrictName());
  93. /**
  94. * 门店地址
  95. * 达达:station_address 必传,门店地址
  96. */
  97. shopVo.setShopAddress(poiAddress + shop.getAddress() + shop.getStreet());
  98. /**
  99. *门店经度
  100. * 达达:lng 必传,门店经度,店铺经度
  101. */
  102. shopVo.setShopLng(new BigDecimal(shop.getLng()));
  103. /**
  104. * 门店纬度
  105. * 达达:lat 必传,门店纬度
  106. */
  107. shopVo.setShopLat(new BigDecimal(shop.getLat()));
  108. /**
  109. * 联系人姓名
  110. * 达达:contact_name 必传 联系人姓名
  111. */
  112. shopVo.setContactName(shop.getContactName());
  113. /**
  114. * 联系人电话
  115. * 达达:phone 必传,联系人电话
  116. */
  117. shopVo.setContactPhone(shop.getMobile());
  118. } else if (DeliveryTypeEnums.SHAN_SONG.getType().equals(delivery.getType())) {
  119. shopVo.setLbClient(DeliveryTypeEnums.SHAN_SONG.getName());
  120. /**
  121. * 门店名称
  122. * 闪送:storeName门店名称,店铺名称
  123. * */
  124. shopVo.setShopName(shop.getName());
  125. /**
  126. * 业务类型
  127. * 闪送:goodType,必传,店铺业务类型
  128. * 1-文件广告 3-电子产品 5-蛋糕 6-快餐水果 7-鲜花绿植 8-海鲜水产 9-汽车配件 10-其他 11-宠物 12-母婴 13-医药健康 14-教育
  129. */
  130. shopVo.setBusiness(merchant.getSsProductType());
  131. /**
  132. * 城市名称
  133. * 闪送:cityName 必传,城市名称(如,上海)
  134. */
  135. shopVo.setCityName(shop.getCityName());
  136. /**
  137. * 店铺地址
  138. * 闪送:address 必传,店铺地址
  139. */
  140. shopVo.setShopAddress(poiAddress + shop.getAddress());
  141. /**
  142. * 详细地址
  143. * 闪送:addressDetail,门牌号
  144. */
  145. shopVo.setShopAddressDetail(shop.getStreet());
  146. /**
  147. *门店经度
  148. * 闪送:longitude必传,店铺经度
  149. */
  150. shopVo.setShopLng(new BigDecimal(shop.getLng()));
  151. /**
  152. * 门店纬度
  153. * 达达:latitude 必传,店铺纬度
  154. */
  155. shopVo.setShopLat(new BigDecimal(shop.getLat()));
  156. /**
  157. * 联系人电话
  158. * 达达:phone 必传,店铺联系人手机号/座机
  159. */
  160. shopVo.setContactPhone(shop.getMobile());
  161. /**
  162. * 1.保存 2.更新,默认为1
  163. */
  164. shopVo.setOperationType(1);
  165. } else if (DeliveryTypeEnums.SHUN_FENG.getType().equals(delivery.getType())) {
  166. shopVo.setLbClient(DeliveryTypeEnums.SHUN_FENG.getName());
  167. } else if (DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(delivery.getType())) {
  168. shopVo.setLbClient(DeliveryTypeEnums.MEI_TUAN_ZB.getName());
  169. } else if (DeliveryTypeEnums.UUPT.getType().equals(delivery.getType())) {
  170. shopVo.setLbClient(DeliveryTypeEnums.UUPT.getName());
  171. } else if (DeliveryTypeEnums.KUAI_FU.getType().equals(delivery.getType())) {
  172. shopVo.setLbClient(DeliveryTypeEnums.KUAI_FU.getName());
  173. } else if (DeliveryTypeEnums.HUO_LA_LA.getType().equals(delivery.getType())) {
  174. shopVo.setLbClient(DeliveryTypeEnums.HUO_LA_LA.getName());
  175. } else if (DeliveryTypeEnums.DWD.getType().equals(delivery.getType())) {
  176. shopVo.setLbClient(DeliveryTypeEnums.DWD.getName());
  177. } else if (DeliveryTypeEnums.FENG_NIAO.getType().equals(delivery.getType())) {
  178. shopVo.setLbClient(DeliveryTypeEnums.FENG_NIAO.getName());
  179. /**
  180. * 蜂鸟V3
  181. * 蜂鸟V3:branch_shop_name 必传 门店分店名
  182. */
  183. shopVo.setHeadShopName(shop.getName());
  184. /**
  185. * 蜂鸟V3
  186. * 蜂鸟V3:branch_shop_name 必传 门店分店名
  187. */
  188. shopVo.setBranchShopName(shop.getName());
  189. /**
  190. * 蜂鸟V3
  191. * 外部门店编码
  192. * 蜂鸟V3:out_shop_code 必传 外部门店编码
  193. */
  194. shopVo.setOutShopCode(shop.getCode());
  195. /**
  196. * 蜂鸟,蜂鸟V3
  197. * 门店类型
  198. * 蜂鸟V3 chainstore_type 不必传, 1为正式门店,2为测试门店 不传时默认为1
  199. */
  200. shopVo.setShopType(1);
  201. /**
  202. * 品类
  203. * 蜂鸟V3
  204. * 蜂鸟V3:category_id 必传 门店类目 按二级类目表编码传入,二级类目表编码附表后
  205. */
  206. shopVo.setCategory(Integer.parseInt(merchant.getCategoryName()));
  207. /**
  208. * 门店地址
  209. * 蜂鸟V3:address 必传,门店地址
  210. */
  211. shopVo.setShopAddress(poiAddress + shop.getAddress() + shop.getStreet());
  212. /**
  213. *门店经度
  214. * 蜂鸟V3:longitude 必传,门店经度
  215. *
  216. */
  217. shopVo.setShopLng(new BigDecimal(shop.getLng()));
  218. /**
  219. * 门店纬度
  220. * 蜂鸟V3:latitude,必传,门店纬度
  221. */
  222. shopVo.setShopLat(new BigDecimal(shop.getLat()));
  223. /**
  224. * 联系人姓名
  225. * 蜂鸟V3: owner_name 必传 门店拥有人姓名
  226. */
  227. shopVo.setContactName("殷宝珠");
  228. /**
  229. * 联系人电话
  230. * 蜂鸟V3:contact_phone 必传,门店联系方式
  231. */
  232. shopVo.setContactPhone(shop.getMobile());
  233. /**
  234. * 蜂鸟V3
  235. * 门店拥有人身份证号
  236. * 蜂鸟V3:owner_id_num 必传 门店拥有人身份证号
  237. */
  238. shopVo.setOwnerIdNum("34252919570501502X");
  239. /**
  240. * 蜂鸟V3
  241. * 身份证正面
  242. * 蜂鸟V3:owner_id_pic_front_hash 必传 身份证正面,调用图片上传接口后返回的id
  243. */
  244. shopVo.setOwnerIdPicFrontHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  245. /**
  246. * 蜂鸟V3
  247. * 门店拥有人手持身份证、营业执照图片
  248. * 蜂鸟V3:handheld_licence_pic_hash 门店拥有人手持身份证、营业执照图片
  249. * 调用图片上传接口后返回的id
  250. */
  251. shopVo.setHandheldLicencePicHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  252. /**
  253. * 蜂鸟V3
  254. * 身份证反面
  255. * 蜂鸟V3:owner_id_pic_back_hash 必传 身份证反面,调用图片上传接口后返回的id
  256. */
  257. shopVo.setOwnerIdPicBackHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  258. /**
  259. * 蜂鸟V3
  260. * 统一社会信用代码
  261. * 蜂鸟V3 credit_code 必传 统一社会信用代码
  262. */
  263. shopVo.setCreditCode("91320505MA22564J7P");
  264. /**
  265. * 蜂鸟V3
  266. * 营业执照图片
  267. * 蜂鸟V3 business_licence_pic_hash 必传 营业执照图片 调用图片上传接口后返回的id
  268. */
  269. shopVo.setBusinessLicencePicHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  270. /**
  271. * 蜂鸟V3,
  272. * 商户ID
  273. */
  274. shopVo.setMerchantId(delivery.getShopId()); //"3640883");
  275. /**
  276. * 闪送,蜂鸟V3
  277. * 商户Token
  278. */
  279. shopVo.setAccessToken(delivery.getAuthToken());
  280. /**
  281. * 经营类目需要食品经营许可的必传
  282. */
  283. shopVo.setFoodLicensePicHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  284. } else if (DeliveryTypeEnums.MEI_TUAN.getType().equals(delivery.getType())){
  285. shopVo.setLbClient(DeliveryTypeEnums.MEI_TUAN.getName());
  286. /**
  287. * 门店编码
  288. * 美团
  289. * 美团:shop_id,必传,取货门店id,即合作方向美团提供的门店id
  290. */
  291. shopVo.setShopId(shop.getCode());
  292. /**
  293. * 门店名称
  294. * 美团
  295. * 美团:shop_name 必传,门店名称 说明:门店名称格式请按照 【XX品牌-XX店】填写,例:百果园-望京店,注:该名称需与实体门店门牌保持一致,保证骑手取货可确认门店
  296. * 蜂鸟:chain_store_name 必传,门店名称(支持汉字、符号、字母的组合),门店名称重复时,请确保推单时带入合法且唯一的门店编码,否则将订单推送失败,蜂鸟配送开放平台无责。测试门店名称必须含有“测试”或“test”文字,正式门店名称不得含有“测试”或“test”文字!否则影响结算!
  297. */
  298. shopVo.setShopName(shop.getName());
  299. /**
  300. * 一级品类
  301. * 美团
  302. * 美团:category,必传,一级品类,见附件品类代码表 说明:品类需按门店真实配送品类选择
  303. *
  304. */
  305. String[] categorys = merchant.getMtCcategoryName().split(",");
  306. shopVo.setCategory(Integer.parseInt(categorys[0]));
  307. /**
  308. * 二级品类
  309. * 美团
  310. * 美团:second_category,必传,二级品类,见附件品类代码表 说明:品类需按门店真实配送品类选择
  311. */
  312. shopVo.setSecondCategory(Integer.parseInt(categorys[1]));
  313. /**
  314. * 联系人姓名
  315. * 美团
  316. * 美团:contact_name 必传,门店联系人姓名
  317. */
  318. shopVo.setContactName(shop.getContactName());
  319. /**
  320. * 联系人电话
  321. * 美团
  322. * 美团:contact_phone 必传,联系电话
  323. */
  324. shopVo.setContactPhone(shop.getMobile());
  325. /**
  326. * 门店地址
  327. * 美团,蜂
  328. * 美团:shop_address,必传,门店地址
  329. */
  330. shopVo.setShopAddress(poiAddress + shop.getAddress() + shop.getStreet());
  331. /**
  332. * 详细地址
  333. * 美团
  334. * 美团:shop_address_detail,不必传,门牌号
  335. */
  336. // shopVo.setShopAddressDetail("");
  337. /**
  338. *门店经度
  339. * 美团
  340. * 美团:shop_lng,必传,门店经度(高德),
  341. */
  342. shopVo.setShopLng(new BigDecimal(shop.getLng()));
  343. /**
  344. * 门店纬度
  345. * 美团
  346. * 美团:shop_lat,必传,门店纬度(高德)
  347. */
  348. shopVo.setShopLat(new BigDecimal(shop.getLat()));
  349. /**
  350. * 配送服务代码
  351. * 美团
  352. * 美团:delivery_service_codes 必传
  353. * 配送服务代码,详情见合同 1)服务包 飞速达:4002 快速达:4011 及时达:4012 集中送:4013 跑腿B帮送:4031 例如:4011,4012(多个英文逗号隔开) 2)新服务产品 具体可参考新服务产品列表。(多个英文逗号隔开)
  354. * 默认光速达 光速达-45-> 100001,光速达-40->100000,光速达-50->100002,光速达-55->100003
  355. */
  356. shopVo.setDeliveryServiceCodes("100004");// 等确认后再改
  357. /**
  358. * 营业时间
  359. * 美团
  360. * 美团:营业时间 例:[{"beginTime":"00:00","endTime":"24:00"}] 注:传入后美团根据区域可配送时间取交集时间作为门店配送时间
  361. */
  362. shopVo.setBusinessHours("[{\"beginTime\":\"00:00\",\"endTime\":\"24:00\"}]");
  363. }else if (DeliveryTypeEnums.FENG_NIAO_PT.getType().equals(delivery.getType())) {
  364. shopVo.setLbClient(DeliveryTypeEnums.FENG_NIAO_PT.getName());
  365. /**
  366. * 蜂鸟V3
  367. * 蜂鸟V3:branch_shop_name 必传 门店分店名
  368. */
  369. shopVo.setHeadShopName(shop.getName());
  370. /**
  371. * 蜂鸟V3
  372. * 蜂鸟V3:branch_shop_name 必传 门店分店名
  373. */
  374. shopVo.setBranchShopName(shop.getName());
  375. /**
  376. * 蜂鸟V3
  377. * 外部门店编码
  378. * 蜂鸟V3:out_shop_code 必传 外部门店编码
  379. */
  380. shopVo.setOutShopCode(shop.getCode());
  381. /**
  382. * 蜂鸟,蜂鸟V3
  383. * 门店类型
  384. * 蜂鸟V3 chainstore_type 不必传, 1为正式门店,2为测试门店 不传时默认为1
  385. */
  386. shopVo.setShopType(1);
  387. /**
  388. * 品类
  389. * 蜂鸟V3
  390. * 蜂鸟V3:category_id 必传 门店类目 按二级类目表编码传入,二级类目表编码附表后
  391. */
  392. shopVo.setCategory(Integer.parseInt(merchant.getCategoryName()));
  393. /**
  394. * 门店地址
  395. * 蜂鸟V3:address 必传,门店地址
  396. */
  397. shopVo.setShopAddress(poiAddress + shop.getAddress() + shop.getStreet());
  398. /**
  399. *门店经度
  400. * 蜂鸟V3:longitude 必传,门店经度
  401. *
  402. */
  403. shopVo.setShopLng(new BigDecimal(shop.getLng()));
  404. /**
  405. * 门店纬度
  406. * 蜂鸟V3:latitude,必传,门店纬度
  407. */
  408. shopVo.setShopLat(new BigDecimal(shop.getLat()));
  409. /**
  410. * 联系人姓名
  411. * 蜂鸟V3: owner_name 必传 门店拥有人姓名
  412. */
  413. shopVo.setContactName("殷宝珠");
  414. /**
  415. * 联系人电话
  416. * 蜂鸟V3:contact_phone 必传,门店联系方式
  417. */
  418. shopVo.setContactPhone(shop.getMobile());
  419. /**
  420. * 蜂鸟V3
  421. * 门店拥有人身份证号
  422. * 蜂鸟V3:owner_id_num 必传 门店拥有人身份证号
  423. */
  424. shopVo.setOwnerIdNum("34252919570501502X");
  425. /**
  426. * 蜂鸟V3
  427. * 身份证正面
  428. * 蜂鸟V3:owner_id_pic_front_hash 必传 身份证正面,调用图片上传接口后返回的id
  429. */
  430. shopVo.setOwnerIdPicFrontHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  431. /**
  432. * 蜂鸟V3
  433. * 门店拥有人手持身份证、营业执照图片
  434. * 蜂鸟V3:handheld_licence_pic_hash 门店拥有人手持身份证、营业执照图片
  435. * 调用图片上传接口后返回的id
  436. */
  437. shopVo.setHandheldLicencePicHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  438. /**
  439. * 蜂鸟V3
  440. * 身份证反面
  441. * 蜂鸟V3:owner_id_pic_back_hash 必传 身份证反面,调用图片上传接口后返回的id
  442. */
  443. shopVo.setOwnerIdPicBackHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  444. /**
  445. * 蜂鸟V3
  446. * 统一社会信用代码
  447. * 蜂鸟V3 credit_code 必传 统一社会信用代码
  448. */
  449. shopVo.setCreditCode("91320505MA22564J7P");
  450. /**
  451. * 蜂鸟V3
  452. * 营业执照图片
  453. * 蜂鸟V3 business_licence_pic_hash 必传 营业执照图片 调用图片上传接口后返回的id
  454. */
  455. shopVo.setBusinessLicencePicHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  456. /**
  457. * 蜂鸟V3,
  458. * 商户ID
  459. */
  460. shopVo.setMerchantId(delivery.getShopId()); //"3640883");
  461. /**
  462. * 闪送,蜂鸟V3
  463. * 商户Token
  464. */
  465. shopVo.setAccessToken(delivery.getAuthToken());
  466. /**
  467. * 经营类目需要食品经营许可的必传
  468. */
  469. shopVo.setFoodLicensePicHash("https://ecloud-cdn.51sssd.com/20210604/364b8355956740a281f676221d1a7a9b.jpg");
  470. }
  471. return shopVo;
  472. }
  473. }