| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.yeshi.fanli.entity.SystemEnum;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | |
| | | @Service
|
| | | public class PushInfoServiceImpl implements PushInfoService {
|
| | |
|
| | | @Resource
|
| | | private PushService pushService;
|
| | | @Resource
|
| | | private PushService pushService;
|
| | |
|
| | | @Resource
|
| | | private UserSystemMsgService userSystemMsgService;
|
| | | @Resource
|
| | | private UserSystemMsgService userSystemMsgService;
|
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | | @Resource
|
| | | private PushInfoMapper pushInfoMapper;
|
| | |
|
| | | @Resource
|
| | | private PushInfoMapper pushInfoMapper;
|
| | | @Override
|
| | | public void save(PushInfo record) throws PushInfoException, Exception {
|
| | | if (record == null) {
|
| | | throw new PushInfoException(1, "参数不正确");
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void save(PushInfo record) throws PushInfoException, Exception {
|
| | | if (record == null) {
|
| | | throw new PushInfoException(1, "参数不正确");
|
| | | }
|
| | | PushTypeEnum type = record.getType();
|
| | | if (type == null) {
|
| | | throw new PushInfoException(1, "推送类型不能为空");
|
| | | }
|
| | |
|
| | | PushTypeEnum type = record.getType();
|
| | | if (type == null) {
|
| | | throw new PushInfoException(1, "推送类型不能为空");
|
| | | }
|
| | | String title = record.getTitle();
|
| | | if (title == null || title.trim().length() == 0) {
|
| | | throw new PushInfoException(1, "标题不能为空");
|
| | | }
|
| | |
|
| | | String title = record.getTitle();
|
| | | if (title == null || title.trim().length() == 0) {
|
| | | throw new PushInfoException(1, "标题不能为空");
|
| | | }
|
| | | String arrayAndroid = record.getArrayAndroid();
|
| | | String arrayIOS = record.getArrayIOS();
|
| | | if (StringUtil.isNullOrEmpty(arrayIOS) && StringUtil.isNullOrEmpty(arrayAndroid)) {
|
| | | throw new PushInfoException(1, "推送版本不能为空");
|
| | | }
|
| | |
|
| | | String arrayAndroid = record.getArrayAndroid();
|
| | | String arrayIOS = record.getArrayIOS();
|
| | | if (StringUtil.isNullOrEmpty(arrayIOS) && StringUtil.isNullOrEmpty(arrayAndroid)) {
|
| | | throw new PushInfoException(1, "推送版本不能为空");
|
| | | }
|
| | | // 定时时间
|
| | | 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 PushInfoException(1, "预设时间不能为空");
|
| | | }
|
| | |
|
| | | // 定时时间
|
| | | 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 PushInfoException(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);
|
| | | }
|
| | |
|
| | | 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);
|
| | | }
|
| | | String url = record.getUrl();
|
| | | String content = record.getContent();
|
| | | if (StringUtil.isNullOrEmpty(url) && StringUtil.isNullOrEmpty(content)) {
|
| | | throw new PushInfoException(1, "推送内容或URL不能为空");
|
| | | }
|
| | |
|
| | | String url = record.getUrl();
|
| | | String content = record.getContent();
|
| | | if (StringUtil.isNullOrEmpty(url) && StringUtil.isNullOrEmpty(content)) {
|
| | | throw new PushInfoException(1, "推送内容或URL不能为空");
|
| | | }
|
| | | if (url != null && (url.trim().length() == 0 || url.equalsIgnoreCase("null"))) {
|
| | | record.setUrl(null);
|
| | | }
|
| | |
|
| | | if (url != null && (url.trim().length() == 0 || url.equalsIgnoreCase("null"))) {
|
| | | record.setUrl(null);
|
| | | }
|
| | | if (content != null && (content.trim().length() == 0 || content.equalsIgnoreCase("null"))) {
|
| | | record.setContent(null);
|
| | | }
|
| | |
|
| | | if (content != null && (content.trim().length() == 0 || content.equalsIgnoreCase("null"))) {
|
| | | record.setContent(null);
|
| | | }
|
| | | String uids = record.getUids();
|
| | | if (uids != null && (uids.trim().length() == 0 || uids.equalsIgnoreCase("null"))) {
|
| | | record.setUids(null);
|
| | | }
|
| | |
|
| | | String uids = record.getUids();
|
| | | if (uids != null && (uids.trim().length() == 0 || uids.equalsIgnoreCase("null"))) {
|
| | | record.setUids(null);
|
| | | }
|
| | | // 数据转换json
|
| | | convertJson(record);
|
| | | record.setState(PushInfo.STATE_INIT);
|
| | |
|
| | | // 数据转换json
|
| | | convertJson(record);
|
| | | record.setState(PushInfo.STATE_INIT);
|
| | | Long id = record.getId();
|
| | | if (id == null) {
|
| | | record.setCreateTime(new Date());
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.insert(record);
|
| | | } else {
|
| | | // 修改
|
| | | PushInfo current = pushInfoMapper.selectByPrimaryKey(id);
|
| | | if (current == null) {
|
| | | throw new PushInfoException(1, "该记录已不存在");
|
| | | }
|
| | |
|
| | | Long id = record.getId();
|
| | | if (id == null) {
|
| | | record.setCreateTime(new Date());
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.insert(record);
|
| | | } else {
|
| | | // 修改
|
| | | PushInfo current = pushInfoMapper.selectByPrimaryKey(id);
|
| | | if (current == null) {
|
| | | throw new PushInfoException(1, "该记录已不存在");
|
| | | }
|
| | | if (PushInfo.STATE_SUCCESS == current.getState()) {
|
| | | throw new PushInfoException(1, "已推送成功的信息不能修改");
|
| | | }
|
| | | record.setCreateTime(current.getCreateTime());
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.updateByPrimaryKey(record);
|
| | | }
|
| | | }
|
| | |
|
| | | if (PushInfo.STATE_SUCCESS == current.getState()) {
|
| | | throw new PushInfoException(1, "已推送成功的信息不能修改");
|
| | | }
|
| | | record.setCreateTime(current.getCreateTime());
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.updateByPrimaryKey(record);
|
| | | }
|
| | | }
|
| | |
|
| | | |
| | | |
| | | /**
|
| | | * 转换json
|
| | | * |
| | | * @param pushGoods
|
| | | */
|
| | | public void convertJson(PushInfo record) {
|
| | | JSONObject json = new JSONObject();
|
| | | String url = record.getUrl();
|
| | | if (StringUtil.isNullOrEmpty(url)) {
|
| | | url = "";
|
| | | }
|
| | | json.put("url", url);
|
| | | json.put("ios", convertVersion(record.getArrayIOS()));
|
| | | json.put("android", convertVersion(record.getArrayAndroid()));
|
| | | record.setJsonData(json.toString());
|
| | | }
|
| | | /**
|
| | | * 转换json
|
| | | */
|
| | | public void convertJson(PushInfo record) {
|
| | | JSONObject json = new JSONObject();
|
| | | String url = record.getUrl();
|
| | | if (StringUtil.isNullOrEmpty(url)) {
|
| | | url = "";
|
| | | }
|
| | | json.put("url", url);
|
| | | json.put("ios", convertVersion(record.getArrayIOS()));
|
| | | json.put("android", convertVersion(record.getArrayAndroid()));
|
| | | record.setJsonData(json.toString());
|
| | | }
|
| | |
|
| | | /**
|
| | | * 转换list
|
| | | * |
| | | * @param pushGoods
|
| | | */
|
| | | public String convertVersion(String array) {
|
| | | String versions = "";
|
| | | if (array != null && array.trim().length() > 0) {
|
| | | Gson gson = new Gson();
|
| | | List<String> list = gson.fromJson(array, new TypeToken<ArrayList<String>>() {
|
| | | }.getType());
|
| | | |
| | | if (list != null && list.size() > 0) {
|
| | | |
| | | for (String version: list) {
|
| | | versions += version + ",";
|
| | | }
|
| | | if (versions.endsWith(",")) {
|
| | | versions = versions.substring(0, versions.length() - 1);
|
| | | }
|
| | | }
|
| | | }
|
| | | return versions;
|
| | | }
|
| | | |
| | | @Override
|
| | | public void deleteBatchByPrimaryKey(List<Long> list) {
|
| | | pushInfoMapper.deleteBatchByPrimaryKey(list);
|
| | | }
|
| | | /**
|
| | | * 转换list
|
| | | */
|
| | | public String convertVersion(String array) {
|
| | | String versions = "";
|
| | | if (array != null && array.trim().length() > 0) {
|
| | | Gson gson = new Gson();
|
| | | List<String> list = gson.fromJson(array, new TypeToken<ArrayList<String>>() {
|
| | | }.getType());
|
| | |
|
| | | @Override
|
| | | public List<PushInfo> listQuery(long start, int count, String key, Integer keyType, Integer state, String type) {
|
| | | |
| | | List<PushInfo> list = pushInfoMapper.listQuery(start, count, key, keyType, state, type);
|
| | | if (list == null || list.size() == 0) {
|
| | | return list;
|
| | | }
|
| | | |
| | | for (PushInfo pushInfo: list) {
|
| | | Date controlTime = pushInfo.getControlTime();
|
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
|
| | | if (controlTime == null) {
|
| | | pushInfo.setTimeTask(false);
|
| | | pushInfo.setControlTime_str("");
|
| | | } else {
|
| | | pushInfo.setTimeTask(true);
|
| | | pushInfo.setControlTime_str(sdf.format(controlTime));
|
| | | }
|
| | | |
| | | String jsonData = pushInfo.getJsonData();
|
| | | JSONObject json = JSONObject.fromObject(jsonData);
|
| | | String url = json.getString("url");
|
| | | pushInfo.setUrl(url);
|
| | | |
| | | List<String> listIOS = new ArrayList<String>();
|
| | | String versionsIOS = json.getString("ios");
|
| | | if (versionsIOS != null && versionsIOS.trim().length() > 0) {
|
| | | listIOS = Arrays.asList(versionsIOS.split(","));
|
| | | }
|
| | | pushInfo.setListIOS(listIOS);
|
| | | if (list != null && list.size() > 0) {
|
| | |
|
| | | List<String> listAndroid = new ArrayList<String>();
|
| | | String versionsAndroid = json.getString("android");
|
| | | if (versionsAndroid != null && versionsAndroid.trim().length() > 0) {
|
| | | listAndroid = Arrays.asList(versionsAndroid.split(","));
|
| | | }
|
| | | pushInfo.setListAndroid(listAndroid);
|
| | | }
|
| | | |
| | | return list;
|
| | | }
|
| | | for (String version : list) {
|
| | | versions += version + ",";
|
| | | }
|
| | | if (versions.endsWith(",")) {
|
| | | versions = versions.substring(0, versions.length() - 1);
|
| | | }
|
| | | }
|
| | | }
|
| | | return versions;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countQuery(String key, Integer keyType, Integer state, String type) {
|
| | | return pushInfoMapper.countQuery(key, keyType, state, type);
|
| | | }
|
| | | @Override
|
| | | public void deleteBatchByPrimaryKey(List<Long> list) {
|
| | | pushInfoMapper.deleteBatchByPrimaryKey(list);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<PushInfo> listTask() {
|
| | | return pushInfoMapper.listTask();
|
| | | }
|
| | | |
| | | @Override
|
| | | public void handPush(Long id) throws Exception, PushInfoException, PushException {
|
| | | PushInfo record = pushInfoMapper.selectByPrimaryKey(id);
|
| | | if (record == null) {
|
| | | throw new PushInfoException(1, "推送信息已不存在");
|
| | | }
|
| | | // 执行推送
|
| | | executePush(record);
|
| | | |
| | | record.setState(PushInfo.STATE_SUCCESS);
|
| | | record.setPushTime(new Date());
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.updateByPrimaryKey(record);
|
| | | }
|
| | | |
| | | @Override
|
| | | public void taskPush(PushInfo record) {
|
| | | String msg = null;
|
| | | int state = PushInfo.STATE_FAIL;
|
| | | try {
|
| | | // 执行推送
|
| | | executePush(record);
|
| | | state = PushInfo.STATE_SUCCESS;
|
| | | } catch (PushInfoException e) {
|
| | | msg = e.getMsg();
|
| | | } catch (PushException e) {
|
| | | msg = e.getMsg();
|
| | | } catch (Exception e) {
|
| | | msg = "系统推送失败";
|
| | | }
|
| | | record.setState(state);
|
| | | record.setPushTime(new Date());
|
| | | record.setRemark(msg);
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.updateByPrimaryKey(record);
|
| | | }
|
| | | |
| | | |
| | | |
| | | @Override
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | public void executePush(PushInfo record) throws Exception, PushInfoException, PushException {
|
| | | @Override
|
| | | public List<PushInfo> listQuery(long start, int count, String key, Integer keyType, Integer state, String type, SystemEnum system) {
|
| | |
|
| | | if (PushInfo.STATE_SUCCESS == record.getState()) {
|
| | | throw new PushInfoException(1, "该信息不能重复推送");
|
| | | }
|
| | | List<PushInfo> list = pushInfoMapper.listQuery(start, count, key, keyType, state, type, system);
|
| | | if (list == null || list.size() == 0) {
|
| | | return list;
|
| | | }
|
| | |
|
| | | String title = record.getTitle();
|
| | | if (title == null || title.trim().length() == 0) {
|
| | | throw new PushInfoException(1, "标题不能为空");
|
| | | }
|
| | | for (PushInfo pushInfo : list) {
|
| | | Date controlTime = pushInfo.getControlTime();
|
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
|
| | | if (controlTime == null) {
|
| | | pushInfo.setTimeTask(false);
|
| | | pushInfo.setControlTime_str("");
|
| | | } else {
|
| | | pushInfo.setTimeTask(true);
|
| | | pushInfo.setControlTime_str(sdf.format(controlTime));
|
| | | }
|
| | |
|
| | | String jsonData = record.getJsonData();
|
| | | if (StringUtil.isNullOrEmpty(jsonData) && StringUtil.isNullOrEmpty(jsonData)) {
|
| | | throw new PushInfoException(1, "推送版本不能为空");
|
| | | }
|
| | | String jsonData = pushInfo.getJsonData();
|
| | | JSONObject json = JSONObject.fromObject(jsonData);
|
| | | String url = json.getString("url");
|
| | | pushInfo.setUrl(url);
|
| | |
|
| | | JSONObject json = JSONObject.fromObject(jsonData);
|
| | | String url = json.getString("url");
|
| | | String content = record.getContent();
|
| | | if (StringUtil.isNullOrEmpty(url) && StringUtil.isNullOrEmpty(content)) {
|
| | | throw new PushInfoException(1, "推送内容或URL不能为空");
|
| | | }
|
| | | List<String> listIOS = new ArrayList<String>();
|
| | | String versionsIOS = json.getString("ios");
|
| | | if (versionsIOS != null && versionsIOS.trim().length() > 0) {
|
| | | listIOS = Arrays.asList(versionsIOS.split(","));
|
| | | }
|
| | | pushInfo.setListIOS(listIOS);
|
| | |
|
| | | List<String> listIOS = new ArrayList<String>();
|
| | | 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) {
|
| | | listAndroid = Arrays.asList(versionsAndroid.split(","));
|
| | | }
|
| | | pushInfo.setListAndroid(listAndroid);
|
| | | }
|
| | |
|
| | | 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(","));
|
| | | }
|
| | | }
|
| | | return list;
|
| | | }
|
| | |
|
| | | List<String> listuid = null;
|
| | | String uids = record.getUids();
|
| | | if (uids != null && uids.trim().length() > 0) {
|
| | | listuid = Arrays.asList(uids.split(","));
|
| | | if (listuid == null || listuid.size() == 0) {
|
| | | throw new PushInfoException(1, "用户id格式不正确");
|
| | | }
|
| | | }
|
| | | @Override
|
| | | public long countQuery(String key, Integer keyType, Integer state, String type, SystemEnum system) {
|
| | | return pushInfoMapper.countQuery(key, keyType, state, type, system);
|
| | | }
|
| | |
|
| | | PushTypeEnum type = record.getType();
|
| | | if (type == null) {
|
| | | throw new PushInfoException(1, "推送类型不能为空");
|
| | | }
|
| | | @Override
|
| | | public List<PushInfo> listTask(SystemEnum system) {
|
| | | return pushInfoMapper.listTask(system);
|
| | | }
|
| | |
|
| | | int pushWay = 0;
|
| | | if (PushTypeEnum.ZNX == type) {
|
| | | pushWay = 1;
|
| | | } else if (PushTypeEnum.URL == type) {
|
| | | pushWay = 2;
|
| | | } else if (PushTypeEnum.BAICHUAN == type) {
|
| | | pushWay = 3;
|
| | | } else {
|
| | | throw new PushInfoException(1, "推送类型不匹配");
|
| | | }
|
| | | @Override
|
| | | public void handPush(Long id) throws Exception, PushInfoException, PushException {
|
| | | PushInfo record = pushInfoMapper.selectByPrimaryKey(id);
|
| | | if (record == null) {
|
| | | throw new PushInfoException(1, "推送信息已不存在");
|
| | | }
|
| | | // 执行推送
|
| | | executePush(record);
|
| | | record.setState(PushInfo.STATE_SUCCESS);
|
| | | record.setPushTime(new Date());
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.updateByPrimaryKey(record);
|
| | | }
|
| | |
|
| | | if (listuid == null) { // 全推
|
| | | switch (pushWay) {
|
| | | case 1: // 站内信
|
| | | pushService.pushZNX(null, title, content, listIOS, listAndroid);
|
| | | break;
|
| | | case 2: // 网页推送
|
| | | pushService.pushUrl(null, title, content, url, listIOS, listAndroid);
|
| | | break;
|
| | | case 3: // 百川
|
| | | pushService.pushBaiChuanUrl(null, title, content, url, listIOS, listAndroid);
|
| | | break;
|
| | | default:
|
| | | throw new PushInfoException(1, "推送类型不匹配");
|
| | | }
|
| | | @Override
|
| | | public void taskPush(PushInfo record) {
|
| | | String msg = null;
|
| | | int state = PushInfo.STATE_FAIL;
|
| | | try {
|
| | | // 执行推送
|
| | | executePush(record);
|
| | | state = PushInfo.STATE_SUCCESS;
|
| | | } catch (PushInfoException e) {
|
| | | msg = e.getMsg();
|
| | | } catch (PushException e) {
|
| | | msg = e.getMsg();
|
| | | } catch (Exception e) {
|
| | | msg = "系统推送失败";
|
| | | }
|
| | | record.setState(state);
|
| | | record.setPushTime(new Date());
|
| | | record.setRemark(msg);
|
| | | record.setUpdateTime(new Date());
|
| | | pushInfoMapper.updateByPrimaryKey(record);
|
| | | }
|
| | |
|
| | | } else {
|
| | | for (String str_uid : listuid) {
|
| | | if (str_uid != null && str_uid.trim().length() > 0) {
|
| | | long uid = Long.parseLong(str_uid);
|
| | | switch (pushWay) {
|
| | | case 1: // 站内信
|
| | | pushService.pushZNX(uid, title, content, listIOS, listAndroid);
|
| | | userSystemMsgService.addUserSystemMsg(uid, UserSystemMsgTypeEnum.question, title, content,
|
| | | UserSystemMsg.TIME_TAG_COMMON, null);
|
| | | break;
|
| | | case 2: // 网页推送
|
| | | pushService.pushUrl(uid, title, content, url, listIOS, listAndroid);
|
| | | break;
|
| | | case 3: // 百川
|
| | | pushService.pushBaiChuanUrl(uid, title, content, url, listIOS, listAndroid);
|
| | | break;
|
| | | default:
|
| | | throw new PushInfoException(1, "推送类型不匹配");
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | }
|
| | | @Override
|
| | | public PushInfo selectByPrimaryKey(Long id) {
|
| | | return pushInfoMapper.selectByPrimaryKey(id);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void updateSelectiveByPrimaryKey(PushInfo info) {
|
| | | pushInfoMapper.updateByPrimaryKeySelective(info);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void executePush(PushInfo record) throws Exception, PushInfoException, PushException {
|
| | |
|
| | | if (PushInfo.STATE_SUCCESS == record.getState()) {
|
| | | throw new PushInfoException(1, "该信息不能重复推送");
|
| | | }
|
| | |
|
| | | String title = record.getTitle();
|
| | | if (title == null || title.trim().length() == 0) {
|
| | | throw new PushInfoException(1, "标题不能为空");
|
| | | }
|
| | |
|
| | | String jsonData = record.getJsonData();
|
| | | if (StringUtil.isNullOrEmpty(jsonData) && StringUtil.isNullOrEmpty(jsonData)) {
|
| | | throw new PushInfoException(1, "推送版本不能为空");
|
| | | }
|
| | |
|
| | | JSONObject json = JSONObject.fromObject(jsonData);
|
| | | String url = json.getString("url");
|
| | | String content = record.getContent();
|
| | | if (StringUtil.isNullOrEmpty(url) && StringUtil.isNullOrEmpty(content)) {
|
| | | throw new PushInfoException(1, "推送内容或URL不能为空");
|
| | | }
|
| | |
|
| | | List<String> listIOS = new ArrayList<String>();
|
| | | 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(","));
|
| | | }
|
| | | }
|
| | |
|
| | | List<String> listuid = null;
|
| | | String uids = record.getUids();
|
| | | if (uids != null && uids.trim().length() > 0) {
|
| | | listuid = Arrays.asList(uids.split(","));
|
| | | if (listuid == null || listuid.size() == 0) {
|
| | | throw new PushInfoException(1, "用户id格式不正确");
|
| | | }
|
| | | }
|
| | |
|
| | | PushTypeEnum type = record.getType();
|
| | | if (type == null) {
|
| | | throw new PushInfoException(1, "推送类型不能为空");
|
| | | }
|
| | |
|
| | | int pushWay = 0;
|
| | | if (PushTypeEnum.ZNX == type) {
|
| | | pushWay = 1;
|
| | | } else if (PushTypeEnum.URL == type) {
|
| | | pushWay = 2;
|
| | | } else if (PushTypeEnum.BAICHUAN == type) {
|
| | | pushWay = 3;
|
| | | } else {
|
| | | throw new PushInfoException(1, "推送类型不匹配");
|
| | | }
|
| | |
|
| | | if (listuid == null) { // 全推
|
| | | switch (pushWay) {
|
| | | case 1: // 站内信
|
| | | pushService.pushZNX(null, title, content, listIOS, listAndroid, record.getSystem());
|
| | | break;
|
| | | case 2: // 网页推送
|
| | | pushService.pushUrl(null, title, content, url, listIOS, listAndroid, record.getSystem());
|
| | | break;
|
| | | case 3: // 百川
|
| | | pushService.pushBaiChuanUrl(null, title, content, url, listIOS, listAndroid, record.getSystem());
|
| | | break;
|
| | | default:
|
| | | throw new PushInfoException(1, "推送类型不匹配");
|
| | | }
|
| | |
|
| | | } else {
|
| | | for (String str_uid : listuid) {
|
| | | if (str_uid != null && str_uid.trim().length() > 0) {
|
| | | long uid = Long.parseLong(str_uid);
|
| | | switch (pushWay) {
|
| | | case 1: // 站内信
|
| | | pushService.pushZNX(uid, title, content, listIOS, listAndroid, record.getSystem());
|
| | | userSystemMsgService.addUserSystemMsg(uid, UserSystemMsgTypeEnum.question, title, content,
|
| | | UserSystemMsg.TIME_TAG_COMMON, null);
|
| | | break;
|
| | | case 2: // 网页推送
|
| | | pushService.pushUrl(uid, title, content, url, listIOS, listAndroid, record.getSystem());
|
| | | break;
|
| | | case 3: // 百川
|
| | | pushService.pushBaiChuanUrl(uid, title, content, url, listIOS, listAndroid, record.getSystem());
|
| | | break;
|
| | | default:
|
| | | throw new PushInfoException(1, "推送类型不匹配");
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | | }
|