|
@@ -1,12 +1,22 @@
|
|
|
package com.iamberry.rst.controllers.mq;
|
|
|
|
|
|
import com.iamberry.rst.controllers.sys.SysController;
|
|
|
+import com.iamberry.rst.core.cm.SalesOrder;
|
|
|
+import com.iamberry.rst.core.cm.SalesOrderItem;
|
|
|
+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.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.service.sms.mapper.MessageMapper;
|
|
|
import com.iamberry.wechat.tools.ResponseJson;
|
|
|
+import net.sf.json.JSONArray;
|
|
|
+import net.sf.json.JSONObject;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.InitializingBean;
|
|
@@ -15,6 +25,9 @@ import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.locks.Lock;
|
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
@@ -30,6 +43,14 @@ public class MQTask implements InitializingBean {
|
|
|
private MessageService messageService;
|
|
|
@Autowired
|
|
|
private SmsService smsService;
|
|
|
+ @Autowired
|
|
|
+ private EfastOrderService efastOrderService;
|
|
|
+ @Autowired
|
|
|
+ private ProductService productService;
|
|
|
+ @Autowired
|
|
|
+ private StoreInfoService storeInfoService;
|
|
|
+
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
public void afterPropertiesSet() throws Exception {
|
|
|
}
|
|
@@ -60,4 +81,137 @@ public class MQTask implements InitializingBean {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量同步百胜订单信息
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ //@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
|
|
|
+ @Scheduled(cron = "*/10 * * * * ?")
|
|
|
+ public void syncEfastOrderList() throws Exception {
|
|
|
+ int pageNo = 1;
|
|
|
+ int pageSize = 20;
|
|
|
+ boolean flag = false; //控制是否还需要获取百胜订单信息
|
|
|
+ String date = "2016-04-01";
|
|
|
+ do {
|
|
|
+ //批量获取百胜订单信息
|
|
|
+ JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize,date);
|
|
|
+ System.out.println("obj="+obj);
|
|
|
+ if (obj == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int pageSize1 = obj.getInt("page_size"); //百胜返回数据条目数
|
|
|
+ if (pageSize <= pageSize1) {
|
|
|
+ flag = true;
|
|
|
+ pageNo++;
|
|
|
+ } else {
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ this.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("order_sn"));
|
|
|
+ if (orderInfo == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //获取订单项集合
|
|
|
+ JSONArray itemArray = orderInfo.getJSONArray("orders");
|
|
|
+ if (itemArray == null || itemArray.size() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ SalesOrder salesOrder = new SalesOrder();
|
|
|
+ salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
|
|
|
+ int payStatus = order.getInt("pay_status"); //是否付款 0:未付款,2:已付款
|
|
|
+ int orderStatus = order.getInt("order_status"); //订单状态 0:未确认,1:已确认,2:挂起,3:作废
|
|
|
+ int shippingStatus = order.getInt("shipping_status"); //发货状态 0:未发货,1:已发货,3:备货中
|
|
|
+ if (payStatus == 2 && (orderStatus == 0 || orderStatus == 1)) {
|
|
|
+ if (shippingStatus == 0) {
|
|
|
+ salesOrder.setSalesStatus(2);
|
|
|
+ } else if (shippingStatus == 1) {
|
|
|
+ salesOrder.setSalesStatus(5);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ salesOrder.setSalesPostFirm(order.getString("shipping_name"));//快递方式代码
|
|
|
+ salesOrder.setSalesPostNum(order.getString("invoice_no"));//快递单号
|
|
|
+ salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name")));//支付方式
|
|
|
+ salesOrder.setSalesPayTime(format.parse(order.getString("pay_time")));//支付时间
|
|
|
+ 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(format.parse(order.getString("create_time")));//创建时间
|
|
|
+ if (StringUtils.isNotEmpty(order.getString("delivery_time"))) {
|
|
|
+ salesOrder.setSalesSendTime(format.parse(order.getString("delivery_time")));//发货时间
|
|
|
+ }
|
|
|
+ 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) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|