|
@@ -7,12 +7,14 @@ import com.iamberry.rst.core.cm.StoreInfo;
|
|
|
import com.iamberry.rst.core.order.ProductColor;
|
|
|
import com.iamberry.rst.core.sms.OrderMessage;
|
|
|
import com.iamberry.rst.core.sms.SmsMessage;
|
|
|
+import com.iamberry.rst.core.sys.Relu;
|
|
|
import com.iamberry.rst.faces.cm.SalesOrderService;
|
|
|
import com.iamberry.rst.faces.cm.StoreInfoService;
|
|
|
import com.iamberry.rst.faces.order.EfastOrderService;
|
|
|
import com.iamberry.rst.faces.product.ProductService;
|
|
|
import com.iamberry.rst.faces.sms.MessageService;
|
|
|
import com.iamberry.rst.faces.sms.SmsService;
|
|
|
+import com.iamberry.rst.faces.sys.SysService;
|
|
|
import com.iamberry.rst.service.sms.mapper.MessageMapper;
|
|
|
import com.iamberry.wechat.tools.DateTimeUtil;
|
|
|
import com.iamberry.wechat.tools.ResponseJson;
|
|
@@ -29,6 +31,7 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Calendar;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.locks.Lock;
|
|
@@ -48,11 +51,12 @@ public class MQTask implements InitializingBean {
|
|
|
@Autowired
|
|
|
private EfastOrderService efastOrderService;
|
|
|
@Autowired
|
|
|
- private ProductService productService;
|
|
|
- @Autowired
|
|
|
- private StoreInfoService storeInfoService;
|
|
|
- @Autowired
|
|
|
private SalesOrderService salesOrderService;
|
|
|
+ @Autowired
|
|
|
+ private SysService sysService;
|
|
|
+
|
|
|
+ private Object lock = new Object();
|
|
|
+ private Object lock1 = new Object();
|
|
|
|
|
|
public void afterPropertiesSet() throws Exception {
|
|
|
}
|
|
@@ -95,136 +99,118 @@ public class MQTask implements InitializingBean {
|
|
|
int pageSize = 20;
|
|
|
boolean flag = false; //控制是否还需要获取百胜订单信息
|
|
|
String date = "";
|
|
|
- //根据时间排序查询订单信息
|
|
|
- List<SalesOrder> orderList = salesOrderService.listSalesOrder(new SalesOrder());
|
|
|
- if (orderList != null && orderList.size() > 0) {
|
|
|
- SalesOrder salesOrder = orderList.get(0);
|
|
|
- date = salesOrder.getSalesCreateTime().toString();
|
|
|
- } else {
|
|
|
- date = "2016-04-01";
|
|
|
- }
|
|
|
- do {
|
|
|
- //批量获取百胜订单信息
|
|
|
- JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize,date);
|
|
|
- if (obj == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- int pageSize1 = obj.getInt("page_size"); //百胜返回数据条目数
|
|
|
- if (pageSize <= pageSize1) {
|
|
|
- flag = true;
|
|
|
- pageNo++;
|
|
|
+ synchronized (lock) {
|
|
|
+ //根据时间排序查询订单信息
|
|
|
+ List<SalesOrder> orderList = salesOrderService.listSalesOrder(new SalesOrder());
|
|
|
+ if (orderList != null && orderList.size() > 0) {
|
|
|
+ SalesOrder salesOrder = orderList.get(0);
|
|
|
+ date = salesOrder.getSalesCreateTime().toString();
|
|
|
} else {
|
|
|
- flag = false;
|
|
|
+ date = "2016-04-01";
|
|
|
}
|
|
|
- this.addSalesOrderList(obj);
|
|
|
- } while (flag); //百胜返回条目数如果等于设置的分页条目数,则继续查询下一页
|
|
|
+ do {
|
|
|
+ //批量获取百胜订单信息
|
|
|
+ JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize, date);
|
|
|
+ if (obj == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int pageSize1 = obj.getInt("page_size"); //百胜返回数据条目数
|
|
|
+ if (pageSize <= pageSize1) {
|
|
|
+ flag = true;
|
|
|
+ pageNo++;
|
|
|
+ } else {
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ salesOrderService.addSalesOrderList(obj);
|
|
|
+ } while (flag); //百胜返回条目数如果等于设置的分页条目数,则继续查询下一页
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 添加订单信息
|
|
|
- * @param obj
|
|
|
+ * 同步百胜订单状态等信息
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public void addSalesOrderList(JSONObject obj) throws Exception {
|
|
|
- if (obj == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- JSONArray orderList = obj.getJSONArray("list");
|
|
|
- if (orderList == null || orderList.size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- for (int i = 0;i < orderList.size();i++) {
|
|
|
- JSONObject order = orderList.getJSONObject(i);
|
|
|
- //获取订单详情
|
|
|
- JSONObject orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
|
|
|
- if (orderInfo == null) {
|
|
|
- return;
|
|
|
+ //@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
|
|
|
+ //@Scheduled(cron = "*/10 * * * * ?")
|
|
|
+ public void syncEfastOrderStatus() throws Exception {
|
|
|
+ int pageNo = 1;
|
|
|
+ int pageSize = 20;
|
|
|
+ boolean flag = false; //控制是否还需要获取百胜订单信息
|
|
|
+
|
|
|
+ int returnPageNo = 1;
|
|
|
+ int returnPageSize = 20;
|
|
|
+ boolean returnFlag = false; //控制是否还需要获取百胜退单信息
|
|
|
+ synchronized (lock1) {
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ Date beginDate = new Date();
|
|
|
+ SalesOrder order = new SalesOrder();
|
|
|
+ Calendar date = Calendar.getInstance();
|
|
|
+
|
|
|
+ Relu relu = new Relu();
|
|
|
+ relu.setrId(6);
|
|
|
+ relu.setrIsStatus(1);
|
|
|
+ //获取同步百胜订单的开始时间
|
|
|
+ List<Relu> reluList = sysService.ListSysRelu(relu);
|
|
|
+ if (reluList == null || reluList.size() == 0) {
|
|
|
+ relu.setrNum(7);
|
|
|
+ relu.setrText("0");
|
|
|
+ } else {
|
|
|
+ relu = reluList.get(0);
|
|
|
}
|
|
|
- //获取订单项集合
|
|
|
- JSONArray itemArray = orderInfo.getJSONArray("orders");
|
|
|
- if (itemArray == null || itemArray.size() == 0) {
|
|
|
+ if (Integer.parseInt(relu.getrText()) > 0) {
|
|
|
+ date.setTime(beginDate);
|
|
|
+ date.set(Calendar.DATE, date.get(Calendar.DATE) - (int) relu.getrNum());
|
|
|
+ order.setSalesCreateTime(format.parse(format.format(date.getTime())));
|
|
|
+ } else {
|
|
|
+ order.setSalesCreateTime(format.parse("2016-04-01"));
|
|
|
+ relu.setrText("1");
|
|
|
+ //从头开始同步,只同步一次
|
|
|
+ sysService.updateRelu(relu);
|
|
|
+ }
|
|
|
+ //根据创建时间获取订单信息
|
|
|
+ List<SalesOrder> orderlist = salesOrderService.listSalesOrder(order);
|
|
|
+ if (orderlist == null || orderlist.size() == 0) {
|
|
|
return;
|
|
|
}
|
|
|
+ do {
|
|
|
+ //批量获取百胜订单信息
|
|
|
+ JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize, format.format(date.getTime()));
|
|
|
+ if (obj == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JSONArray orderList = obj.getJSONArray("list");
|
|
|
+ if (orderList == null || orderList.size() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ salesOrderService.updateOrderList(orderList, orderlist);
|
|
|
+ int pageSize1 = obj.getInt("page_size"); //百胜返回数据条目数
|
|
|
+ if (pageSize <= pageSize1) {
|
|
|
+ flag = true;
|
|
|
+ pageNo++;
|
|
|
+ } else {
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ } while (flag); //百胜返回条目数如果等于设置的分页条目数,则继续查询下一页
|
|
|
|
|
|
- SalesOrder salesOrder = new SalesOrder();
|
|
|
- salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
|
|
|
- salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
|
|
|
- salesOrder.setSalesOrderStatus(1);//订单状态
|
|
|
- salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
|
|
|
- salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
|
|
|
- salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
|
|
|
- salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
|
|
|
- salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
|
|
|
- salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
|
|
|
- salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
|
|
|
- /*if (orderStatus == 2 || orderStatus == 3) {
|
|
|
- continue;
|
|
|
- }*/
|
|
|
- salesOrder.setSalesPostFirm(order.getString("shipping_name"));//快递方式代码
|
|
|
- salesOrder.setSalesPostNum(order.getString("invoice_no"));//快递单号
|
|
|
- salesOrder.setSalesOpenId(order.getString("mobile"));//唯一标识
|
|
|
- salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name")));//支付方式
|
|
|
- salesOrder.setSalesPayTime(new Date(order.getInt("pay_time")*1000));//支付时间
|
|
|
- salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
|
|
|
- salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
|
|
|
- salesOrder.setSalesAmount(order.getInt("order_amount")*100);//应付款
|
|
|
- salesOrder.setSalesPayMoney(order.getInt("money_paid")*100);//已付款
|
|
|
- salesOrder.setSalesAddressName(order.getString("consignee"));//收货人
|
|
|
- salesOrder.setSalesAddressTel(order.getString("mobile"));//收货人电话
|
|
|
- salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
|
|
|
- salesOrder.setSalesShippingFee(order.getInt("shipping_fee")*100);//邮费
|
|
|
- salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
|
|
|
- if (StringUtils.isNotEmpty(order.getString("delivery_time"))) {
|
|
|
- salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
|
|
|
- }
|
|
|
- salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
|
|
|
- salesOrder.setSalesPledgeMoney(0);//押金金额
|
|
|
- salesOrder.setSalesRemainDeposit(0);//待提取金额
|
|
|
- salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
|
|
|
- salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
|
|
|
- salesOrder.setSalesWaitMoney(0);//待付金额
|
|
|
- salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
|
|
|
- salesOrder.setSalesPayNumber("0000");//支付尾号
|
|
|
- salesOrder.setSalesType(1);//订单类型
|
|
|
- //查询店铺信息
|
|
|
- StoreInfo storeInfo = new StoreInfo();
|
|
|
- storeInfo.setStoreEfast(order.getString("sd_id"));
|
|
|
- List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
|
|
|
- int storeId = 0;
|
|
|
- int companyId = 0;
|
|
|
- if (storeList != null && storeList.size() > 0) {
|
|
|
- storeInfo = storeList.get(0);
|
|
|
- storeId = storeInfo.getStoreId();
|
|
|
- companyId = storeInfo.getCompanyId();
|
|
|
- }
|
|
|
- salesOrder.setSalesStoreId(storeId);//店铺id
|
|
|
- salesOrder.setSalesCompanyId(companyId);//销售公司id
|
|
|
- List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
|
|
|
- for (int j = 0;j < itemArray.size();j++) {
|
|
|
- ProductColor color = new ProductColor();
|
|
|
- JSONObject itemJson = itemArray.getJSONObject(j);
|
|
|
- SalesOrderItem item = new SalesOrderItem();
|
|
|
- color.setColorBar(itemJson.getString("goods_sn"));
|
|
|
- List<ProductColor> colorList = productService.listproductAndColor(color);
|
|
|
- if (colorList == null || colorList.size() == 0) {
|
|
|
+ do {
|
|
|
+ //批量获取百胜退单信息
|
|
|
+ JSONObject obj = efastOrderService.listReturnOrderFormEfast(returnPageNo, returnPageSize, format.format(date.getTime()));
|
|
|
+ if (obj == null) {
|
|
|
return;
|
|
|
}
|
|
|
- color = colorList.get(0);
|
|
|
- item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
|
|
|
- item.setItemNum(itemJson.getInt("sn"));//商品数量
|
|
|
- item.setItemCreateTime(salesOrder.getSalesCreateTime());
|
|
|
- item.setItemColorId(color.getColorId());
|
|
|
- item.setItemProductColor(color.getColorName());
|
|
|
- item.setItemProductDiscount(color.getColorDiscount());
|
|
|
- item.setItemProductId(color.getColorProductId());
|
|
|
- item.setItemProductName(color.getProductName());
|
|
|
- item.setItemProductPic(color.getColorPicture());
|
|
|
- item.setItemProductType(color.getProductType());
|
|
|
- item.setItemProductPrice(color.getColorPrice());
|
|
|
- itemList.add(item);
|
|
|
- }
|
|
|
- //添加订单和订单项
|
|
|
- salesOrderService.addOrderAndItem(salesOrder,itemList);
|
|
|
+ JSONArray orderList = obj.getJSONArray("list");
|
|
|
+ if (orderList == null || orderList.size() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ salesOrderService.updateReturnOrderList(orderList, orderlist);
|
|
|
+ int pageSize1 = obj.getInt("page_size"); //百胜返回数据条目数
|
|
|
+ if (returnPageSize <= pageSize1) {
|
|
|
+ returnFlag = true;
|
|
|
+ returnPageNo++;
|
|
|
+ } else {
|
|
|
+ returnFlag = false;
|
|
|
+ }
|
|
|
+ } while (returnFlag); //百胜返回条目数如果等于设置的分页条目数,则继续查询下一页
|
|
|
}
|
|
|
}
|
|
|
}
|