ExternalDockPolyApiHandler.java 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038
  1. package com.iamberry.wechat.handles.polyapi;
  2. import com.alibaba.fastjson.JSON;
  3. import com.iamberry.app.tool.des.MD5;
  4. import com.iamberry.wechat.core.entity.order.Order;
  5. import com.iamberry.wechat.core.entity.order.OrderItem;
  6. import com.iamberry.wechat.core.entity.product.Product;
  7. import com.iamberry.wechat.core.entity.product.ProductColor;
  8. import com.iamberry.wechat.core.entity.receive.ChargerReceive;
  9. import com.iamberry.wechat.face.order.AdminOrderService;
  10. import com.iamberry.wechat.face.porduct.ProductService;
  11. import com.iamberry.wechat.face.receive.ChargReceiveService;
  12. import com.iamberry.wechat.tools.NameUtils;
  13. import com.iamberry.wechat.tools.ResultInfo;
  14. import com.iamberry.wechat.tools.SendMessageUtil;
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Controller;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.ResponseBody;
  21. import javax.servlet.http.HttpServletRequest;
  22. import java.awt.*;
  23. import java.text.ParseException;
  24. import java.text.SimpleDateFormat;
  25. import java.util.ArrayList;
  26. import java.util.HashMap;
  27. import java.util.List;
  28. import java.util.Map;
  29. /**
  30. * 对接菠萝派接口
  31. */
  32. @Controller
  33. public class ExternalDockPolyApiHandler {
  34. private static Logger logger = LoggerFactory.getLogger(ExternalDockPolyApiHandler.class);
  35. @Autowired
  36. private AdminOrderService adminOrderService;
  37. @Autowired
  38. private ProductService productService;
  39. @Autowired
  40. private SendMessageUtil sendMessageUtil;
  41. @Autowired
  42. private ChargReceiveService chargReceiveService;
  43. /**
  44. * DES对称加密
  45. */
  46. private static MD5 md5 = new MD5();
  47. private final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  48. /**
  49. * 请求示例:
  50. * appkey=438b2f6ff103422a98a9349507293bb2
  51. * &method=Differ.JH.Business.GetOrder
  52. * &bizcontent={"OrderStatus":"JH_01","PlatOrderNo":"20182270207","StartTime":"2016-07-26 10:59:10","EndTime":"2016-08-02 10:59:10","TimeType":"JH_02","PageIndex":"1","PageSize":"20"}
  53. * &token=9415c33b04d24c7dae320b0185f42fb0
  54. * &sign=347e07a557e2720256e64e1e828eff1b
  55. */
  56. /**
  57. * 请求响应
  58. * @param request
  59. * @return
  60. * @throws Exception
  61. */
  62. @ResponseBody
  63. @RequestMapping("/select_order")
  64. public Map<String,Object> getOrder(HttpServletRequest request) throws Exception {
  65. Map<String,Object> map = new HashMap<String,Object>();
  66. Map<String,Object> requstMap = new HashMap<String,Object>();
  67. try{
  68. requstMap = verification(request);
  69. }catch (Exception e){
  70. map.put("code","40000");
  71. map.put("message","请求未能识别");
  72. map.put("submessage","参数有误");
  73. map.put("numtotalorder",0);
  74. return map;
  75. }
  76. if(requstMap == null ){
  77. map.put("code","40000");
  78. map.put("message","请求未能识别");
  79. map.put("submessage","参数有误");
  80. map.put("numtotalorder",0);
  81. return map;
  82. }
  83. String method = request.getParameter("method");
  84. switch (method){
  85. case "Differ.JH.Business.GetOrder" : //订单下载
  86. map = selectSalesOrder(requstMap);
  87. break;
  88. case "Differ.JH.Business.CheckRefundStatus" : //退款检测 :即使没有退款功能,该接口也需要有,否则影响发货流程,可以统一返回没有退款)
  89. map = selectOrderRefundStatus(requstMap);
  90. break;
  91. case "Differ.JH.Business.Send" : //订单发货
  92. map = orderDelivery(requstMap);
  93. break;
  94. case "Differ.JH.Business.UpdateSellerMemo" : //修改订单备注
  95. map = updateOrderRemark(requstMap);
  96. break;
  97. case "Differ.JH.Business.DownloadProduct" : //商品下载
  98. //map = downProduct(requstMap);
  99. break;
  100. case "Differ.JH.Business.SyncStock" : //商品库存同步
  101. break;
  102. case "Differ.JH.Business.GetRefund" : //退货退款单下载
  103. map = downRefundOrder(requstMap);
  104. break;
  105. default:
  106. map.put("code","40000");
  107. map.put("message","请求未能识别");
  108. map.put("submessage","参数有误");
  109. map.put("numtotalorder",0);
  110. break;
  111. }
  112. return map;
  113. }
  114. /**
  115. * 订单查询(订单下载)
  116. * @param requstMap
  117. * @return
  118. */
  119. private Map<String,Object> selectSalesOrder(Map<String,Object> requstMap){
  120. Map<String,Object> map = new HashMap<String,Object>();
  121. /*订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)*/
  122. String orderStatus = (String) requstMap.get("OrderStatus");
  123. String platOrderNo = (String) requstMap.get("PlatOrderNo"); //平台订单号,若不为空,则代表查询单个订单的数据,查询单个订单时,可不传时间、状态等
  124. String startTime = (String) requstMap.get("StartTime");
  125. String endTime = (String) requstMap.get("EndTime");
  126. String timeType = (String) requstMap.get("TimeType"); //订单时间类别(订单修改时间=JH_01,订单创建时间=JH_02) (管家抓单默认JH_01)
  127. Integer pageIndex = Integer.valueOf(requstMap.get("PageIndex").toString());
  128. Integer pageSize = Integer.valueOf(requstMap.get("PageSize").toString());
  129. Order order = new Order();
  130. if(platOrderNo != null && !"".equals(platOrderNo)){
  131. order.setSalesOrderid(platOrderNo);
  132. }
  133. // TODO: 2018/2/7 只查询代发货的信息,
  134. if(orderStatus == null || "".equals(orderStatus) || "JH_01".equals(orderStatus) || "JH_03".equals(orderStatus)
  135. || "JH_04".equals(orderStatus) || "JH_05".equals(orderStatus) ){
  136. List<Map<String,Object>> orders = new ArrayList<>();
  137. map.put("code","10000");
  138. map.put("message","SUCCESS");
  139. map.put("orders",orders);
  140. map.put("numtotalorder",0);
  141. }else if("JH_99".equals(orderStatus)){
  142. orderStatus = "JH_02";
  143. }
  144. //设置订单状态
  145. this.setStatus(order,orderStatus);
  146. //只查询创建时间的订单
  147. order.setSelectDateType(2);
  148. try {
  149. order.setBeginDate(sdf.parse(startTime));
  150. order.setEndDate(sdf.parse(endTime));
  151. }catch (ParseException e){
  152. logger.info("=========日期转换失败=========");
  153. map.put("code","40000");
  154. map.put("message","查询出错");
  155. map.put("submessage","查询出错");
  156. map.put("numtotalorder",0);
  157. return map;
  158. }
  159. order.getPage().setPageSize(pageSize);
  160. order.getPage().setPageNumber(pageIndex);
  161. order.getPage().initRecordBegin();
  162. Integer orderNum = adminOrderService.selectOrderNum(order);
  163. List<Order> orderList = adminOrderService.selectShopOrderByPola(order);
  164. List<Map<String,Object>> orders = new ArrayList<>();
  165. map.put("code","10000");
  166. map.put("message","SUCCESS");
  167. String orderId = "";
  168. for(Order or : orderList){
  169. List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderIdToPola(or.getSalesOrderid());
  170. or.setOrderItemList(orderItemList);
  171. try {
  172. orders.add(getOrderMap(or));
  173. orderId += or.getSalesOrderid() + ",";
  174. }catch (Exception e){
  175. e.printStackTrace();
  176. logger.info("订单无法被转换为接口所需要的数据!");
  177. }
  178. }
  179. /*加入领取充电器的订单--start*/
  180. // ChargerReceive chargerReceive = new ChargerReceive();
  181. // chargerReceive.setReceiveStatus(2);
  182. // List<ChargerReceive> chargerReceiveList = chargReceiveService.getChargerReceiveList(chargerReceive);
  183. // for (ChargerReceive cr : chargerReceiveList){
  184. // orders.add(getReceive(cr));
  185. // }
  186. /*加入领取充电器的订单--end*/
  187. map.put("orders",orders);
  188. map.put("numtotalorder",orderNum);
  189. logger.info("------订单下载,返回订单个数:" + orderList.size() + "--------- 订单id:" + orderId + "---------");
  190. return map;
  191. }
  192. /**
  193. * 订单退款状态查询
  194. * @param requstMap
  195. * @return
  196. */
  197. private Map<String,Object> selectOrderRefundStatus(Map<String,Object> requstMap){
  198. Map<String,Object> map = new HashMap<String,Object>();
  199. String orderId = (String) requstMap.get("OrderID"); //平台订单号
  200. Order order;
  201. if(orderId != null && !"".equals(orderId)){
  202. order = adminOrderService.selectShopOrderByPolaById(orderId);
  203. if(order == null){
  204. map.put("code","40000");
  205. map.put("message","未查询到该订单");
  206. map.put("submessage","未查询到该订单");
  207. return map;
  208. }
  209. }else{
  210. map.put("code","40000");
  211. map.put("message","订单号不能为空");
  212. map.put("submessage","订单号不能为空");
  213. return map;
  214. }
  215. map.put("refundStatus",this.getOrderRefundStatus(order.getSalesStatus())); //退款状态 必填
  216. String refundStatusdescription = "";
  217. if(order.getSalesReturnDes() != null){
  218. refundStatusdescription = order.getSalesReturnDes();
  219. }
  220. map.put("refundStatusdescription",refundStatusdescription); //选填 退款说明
  221. List<Map<String,Object>> childrenrefundStatus = new ArrayList<>();
  222. List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderIdToPola(order.getSalesOrderid());
  223. for(OrderItem orderItem : orderItemList){
  224. Map<String,Object> childrenrefund = new HashMap<String, Object>();
  225. childrenrefund.put("refundno",""); //退款订单号 可选
  226. childrenrefund.put("ProductName",orderItem.getItemProductName()); //退款商品名称 可选
  227. childrenrefund.put("refundStatus",this.getOrderRefundStatus(order.getSalesStatus())); //退款状态 可选
  228. childrenrefund.put("refundStatusdescription",refundStatusdescription); //选填 退款说明
  229. childrenrefundStatus.add(childrenrefund);
  230. }
  231. logger.info("------退款检测,查询订单id:" + order.getSalesOrderid() + "--订单状态:" + order.getSalesStatus() + "---------");
  232. map.put("childrenrefundStatus",childrenrefundStatus); //子订单退款说明
  233. map.put("code","10000");
  234. map.put("message","返回订单退款状态成功,订单id:"+ order.getSalesOrderid() +"订单状态为:"+ this.getDescription(order.getSalesStatus()));
  235. map.put("submessage","返回订单退款状态成功");
  236. return map;
  237. }
  238. /**
  239. * 订单发货
  240. * @param requstMap
  241. * @return
  242. */
  243. private Map<String,Object> orderDelivery(Map<String,Object> requstMap){
  244. Map<String,Object> map = new HashMap<String,Object>();
  245. /*订单发货类别(自己联系物流=JH_01,在线下单=JH_02,无需物流=JH_03,自定义物流=JH_04,家装发货=JH_05,国际物流=JH_06)*/
  246. String SendType = (String) requstMap.get("SendType");
  247. String LogisticName = (String) requstMap.get("LogisticName"); //快递名称
  248. String LogisticType = (String) requstMap.get("LogisticType"); //快递类别(JH前缀为国内快递 ,JHI为国际快递)详见物流公司代码对照表
  249. String LogisticNo = (String) requstMap.get("LogisticNo"); //快递运单号
  250. String PlatOrderNo = (String) requstMap.get("PlatOrderNo"); //平台订单号
  251. Integer IsSplit = Integer.valueOf(requstMap.get("IsSplit").toString()) ; //是否拆单发货(拆单=1 ,不拆单=0)
  252. /*平台子订单交易单号,支持订单拆分为不同商品不同数量发货,
  253. 多个商品用"|"隔开, 为空则视为整单发货
  254. 包含子订单编号和商品发货数量,格式suborderno1:count1|suborderno2:count2发货数量需为大于0的整数
  255. */
  256. String SubPlatOrderNo = (String) requstMap.get("SubPlatOrderNo");
  257. String SenderName = (String) requstMap.get("SenderName"); //发货人姓名
  258. String SenderTel = (String) requstMap.get("SenderTel"); //发货人联系电话
  259. String SenderAddress = (String) requstMap.get("SenderAddress"); //发货人地址(省市区之间以空格分隔)
  260. Integer IsHwgFlag = Integer.valueOf(requstMap.get("IsHwgFlag").toString()); //是否为海外购(是=1;否=0)
  261. Order order;
  262. if(PlatOrderNo != null && !"".equals(PlatOrderNo)) {
  263. order = adminOrderService.selectShopOrderByPolaById(PlatOrderNo);
  264. if(order == null){
  265. map.put("code","40000");
  266. map.put("message","未查询到该订单");
  267. map.put("submessage","未查询到该订单");
  268. return map;
  269. }
  270. }else{
  271. map.put("code","40000");
  272. map.put("message","订单号不能为空");
  273. map.put("submessage","订单号不能为空");
  274. return map;
  275. }
  276. Boolean flag = false;
  277. if(order.getSalesStatus() == 2){ //判断订单是否支持发货
  278. Order or = new Order();
  279. or.setSalesOrderid(PlatOrderNo);
  280. or.setSalesPostFirm(this.selectFirm(LogisticType)); //设置快递公司
  281. or.setSalesPostNum(LogisticNo); //设置快递单号
  282. or.setSalesStatus(5); //发货
  283. flag = adminOrderService.deliverOrderByOrderId(or);
  284. //给用户发送消息-已发货的通知
  285. String firm = this.selectFirm(LogisticType); //快递公司
  286. String num = LogisticNo; //快递单号
  287. try {
  288. /*微信推送发货信息*/
  289. sendMessageUtil.orderSendSuccess(
  290. "尊敬的朵粉,您的订单已发货,物流信息:",
  291. order.getSalesOrderid(),
  292. SendMessageUtil.hashmap.get(firm),
  293. num,
  294. order.getSalesAddressInfo(),
  295. "如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",
  296. order.getSalesOpenid(),
  297. ResultInfo.ORDER_DETAIL+order.getSalesOrderid()
  298. );
  299. } catch (Exception e) {
  300. logger.info("订单号:"+ order.getSalesOrderid() +"的订单已发货,发送微信消息失败!");
  301. logger.info("失败原因:订单编号"+order.getSalesOrderid() + "快递公司:"+SendMessageUtil.hashmap.get(firm) +"快递单号"+num+"地址" +order.getSalesAddressInfo()+"openid:"+order.getSalesOpenid()+"remark:"+ResultInfo.ORDER_DETAIL+order.getSalesOrderid());
  302. }
  303. }
  304. logger.info("---- 订单发货,发货订单id:" + order.getSalesOrderid() + "-- 订单状态:" + order.getSalesStatus() + "-----是否发货成功:"+ flag);
  305. if(flag){
  306. map.put("code","10000");
  307. map.put("message","订单发货成功");
  308. map.put("submessage","订单发货成功");
  309. }else{
  310. logger.info("订单发货失败,不支持发货操作,订单id:" + order.getSalesOrderid());
  311. map.put("code","40000");
  312. map.put("message","参数有误");
  313. map.put("submessage","订单不支持发货操作");
  314. }
  315. return map;
  316. }
  317. /**
  318. * 修改备注
  319. * @param requstMap
  320. * @return
  321. */
  322. private Map<String,Object> updateOrderRemark(Map<String,Object> requstMap){
  323. Map<String,Object> map = new HashMap<String,Object>();
  324. String orderId = (String) requstMap.get("PlatOrderNo"); //订单id
  325. String remark = (String) requstMap.get("SellerMemo"); //备注
  326. //卖家旗帜(无=JH_None,灰=JH_Gray,红=JH_Red,黄=JH_Yellow,绿=JH_Green,蓝=JH_Blue,紫=JH_Purple)
  327. String sellerFlag = (String) requstMap.get("SellerFlag");
  328. Order order = new Order();
  329. order.setSalesOrderid(orderId);
  330. if(orderId != null && !"".equals(orderId)) {
  331. order = adminOrderService.selectShopOrderByPolaById(orderId);
  332. if(order == null){
  333. map.put("code","40000");
  334. map.put("message","未查询到该订单");
  335. map.put("submessage","未查询到该订单");
  336. return map;
  337. }
  338. }else{
  339. map.put("code","40000");
  340. map.put("message","订单号不能为空");
  341. map.put("submessage","订单号不能为空");
  342. return map;
  343. }
  344. Order or = new Order();
  345. or.setSalesOrderid(orderId);
  346. or.setSalesUserRemark(remark);
  347. Integer flag = adminOrderService.updateOrderByPola(or);
  348. if(flag > 0){
  349. map.put("code","10000");
  350. map.put("message","修改订单备注成功");
  351. map.put("submessage","修改订单备注成功");
  352. }else{
  353. logger.info("修改订单备注失败,订单id:" + order.getSalesOrderid());
  354. map.put("code","40000");
  355. map.put("message","参数有误");
  356. map.put("submessage","修改订单备注失败");
  357. }
  358. return map;
  359. }
  360. /**
  361. * 退货退款单下载
  362. * @param requstMap
  363. * @return
  364. */
  365. private Map<String,Object> downRefundOrder(Map<String,Object> requstMap){
  366. Map<String,Object> map = new HashMap<String,Object>();
  367. String beginTime = (String) requstMap.get("BeginTime"); //开始时间
  368. String endTime = (String) requstMap.get("EndTime"); //结束时间
  369. String pageIndex = (String) requstMap.get("PageIndex"); //页码(默认值:1)
  370. String pageSize = (String) requstMap.get("PageSize"); //每页条数(默认值:10)
  371. // map.put("code","10000");
  372. // map.put("message","退货退款单下载");
  373. // map.put("submessage","退货退款单下载");
  374. return map;
  375. }
  376. /**
  377. * 获取商品
  378. * @param requstMap
  379. * @return
  380. */
  381. private Map<String,Object> downProduct(Map<String,Object> requstMap){
  382. Map<String,Object> map = new HashMap<String,Object>();
  383. Integer productId = null;
  384. String ProductId = requstMap.get("ProductId").toString();
  385. if(ProductId != null && !"".equals(ProductId) ){
  386. productId = Integer.valueOf(ProductId); //可选,商品外部商家编码(注,网店管家目前尚未支持此参数的查询)
  387. }
  388. String productName = (String) requstMap.get("ProductName"); //商品名称
  389. String status = (String) requstMap.get("Status"); //商品状态(已上架商品=JH_01,已下架商品=JH_02,所有商品=JH_99)
  390. Integer pageIndex = Integer.valueOf(requstMap.get("PageIndex").toString()) ; //开始时间
  391. Integer pageSize = Integer.valueOf(requstMap.get("PageSize").toString()); //开始时间
  392. Product product = new Product();
  393. if(status == null || "".equals(status) || "JH_99".equals(status)){
  394. product.setProductStatus(1);
  395. }else if("JH_02".equals(status)){
  396. List<Map<String,Object>> goodslist = new ArrayList<>();
  397. map.put("code","40000");
  398. map.put("totalcount",0);
  399. map.put("goodslist",goodslist);
  400. map.put("message","获取商品集合成功");
  401. map.put("submessage","获取商品集合成功");
  402. return map;
  403. }
  404. product.setProductId(productId);
  405. product.getPage().setPageSize(pageSize);
  406. product.getPage().setPageNumber(pageIndex);
  407. List<Product> productList = productService.selectAllProductInfo(product);
  408. Integer num = productService.selectAllProductNum(product);
  409. if(num < 1){
  410. num = 1;
  411. }
  412. map.put("totalcount",num); //商品总数量(默认值:1)
  413. List<Map<String,Object>> goodslist = new ArrayList<>();
  414. for (Product pt : productList){
  415. Map<String,Object> goods = new HashMap<String,Object>();
  416. goods.put("PlatProductID",String.valueOf(pt.getProductId())); //平台商品ID 必填
  417. goods.put("name",pt.getProductName()); //商品名称 必填
  418. //外部商家编码(注:若与管家对接,这里需要返回与管家商品相匹配的编号,方便管家商品与平台商品的匹配)
  419. goods.put("OuterID",String.valueOf(pt.getProductId())); //
  420. double discount = pt.getProductDiscount().intValue() / 100;
  421. goods.put("price",discount); //商品价格
  422. // TODO: 2018/2/8 商品库存待确定
  423. goods.put("num",10000); //商品数量
  424. goods.put("pictureurl",""); //图片URL 可选
  425. goods.put("whsecode",""); //商品所在仓库编号 可选
  426. List<ProductColor> colors = pt.getColorList(); //获取颜色集合
  427. List<Map<String,Object>> colorList = new ArrayList<>();
  428. for(ProductColor productColor : colors){
  429. Map<String,Object> colorMap = new HashMap<String,Object>();
  430. colorMap.put("SkuID",String.valueOf(productColor.getColorId())); //平台规格ID
  431. // TODO: 2018/2/21 判断是否是货号编码
  432. //规格外部商家编码(注:若与管家对接,这里需要返回与管家商品相匹配的编号,方便管家商品与平台商品的匹配)
  433. colorMap.put("skuOuterID",productColor.getColorPolyCode());
  434. double colorDiscount = productColor.getColorDiscount().intValue() / 100;
  435. colorMap.put("skuprice",colorDiscount); //规格价格
  436. colorMap.put("skuQuantity",10000); //规格数量
  437. colorMap.put("skuname",productColor.getColorName()); //规格名称
  438. colorMap.put("colors",""); //规格属性 可选
  439. colorMap.put("skupictureurl",""); //规格图片URL 可选
  440. colorList.add(colorMap);
  441. }
  442. goods.put("skus",colorList); //规格集合
  443. goodslist.add(goods);
  444. }
  445. map.put("goodslist",goodslist);
  446. map.put("code","10000");
  447. map.put("message","获取商品集合成功");
  448. map.put("submessage","获取商品集合成功");
  449. return map;
  450. }
  451. /**
  452. * 获取快递公司代号,
  453. * @param LogisticType
  454. * @return
  455. */
  456. private String selectFirm(String LogisticType){
  457. switch (LogisticType){
  458. case "JH_001": //EMS
  459. return "ems";
  460. case "JH_002": //圆通
  461. return "yto";
  462. case "JH_003": //韵达
  463. return "yunda";
  464. case "JH_004": //天天快递
  465. return "ttkdex";
  466. case "JH_005": //申通
  467. return "sto";
  468. case "JH_006": //中通
  469. return "zto";
  470. case "JH_007": //宅急送
  471. return "zjs";
  472. // case "JH_008": //快捷快递
  473. // return "";
  474. // case "JH_009": //全峰快递
  475. // return "";
  476. // case "JH_010": //国通快递
  477. // return "";
  478. // case "JH_011": //德邦物流
  479. // return "";
  480. case "JH_012": //百世汇通
  481. return "htky";
  482. // case "JH_013": //优速快递
  483. // return "";
  484. case "JH_014": //顺丰
  485. return "sf";
  486. // case "JH_015": //中铁快运
  487. // return "";
  488. case "JH_019": //龙邦速递
  489. return "longbanwuliu";
  490. case "JH_028": //汇通快运
  491. return "htky";
  492. // case "JH_037": //邮政包裹平邮
  493. // return "";
  494. // case "JH_046": //京东快递
  495. // return "";
  496. case "JH_092": //EMS经济快递
  497. return "ems";
  498. // case "JH_115": //万象
  499. // return "";
  500. // case "JH_091": //百世物流
  501. // return "";
  502. default:
  503. return LogisticType;
  504. }
  505. }
  506. /**
  507. * 查询退款状态
  508. *
  509. * 本系统状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货 6:申请退货中
  510. * 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
  511. *
  512. * 退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,
  513. * 买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
  514. *
  515. * @param status
  516. * @return
  517. */
  518. private String getOrderRefundStatus(Integer status){
  519. switch (status){
  520. case 0:
  521. return "JH_07";
  522. case 1:
  523. return "JH_07";
  524. case 2:
  525. return "JH_07";
  526. case 3:
  527. return "JH_01";
  528. case 4:
  529. return "JH_06";
  530. case 5:
  531. return "JH_07";
  532. case 6:
  533. return "JH_01";
  534. case 7:
  535. return "JH_02";
  536. case 8:
  537. return "JH_06";
  538. case 9:
  539. return "JH_07";
  540. case 10:
  541. return "JH_07";
  542. case 11:
  543. return "JH_07";
  544. case 12:
  545. return "JH_07";
  546. default:
  547. return "JH_07";
  548. }
  549. }
  550. /***
  551. * 订单下载 拼接map
  552. * 如果不用传参数请去掉,否则有可能会报错
  553. * @param order
  554. * @return
  555. */
  556. private Map<String,Object> getOrderMap(Order order){
  557. String[] addressInfo = order.getSalesAddressInfo().split("-");
  558. String town = ""; //获取街道
  559. if(addressInfo.length > 3){
  560. Integer qu = order.getSalesAddressInfo().indexOf(addressInfo[3]);
  561. town = order.getSalesAddressInfo().substring(qu,order.getSalesAddressInfo().length());
  562. }
  563. Map<String,Object> orderMap = new HashMap<String,Object>();
  564. orderMap.put("PlatOrderNo",order.getSalesOrderid()); //订单号
  565. orderMap.put("tradeStatus",this.getStatus(order.getSalesStatus())); //订单状态
  566. orderMap.put("tradeStatusdescription",this.getDescription(order.getSalesStatus())); //订单交易说明, 可选
  567. orderMap.put("tradetime",sdf.format(order.getSalesCreateDate())); //订单生成时间 必选 //交易时间(格式:yyyy-MM-dd HH:mm:ss)
  568. orderMap.put("payorderno",""); //支付单号
  569. orderMap.put("country","CN"); //国家简称
  570. orderMap.put("province",addressInfo[0]); //省 必填
  571. orderMap.put("city",addressInfo[1]); //市 必填
  572. orderMap.put("area",addressInfo[2]); //区 必填
  573. orderMap.put("town",town);
  574. orderMap.put("address",order.getSalesAddressInfo()); //全部地址 必填
  575. orderMap.put("zip",order.getSalesAddressPostnum()); //邮编
  576. orderMap.put("phone",order.getSalesAddressTel()); //手机号码 必填
  577. //orderMap.put("mobile","");
  578. // orderMap.put("email","");
  579. String remark = order.getSalesUserRemark();
  580. if(remark == null){
  581. orderMap.put("customerremark",""); //买家备注
  582. }else{
  583. orderMap.put("customerremark",order.getSalesUserRemark()); //买家备注
  584. }
  585. String adminRemark = order.getSalesAdminRemark();
  586. if(adminRemark == null){
  587. orderMap.put("sellerremark",""); //卖家备注
  588. }else{
  589. orderMap.put("sellerremark",adminRemark);//卖家备注
  590. }
  591. orderMap.put("postfee",0); //邮资
  592. orderMap.put("goodsfee",0); //货款金额
  593. double yetAmount = order.getSalesYetAmount().intValue() / 100;
  594. double amount = order.getSalesAmount().intValue() / 100;
  595. orderMap.put("totalmoney",yetAmount); //合计应收(针对卖家)
  596. orderMap.put("favourablemoney",amount-yetAmount); //订单总优惠金额
  597. orderMap.put("commissionvalue",0); //佣金
  598. //orderMap.put("taxamount",""); //订单税费总额
  599. //orderMap.put("tariffamount",""); //订单关税金额
  600. // orderMap.put("addedvalueamount",""); //订单增值税金额
  601. // orderMap.put("consumptiondutyamount",""); //订单消费税金额
  602. orderMap.put("sendstyle",this.getSendstyle(order.getSalesPostFirm())); //货运方式 可选
  603. //orderMap.put("qq","");
  604. if(order.getSalesTransactionDate() != null){
  605. orderMap.put("paytime",sdf.format(order.getSalesTransactionDate())); //支付时间 ,必填 支付时间(格式:yyyy-MM-dd HH:mm:ss)
  606. }
  607. //orderMap.put("invoicetitle",""); //发票抬头
  608. //orderMap.put("codservicefee",""); //纳税人识别号
  609. //orderMap.put("couponprice",""); //货币类型
  610. //orderMap.put("cardtype",""); //证件类型(身份证=JH_01,护照=JH_02,港澳通行证=JH_03)
  611. //orderMap.put("idcard",""); //证件号码
  612. //orderMap.put("idcardtruename",""); //证件真实姓名
  613. orderMap.put("receivername",order.getSalesAddressName()); //收货人真实姓名
  614. orderMap.put("nick",order.getUserNickname()); //必填 买家昵称
  615. //orderMap.put("whsecode",""); //商品所在仓库编号
  616. //orderMap.put("IsHwgFlag",""); //是否为海外购(是=1;否=0)
  617. orderMap.put("ShouldPayType","担保交易"); //必填 结算方式(可选值有:担保交易;银行收款;现金收款;货到付款;欠款记应收;客户预付款;多种结算)
  618. List<Map<String,Object>> goodinfos = new ArrayList<>();
  619. for (OrderItem orderItem: order.getOrderItemList()){
  620. Map<String,Object> orderItemMap = new HashMap<String,Object>();
  621. orderItemMap.put("ProductId",orderItem.getColorPolyCode()); //必填 平台商品ID或SKUID(SKUID优先)
  622. orderItemMap.put("suborderno",orderItem.getItemId()); //子订单号(若需要支持拆单发货,则必填)
  623. orderItemMap.put("tradegoodsno",orderItem.getColorPolyCode()); //必填 部商家编码或外部SKU编码(SKU编码优先)。注意,如果要与管家对接,这里一般返回管家的商品编码,作为平台的外部商家编码,与管家商品映射。
  624. orderItemMap.put("tradegoodsname",orderItem.getItemProductName()); //必填 商品交易名称
  625. orderItemMap.put("tradegoodsspec",orderItem.getProductColor()); //颜色 必填 商品交易规格
  626. orderItemMap.put("goodscount",orderItem.getItemNum()); //必填 商品数量 int
  627. double money = orderItem.getItemProductDiscount().intValue() / 100;
  628. orderItemMap.put("price",money); //单价 必填 decimal
  629. orderItemMap.put("discountmoney",0); //子订单优惠金额 decimal
  630. orderItemMap.put("taxamount",0); //商品税费 decimal
  631. orderItemMap.put("refundStatus",this.getRefundStatus(order.getSalesStatus())); //退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
  632. orderItemMap.put("Status",this.getOrderItemStatus(order.getSalesStatus())); //子订单交易状态(其他=JH_99,等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05)
  633. orderItemMap.put("remark",""); //货品备注
  634. goodinfos.add(orderItemMap);
  635. }
  636. orderMap.put("goodinfos",goodinfos);
  637. return orderMap;
  638. }
  639. /***
  640. * 订单下载 拼接map -- 领取充电器
  641. * 如果不用传参数请去掉,否则有可能会报错
  642. * @param cr
  643. * @return
  644. */
  645. private Map<String,Object> getReceive(ChargerReceive cr){
  646. String[] addressInfo = cr.getReceiveAddressInfo().split("-");
  647. String town = ""; //获取街道
  648. if(addressInfo.length > 3){
  649. Integer qu = cr.getReceiveAddressInfo().indexOf(addressInfo[3]);
  650. town = cr.getReceiveAddressInfo().substring(qu,cr.getReceiveAddressInfo().length());
  651. }
  652. Map<String,Object> orderMap = new HashMap<String,Object>();
  653. orderMap.put("PlatOrderNo",cr.getReceiveOrderId()); //订单号
  654. orderMap.put("tradeStatus","JH_02"); //订单状态
  655. orderMap.put("tradeStatusdescription","等待发货"); //订单交易说明, 可选
  656. orderMap.put("tradetime",sdf.format(cr.getReceiveCreateTime())); //订单生成时间 必选 //交易时间(格式:yyyy-MM-dd HH:mm:ss)
  657. orderMap.put("payorderno",""); //支付单号
  658. orderMap.put("country","CN"); //国家简称
  659. orderMap.put("province",addressInfo[0]); //省 必填
  660. orderMap.put("city",addressInfo[1]); //市 必填
  661. orderMap.put("area",addressInfo[2]); //区 必填
  662. orderMap.put("town",town);
  663. orderMap.put("address", cr.getReceiveAddressInfo()); //全部地址 必填
  664. orderMap.put("zip",cr.getReceiveAddressPostnum()); //邮编
  665. orderMap.put("phone",cr.getReceiveAddressTel()); //手机号码 必填
  666. //orderMap.put("mobile","");
  667. // orderMap.put("email","");
  668. orderMap.put("customerremark","免费领取电动牙刷充电器"); //备注
  669. //orderMap.put("sellerremark","");
  670. orderMap.put("postfee",0); //邮资
  671. orderMap.put("goodsfee",0); //货款金额
  672. double yetAmount = cr.getReceivePostage().intValue() / 100;
  673. double amount = cr.getReceivePostage().intValue() / 100;
  674. orderMap.put("totalmoney",yetAmount); //合计应收(针对卖家)
  675. orderMap.put("favourablemoney",amount-yetAmount); //订单总优惠金额
  676. orderMap.put("commissionvalue",0); //佣金
  677. //orderMap.put("taxamount",""); //订单税费总额
  678. //orderMap.put("tariffamount",""); //订单关税金额
  679. // orderMap.put("addedvalueamount",""); //订单增值税金额
  680. // orderMap.put("consumptiondutyamount",""); //订单消费税金额
  681. orderMap.put("sendstyle",this.getSendstyle(cr.getReceivePostFirm())); //货运方式 可选
  682. //orderMap.put("qq","");
  683. if(cr.getReceiveTransactionDate() != null){
  684. orderMap.put("paytime",sdf.format(cr.getReceiveTransactionDate())); //支付时间 ,必填 支付时间(格式:yyyy-MM-dd HH:mm:ss)
  685. }
  686. //orderMap.put("invoicetitle",""); //发票抬头
  687. //orderMap.put("codservicefee",""); //纳税人识别号
  688. //orderMap.put("couponprice",""); //货币类型
  689. //orderMap.put("cardtype",""); //证件类型(身份证=JH_01,护照=JH_02,港澳通行证=JH_03)
  690. //orderMap.put("idcard",""); //证件号码
  691. //orderMap.put("idcardtruename",""); //证件真实姓名
  692. orderMap.put("receivername",cr.getReceiveAddressName()); //收货人真实姓名
  693. orderMap.put("nick",cr.getUserNickname()); //必填 买家昵称
  694. //orderMap.put("whsecode",""); //商品所在仓库编号
  695. //orderMap.put("IsHwgFlag",""); //是否为海外购(是=1;否=0)
  696. orderMap.put("ShouldPayType","担保交易"); //必填 结算方式(可选值有:担保交易;银行收款;现金收款;货到付款;欠款记应收;客户预付款;多种结算)
  697. List<Map<String,Object>> goodinfos = new ArrayList<>();
  698. // Map<String,Object> orderItemMap = new HashMap<String,Object>();
  699. // orderItemMap.put("ProductId",orderItem.getColorPolyCode()); //必填 平台商品ID或SKUID(SKUID优先)
  700. // orderItemMap.put("suborderno",orderItem.getItemId()); //子订单号(若需要支持拆单发货,则必填)
  701. // orderItemMap.put("tradegoodsno",orderItem.getColorPolyCode()); //必填 部商家编码或外部SKU编码(SKU编码优先)。注意,如果要与管家对接,这里一般返回管家的商品编码,作为平台的外部商家编码,与管家商品映射。
  702. // orderItemMap.put("tradegoodsname",orderItem.getItemProductName()); //必填 商品交易名称
  703. // orderItemMap.put("tradegoodsspec",orderItem.getProductColor()); //颜色 必填 商品交易规格
  704. // orderItemMap.put("goodscount",orderItem.getItemNum()); //必填 商品数量 int
  705. // double money = orderItem.getItemProductDiscount().intValue() / 100;
  706. // orderItemMap.put("price",money); //单价 必填 decimal
  707. // orderItemMap.put("discountmoney",0); //子订单优惠金额 decimal
  708. // orderItemMap.put("taxamount",0); //商品税费 decimal
  709. // orderItemMap.put("refundStatus",this.getRefundStatus(order.getSalesStatus())); //退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
  710. // orderItemMap.put("Status",this.getOrderItemStatus(order.getSalesStatus())); //子订单交易状态(其他=JH_99,等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05)
  711. // orderItemMap.put("remark",""); //货品备注
  712. // goodinfos.add(orderItemMap);
  713. orderMap.put("goodinfos",goodinfos);
  714. return orderMap;
  715. }
  716. /**
  717. * 设置查询的订单状态
  718. *
  719. * 本系统状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
  720. * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
  721. *
  722. * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
  723. *
  724. * @param order
  725. * @param status
  726. */
  727. private void setStatus(Order order,String status){
  728. switch (status){
  729. case "JH_01":
  730. order.setSalesStatus(1);
  731. break;
  732. case "JH_02":
  733. order.setSalesStatus(2);
  734. break;
  735. case "JH_03":
  736. order.setSalesStatus(12);
  737. break;
  738. case "JH_04":
  739. order.setSalesStatus(12);
  740. break;
  741. case "JH_05":
  742. order.setSalesStatus(8);
  743. break;
  744. case "JH_99":
  745. break;
  746. default:
  747. order.setSalesStatus(2);
  748. break;
  749. }
  750. }
  751. /**
  752. * 返回订单状态
  753. *
  754. * 状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
  755. * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
  756. *
  757. * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
  758. *
  759. * @param status
  760. * @return
  761. */
  762. private String getStatus(int status){
  763. switch (status){
  764. case 0:
  765. return "JH_05";
  766. case 1:
  767. return "JH_01";
  768. case 2:
  769. return "JH_02";
  770. case 3:
  771. return "JH_03";
  772. case 4:
  773. return "JH_05";
  774. case 5:
  775. return "JH_03";
  776. case 6:
  777. return "JH_03";
  778. case 7:
  779. return "JH_03";
  780. case 8:
  781. return "JH_05";
  782. case 9:
  783. return "JH_03";
  784. case 10:
  785. return "JH_05";
  786. case 11:
  787. return "JH_03";
  788. case 12:
  789. return "JH_04";
  790. default:
  791. return "JH_05";
  792. }
  793. }
  794. /**
  795. * 返回子订单退款状态(可选值)
  796. *
  797. * 本系统状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
  798. * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
  799. *
  800. * 退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,
  801. * 卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
  802. *
  803. * @param status
  804. * @return
  805. */
  806. private String getRefundStatus(int status){
  807. switch (status){
  808. case 0:
  809. return "";
  810. case 1:
  811. return "";
  812. case 2:
  813. return "";
  814. case 3:
  815. return "JH_01";
  816. case 4:
  817. return "JH_06";
  818. case 5:
  819. return "";
  820. case 6:
  821. return "";
  822. case 7:
  823. return "JH_02";
  824. case 8:
  825. return "JH_06";
  826. case 9:
  827. return "";
  828. case 10:
  829. return "";
  830. case 11:
  831. return "";
  832. case 12:
  833. return "";
  834. default:
  835. return "";
  836. }
  837. }
  838. /**
  839. * 返回子订单状态(可选值)
  840. *
  841. * 本系统状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
  842. * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
  843. *
  844. * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
  845. *
  846. * @param status
  847. * @return
  848. */
  849. private String getOrderItemStatus(int status){
  850. switch (status){
  851. case 0:
  852. return "";
  853. case 1:
  854. return "JH_01";
  855. case 2:
  856. return "JH_02";
  857. case 3:
  858. return "";
  859. case 4:
  860. return "JH_05";
  861. case 5:
  862. return "";
  863. case 6:
  864. return "";
  865. case 7:
  866. return "";
  867. case 8:
  868. return "JH_05";
  869. case 9:
  870. return "";
  871. case 10:
  872. return "";
  873. case 11:
  874. return "";
  875. case 12:
  876. return "JH_04";
  877. default:
  878. return "";
  879. }
  880. }
  881. /**
  882. * 获取订单交易说明
  883. * 状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
  884. * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
  885. * @param status
  886. * @return
  887. */
  888. private String getDescription(int status){
  889. switch (status){
  890. case 0:
  891. return "取消订单";
  892. case 1:
  893. return "等待买家付款";
  894. case 2:
  895. return "等待发货";
  896. case 3:
  897. return "退款申请中";
  898. case 4:
  899. return "已退款";
  900. case 5:
  901. return "已发货";
  902. case 6:
  903. return "申请退货中";
  904. case 7:
  905. return "退货中";
  906. case 8:
  907. return "订单已退货";
  908. case 9:
  909. return "换货中";
  910. case 10:
  911. return "换货完成";
  912. case 11:
  913. return "申请换货中";
  914. case 12:
  915. return "订单完成";
  916. default:
  917. return "其他";
  918. }
  919. }
  920. /**
  921. * 返回配送方式
  922. * @param sendsStyle
  923. * @return
  924. */
  925. private String getSendstyle(String sendsStyle){
  926. String sendStyle = SendMessageUtil.hashmap.get(sendsStyle);
  927. if(sendStyle == null){
  928. sendStyle = "";
  929. }
  930. return sendStyle;
  931. }
  932. /**
  933. * 校验请求和返回参数
  934. * @param request
  935. * @return
  936. */
  937. private Map<String,Object> verification(HttpServletRequest request) throws Exception {
  938. String bizcontent = request.getParameter("bizcontent");
  939. String appkey = request.getParameter("appkey");
  940. String method = request.getParameter("method");
  941. String token = request.getParameter("token");
  942. String sign = request.getParameter("sign");
  943. String polyapiAppKey = NameUtils.getConfig("polyapi_appKey");
  944. String polyapiAppSecret = NameUtils.getConfig("polyapi_AppSecret");
  945. if(appkey != null && appkey.equals(polyapiAppKey)){
  946. /**
  947. * 签名验证:
  948. * 将除Sign参数外的所有“参数 参数值”进行字典排序生成串,而后将AppSecret加到该串的首尾,将得到的字符串转小写,进行MD5加密,此时的生成的串即为Sign。
  949. */
  950. String signatureText = polyapiAppSecret + "appkey" + appkey + "bizcontent" + bizcontent + "method" + method + "token" + token + polyapiAppSecret;
  951. signatureText = signatureText.toLowerCase();
  952. String signaTrue = md5.GetMD5Code(signatureText);
  953. if(sign == null || !sign.equals(signaTrue)){
  954. logger.info("-----------签名验证失败---------------,signaTrue:"+signaTrue);
  955. logger.info("-----------签名验证失败---------------,sign:"+sign);
  956. throw new Exception("签名验证失败");
  957. }
  958. //logger.info("-----------菠萝派调用接口,签名验证通过。接口调用方法名:"+method +"接口参数:" + bizcontent);
  959. }
  960. Map requstMap = (Map) JSON.parse(bizcontent);
  961. return requstMap;
  962. }
  963. }