@Controller public class PddOrderController{ @PostMapping("pddOrderApi") @ResponseBody public String PddRespon (HttpSerZZZletRequest request, HttpSerZZZletResponse response){ PddResponse resp = new PddResponse(); String plantform = "PDD"; try{ int contentlen = request.getContentLength(); BufferedReader reader = request.getReader(); char[] buf = new char[contentlen]; int len = 0; StringBuffer contentBuffer = new StringBuffer(); while ((len = reader.read(buf)) != -1) { contentBuffer.append(buf, 0, len); } String content = contentBuffer.toString(); if(content == null){ content = ""; } PdptbTradeInfo pdptbTradeInfo = JSONObject.parseObject(content, PdptbTradeInfo.class); //店铺id为"PDD"+mallid拼接而成 String shopid = plantform+pdptbTradeInfo.getMall_id(); //依据店铺id查问店铺能否存正在或给予后的其余判断做筹备 ShopInfo shopInfo = shopSerZZZice.selectOneByShopCode(shopid); if(shopInfo == null){ resp.setCode("error"); resp.setMessages("[店铺【"+shopInfo.getShopname()+"】:不存正在!]"); logger.error(resp.getMessages()); }else if(shopInfo.getEVpiretime()==null || shopInfo.getEVpiretime().before(new Date())){ resp.setCode("error"); resp.setMessages("[店铺【"+shopInfo.getShopname()+"】:已逾期!]"); logger.error(resp.getMessages()); }else if(shopInfo.getShoptype()==0){ resp.setCode("error"); resp.setMessages("[店铺【"+shopInfo.getShopname()+"】:已封锁!]"); logger.error(resp.getMessages()); }else{ // 查问订单能否存正在,假如存正在并且新推来的订单更新光阳小于大概就是原地存储的订单更新光阳,则间接跳过 OrderInfo orderInfo = orderSerZZZice.selectOrderInfoById(pdptbTradeInfo.getOrder_sn(), shopInfo.getId()); if(orderInfo!=null){ long a = orderInfo.getJdpmodified().getTime()/1000; long b = pdptbTradeInfo.getUpdated_at().getTime()/1000; if(a==b || a>b){ resp.setCode("success"); return JSONArray.toJSONString(resp); } } // 进入订单收配流程,存储大概批改原地订单形态等 String s = SyncDataToSql(shopInfo, pdptbTradeInfo); if(s.equals("success")){ resp.setCode("success"); } else if(s.equals("error")){ resp.setCode("error"); } } } catch (EVception e) { resp.setCode("error"); resp.setMessages("[发作异样]"); logger.error(e.getMessage()); e.printStackTrace(); } return JSONArray.toJSONString(resp); } // 订单收配流程,存储大概批改原地订单形态等 public String SyncDataToSql(ShopInfo shopInfo,PdptbTradeInfo pdptbTradeInfo) throws ParseEVception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 保存一份本始订单数据 PddOrderInfo pddOrderInfo = new PddOrderInfo(); String pdp_response = pdptbTradeInfo.getPdp_response(); JSONObject pddOrderItem = JSONObject.parseObject(pdp_response); pddOrderInfo.setId(pddOrderItem.getString("order_sn")); pddOrderInfo.setTenantid(shopInfo.getTenantid()); pddOrderInfo.setShopid(shopInfo.getId()); pddOrderInfo.setTidstr(pddOrderItem.getString("order_sn")); //1:待发货,2:已发货待签支,3:已签支 pddOrderInfo.setStatus(pddOrderItem.getString("order_status")); pddOrderInfo.setSellernick(shopInfo.getShopnick()); String remark = pddOrderItem.getString("remark"); String buyer_memo = pddOrderItem.getString("buyer_memo"); String receiZZZer_name = pddOrderItem.getString("receiZZZer_name"); String address = pddOrderItem.getString("address"); String receiZZZer_address = pddOrderItem.getString("receiZZZer_address"); try{ if(StringUtils.isNotBlank(remark)){ remark = pddOrderItem.getString("remark").replace("'","’").replace("/","//"); remark = filterOffUtf8Mb4(remark); } if(StringUtils.isNotBlank(buyer_memo)){ buyer_memo = pddOrderItem.getString("buyer_memo").replace("'","’").replace("/","//"); buyer_memo = filterOffUtf8Mb4(buyer_memo); } String item_list_str = pddOrderItem.getString("item_list"); JSONArray itemList = JSONArray.parseArray(item_list_str); for(int j=0;j<itemList.size();j++) { JSONObject orderStock = itemList.getJSONObject(j); if(StringUtils.isNotBlank(orderStock.getString("goods_name"))){ String goods_name = orderStock.getString("goods_name").replace("'", "’").replace("/", "//"); orderStock.remoZZZe("goods_name"); orderStock.put("goods_name",goods_name); } } }catch (EVception e){ e.printStackTrace(); } pddOrderItem.remoZZZe("receiZZZer_name"); pddOrderItem.put("receiZZZer_name",receiZZZer_name); pddOrderItem.remoZZZe("remark"); pddOrderItem.put("remark",remark); pddOrderItem.remoZZZe("buyer_memo"); pddOrderItem.put("buyer_memo",buyer_memo); pddOrderItem.remoZZZe("receiZZZer_address"); pddOrderItem.put("receiZZZer_address",receiZZZer_address); pddOrderItem.remoZZZe("address"); pddOrderItem.put("address",address); pddOrderInfo.setCreated(pddOrderItem.getString("created_time")); pddOrderInfo.setModified(pddOrderItem.getString("updated_at")); pddOrderInfo.setJdpcreated(pddOrderItem.getString("created_time")); pddOrderInfo.setJdpmodified(pddOrderItem.getString("updated_at")); pddOrderInfo.setJdpresponse(pddOrderItem.toString().replace("'","''")); pddOrderSerZZZice.createOrUpdate(pddOrderInfo); //判断订单能否为平台风控订单 假如是平台风控订单 间接跳过 if (StringUtils.isNotBlank(pddOrderItem.getString("risk_control_status")) && pddOrderItem.getString("risk_control_status").equals("1")){ logger.error("拼多多订单号:"+pddOrderItem.getString("order_sn")+"为平台风控订单跳过该订单 等平台审核完结"); return "success"; } // 初步保存到原地大概变动原地订单形态 // 此轨范省略。。。。。。。。。。。。 // 大抵流程为序列化为真体类,而后挪用工具类的获与检索串工具以及挪用通过密文获与脱敏数据接口来获与对应的检索串以及脱敏数据 // 而后中间流程须要依据订单形态 order_status 字段来判断订单有没有发作退款售后等 return "success"; } }