123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- 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;
- import org.springframework.beans.factory.annotation.Autowired;
- 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;
- @Component(value="mqTask")
- @Lazy(false)
- public class MQTask implements InitializingBean {
- private static Logger logger = LoggerFactory.getLogger(SysController.class);
- @Autowired
- 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 {
- }
- //@Scheduled(cron = "*/10 * * * * ?")
- //@Scheduled(cron = "0 0 9,11,14,16,18,20 * * ? ")//推送时间分别为每天早上九点、中午十一点、下午三点、下午六点、晚上八点
- //@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
- // @Scheduled(cron = "0 0/3 * * * ?")//每三分钟执行一次
- public void auditMessagePush(){
- logger.info("------------执行消息提醒,推送待处理订单短信 start-----------");
- List<SmsMessage> smsMessageList = messageService.listOrderMessages();
- if(smsMessageList != null && smsMessageList.size() > 0){
- //循环推送短信
- for(SmsMessage smsMessage : smsMessageList){
- ResponseJson json = smsService.sms(smsMessage.getTel(),smsMessage.getTypes(),smsMessage.getCounts());
- if(json.getReturnCode() == 200){
- logger.info("------------推送到+"+smsMessage.getTel()+"一条"+(smsMessage.getTypes() == 1?"待处理":"驳回")+"短信成功");
- //设置审核通过记录为无效
- if(smsMessage.getTypes() == 3){
- OrderMessage orderMessage = new OrderMessage();
- orderMessage.setMessageStatus(2);
- orderMessage.setMessageType(3);
- messageService.updateOrderMessageStatus(orderMessage);
- }
- }else{
- logger.info("------------推送到+"+smsMessage.getTel()+"一条"+(smsMessage.getTypes() == 1?"待处理":"驳回")+"短信失败"+json.getReturnMsg());
- }
- }
- }
- }
- /**
- * 批量同步百胜订单信息
- * @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);
- }
- }
- }
- }
|