From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushGoodsServiceImpl.java | 149 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 116 insertions(+), 33 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushGoodsServiceImpl.java index 8e9e130..f2f1def 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushGoodsServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushGoodsServiceImpl.java @@ -1,24 +1,23 @@ package com.yeshi.fanli.service.impl.push; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; import javax.annotation.Resource; -import javax.transaction.Transactional; - -import net.sf.json.JSONObject; import org.springframework.stereotype.Service; -import org.yeshi.utils.HttpUtil; +import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.push.PushGoodsMapper; +import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.push.PushGoods; import com.yeshi.fanli.entity.push.PushGoodsGroup; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.PushException; import com.yeshi.fanli.exception.push.PushGoodsException; -import com.yeshi.fanli.goods.CommonGoods; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.goods.CommonGoodsService; import com.yeshi.fanli.service.inter.push.PushGoodsGroupService; @@ -26,8 +25,9 @@ import com.yeshi.fanli.service.inter.push.PushService; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.CommonGoodsFactory; -import com.yeshi.fanli.util.factory.IOSPushFactory; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; + +import net.sf.json.JSONObject; @Service public class PushGoodsServiceImpl implements PushGoodsService { @@ -79,8 +79,25 @@ @Override @Transactional - public void save(PushGoods record, List<Long> goodsIds) throws Exception { + public void save(PushGoods record, List<Long> goodsIds) throws PushGoodsException, Exception { + // 瀹氭椂鏃堕棿 + Boolean timeTask = record.isTimeTask(); + if (timeTask != null && timeTask) { + String controlTime_str = record.getControlTime_str(); + if (controlTime_str == null || controlTime_str.trim().length() == 0) { + throw new PushGoodsException(1, "棰勮鏃堕棿涓嶈兘涓虹┖"); + } + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + controlTime_str = controlTime_str.replaceAll("T", " "); + record.setControlTime(format.parse(controlTime_str)); + } else { + record.setControlTime(null); + } + + record.setIsPush(PushGoods.STATE_INIT); + boolean isAdd = false; // 鎺ㄩ�乮d Long pushId = record.getId(); @@ -90,14 +107,20 @@ record.setCreateTime(new Date()); record.setUpdateTime(new Date()); - pushGoodsMapper.insertSelective(record); + pushGoodsMapper.insert(record); pushId = record.getId(); } else { // 淇敼 + PushGoods current = pushGoodsMapper.selectByPrimaryKey(pushId); + if (current == null) { + throw new PushGoodsException(1, "璇ヨ褰曞凡涓嶅瓨鍦�"); + } + + record.setCreateTime(current.getCreateTime()); record.setUpdateTime(new Date()); - pushGoodsMapper.insertSelective(record); + pushGoodsMapper.updateByPrimaryKey(record); } // 澶勭悊鍟嗗搧淇℃伅 @@ -215,59 +238,119 @@ return pushGoodsMapper.countHistoryByPushTime(uid, pushTime); } + @Override - public void executePush(Long id) throws Exception, PushGoodsException, PushException { - - PushGoods pushGoods = selectByPrimaryKey(id); - if (pushGoods == null) { - throw new PushException(1, "鎺ㄩ�佷俊鎭凡涓嶅瓨鍦�"); + public List<PushGoods> listTask() { + return pushGoodsMapper.listTask(); + } + + + @Override + public void taskPush(PushGoods record) { + String msg = null; + int state = PushGoods.STATE_FAIL; + try { + // 鎵ц鎺ㄩ�� + executePush(record); + state = PushGoods.STATE_SUCCESS; + } catch (PushGoodsException e) { + msg = e.getMsg(); + } catch (PushException e) { + msg = e.getMsg(); + } catch (Exception e) { + msg = "绯荤粺鎺ㄩ�佸け璐�"; } + record.setIsPush(state); + record.setPushTime(new Date()); + record.setRemark(msg); + record.setUpdateTime(new Date()); + pushGoodsMapper.updateByPrimaryKey(record); + } + + + @Override + public void handPush(Long id) throws Exception, PushGoodsException, PushException { + PushGoods record = selectByPrimaryKey(id); + if (record == null) { + throw new PushGoodsException(1, "鎺ㄩ�佷俊鎭凡涓嶅瓨鍦�"); + } + // 鎵ц鎺ㄩ�� + executePush(record); + + record.setIsPush(PushGoods.STATE_SUCCESS); + record.setPushTime(new Date()); + record.setUpdateTime(new Date()); + pushGoodsMapper.updateByPrimaryKey(record); + } + + + + @Override + public void executePush(PushGoods pushGoods) throws Exception, PushGoodsException, PushException { + + Long id = pushGoods.getId(); String alertTitle = pushGoods.getAlertTitle(); String alertContent = pushGoods.getAlertContent(); if (StringUtil.isNullOrEmpty(alertTitle) || StringUtil.isNullOrEmpty(alertContent)) { - throw new PushException(1, "鎺ㄩ�佹爣棰樺強鍐呭涓嶈兘涓虹┖"); + throw new PushGoodsException(1, "鎺ㄩ�佹爣棰樺強鍐呭涓嶈兘涓虹┖"); } List<PushGoodsGroup> goodsList = pushGoodsGroupService.getAllInfoByPushId(id); if (goodsList == null || goodsList.size() == 0) { - throw new PushException(1, "鎺ㄩ�佹棤鍟嗗搧,璇峰畬鍠勬暟鎹�"); + throw new PushGoodsException(1, "鎺ㄩ�佹棤鍟嗗搧,璇峰畬鍠勬暟鎹�"); } - + + String versions = pushGoods.getVersions(); + if (versions == null || versions.trim().length() == 0) { + throw new PushGoodsException(1, "鎺ㄩ�佺増鏈笉鑳戒负绌�"); + } + + List<String> listIOS = new ArrayList<String>(); + JSONObject json = JSONObject.fromObject(versions); + String versionsIOS = json.getString("IOS"); + if (versionsIOS != null && versionsIOS.trim().length() > 0) { + if (versionsIOS.contains("鍏ㄦ帹")) { + listIOS = null; + } else { + listIOS = Arrays.asList(versionsIOS.split(",")); + } + } + + List<String> listAndroid = new ArrayList<String>(); + String versionsAndroid = json.getString("Android"); + if (versionsAndroid != null && versionsAndroid.trim().length() > 0) { + if (versionsAndroid.contains("鍏ㄦ帹")) { + listAndroid = null; + } else { + listAndroid = Arrays.asList(versionsAndroid.split(",")); + } + } + if (goodsList.size() == 1) { /* 鍗曚釜鍟嗗搧鎺ㄩ�侊細 鐩存帴澶勭悊涓哄晢鍝佷俊鎭� */ PushGoodsGroup pushGoodsGroup = goodsList.get(0); CommonGoods commonGoods = pushGoodsGroup.getCommonGoods(); if (commonGoods == null) { - throw new PushException(1, "鍟嗗搧璇︾粏淇℃伅宸蹭笉瀛樺湪"); + throw new PushGoodsException(1, "鍟嗗搧璇︾粏淇℃伅宸蹭笉瀛樺湪"); } Long goodsId = commonGoods.getGoodsId(); String url = "https://item.taobao.com/item.htm?id=" + goodsId; + + pushService.pushGoods(pushGoods.getUid(), alertTitle, alertContent, url,listIOS, listAndroid); - pushService.pushGoods(pushGoods.getUid(), url, alertTitle, alertContent); - } else { /* 澶氫釜鍟嗗搧鎺ㄩ�� */ String url = configService.get("push_goods_details"); if (StringUtil.isNullOrEmpty(url)) { - throw new PushException(1, "鎺ㄩ�侀〉闈㈤摼鎺ヤ笉瀛樺湪"); + throw new PushGoodsException(1, "鎺ㄩ�侀〉闈㈤摼鎺ヤ笉瀛樺湪"); } // 鐢熸垚閾炬帴 url = url + "?id=" + id; - pushService.pushUrl(pushGoods.getUid(), url, alertTitle, alertContent); + pushService.pushUrl(pushGoods.getUid(), alertTitle, alertContent, url, listIOS, listAndroid); } - - // 宸叉帹閫� - pushGoods.setPush(true); - // 鎺ㄩ�佹椂闂� - pushGoods.setPushTime(new Date()); - // 鏇存柊鏃堕棿 - pushGoods.setUpdateTime(new Date()); - - updateByPrimaryKeySelective(pushGoods); - } - + } -- Gitblit v1.8.0