|
|
@@ -0,0 +1,220 @@
|
|
|
+package com.uas.platform.b2b.mobile.service.impl;
|
|
|
+
|
|
|
+import com.uas.platform.b2b.dao.CommonDao;
|
|
|
+import com.uas.platform.b2b.dao.PagingReleaseDao;
|
|
|
+import com.uas.platform.b2b.dao.PagingReleaseDetailDao;
|
|
|
+import com.uas.platform.b2b.mobile.model.ReleaseDetail;
|
|
|
+import com.uas.platform.b2b.mobile.model.ReleaseTotal;
|
|
|
+import com.uas.platform.b2b.mobile.service.MobileReleaseService;
|
|
|
+import com.uas.platform.b2b.model.PagingRelease;
|
|
|
+import com.uas.platform.b2b.model.PagingReleaseDetail;
|
|
|
+import com.uas.platform.core.model.Constant;
|
|
|
+import com.uas.sso.common.util.HttpUtil;
|
|
|
+import com.uas.sso.common.util.HttpUtil.ResponseWrap;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.ui.ModelMap;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by dongbw
|
|
|
+ * 17/03/28 9:27.
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class MobileReleaseServiceImpl implements MobileReleaseService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PagingReleaseDao pagingReleaseDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CommonDao commonDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private JdbcTemplate jdbcTemplate;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PagingReleaseDetailDao pagingReleaseDetailDao;
|
|
|
+
|
|
|
+ private static String URL = "http://113.105.74.140:8092/tigase/baiduPush";
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ModelMap getReleaseCounts(Long vendUseruu, Long venduu) {
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ String countSql = "select count(*) from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and prd.prd_totalstatus = 0";
|
|
|
+ Integer allCount = commonDao.queryForObject(countSql, Integer.class);
|
|
|
+ String idSql = "select pr.pr_id from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and prd.prd_totalstatus = 0";
|
|
|
+ List<Integer> ids = commonDao.queryForList(idSql, Integer.class);
|
|
|
+ String idString = new String();
|
|
|
+ for (Integer id : ids) {
|
|
|
+ if (!"".equals(idString)) {
|
|
|
+ idString = idString.concat(",");
|
|
|
+ }
|
|
|
+ idString = idString.concat(String.valueOf(id));
|
|
|
+ }
|
|
|
+ String title = "select a.pr_title " +
|
|
|
+ " from purc$pagingrelease a left join purc$pagingreleasedetail prd on a.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and not exists( " +
|
|
|
+ " select 1 from purc$pagingrelease b where b.pr_date>a.pr_date) and prd.prd_totalstatus = 0";
|
|
|
+ String date = "select a.pr_date " +
|
|
|
+ " from purc$pagingrelease a left join purc$pagingreleasedetail prd on a.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and not exists( " +
|
|
|
+ " select 1 from purc$pagingrelease b where b.pr_date>a.pr_date) and prd.prd_totalstatus = 0";
|
|
|
+ String context = "select a.pr_context " +
|
|
|
+ " from purc$pagingrelease a left join purc$pagingreleasedetail prd on a.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and not exists( " +
|
|
|
+ " select 1 from purc$pagingrelease b where b.pr_date>a.pr_date) and prd.prd_totalstatus = 0";
|
|
|
+ String type = "select a.pr_type " +
|
|
|
+ " from purc$pagingrelease a left join purc$pagingreleasedetail prd on a.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and not exists( " +
|
|
|
+ " select 1 from purc$pagingrelease b where b.pr_date>a.pr_date) and prd.prd_totalstatus = 0";
|
|
|
+ List<ReleaseTotal> list = new ArrayList<>();
|
|
|
+ ReleaseTotal listdata = new ReleaseTotal();
|
|
|
+ List<String> dataTitles = commonDao.queryForList(title, String.class); // 可能为0 或 1,所以用list装
|
|
|
+ if (!CollectionUtils.isEmpty(dataTitles)) {
|
|
|
+ String dataTitle = dataTitles.get(0);
|
|
|
+ listdata.setTitle(dataTitle);
|
|
|
+ }
|
|
|
+ List<Date> lastTimes = commonDao.queryForList(date, Date.class);
|
|
|
+ if (!CollectionUtils.isEmpty(lastTimes)) {
|
|
|
+ Date lastTime = lastTimes.get(0);
|
|
|
+ listdata.setLastTime(lastTime);
|
|
|
+ }
|
|
|
+ List<String> lastMessages = commonDao.queryForList(context, String.class);
|
|
|
+ if (!CollectionUtils.isEmpty(lastMessages)) {
|
|
|
+ String lastMessage = lastMessages.get(0);
|
|
|
+ listdata.setLastMessage(lastMessage);
|
|
|
+ }
|
|
|
+ List<String> dataTypes = commonDao.queryForList(type, String.class);
|
|
|
+ if (!CollectionUtils.isEmpty(dataTypes)) {
|
|
|
+ String dataType = dataTypes.get(0);
|
|
|
+ listdata.setType(dataType);
|
|
|
+ listdata.setCount(allCount);
|
|
|
+ }
|
|
|
+ list.add(listdata);
|
|
|
+ map.put("allCount", allCount);
|
|
|
+ map.put("success", true);
|
|
|
+ map.put("ids", idString);
|
|
|
+ map.put("listdata", list);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void changeReleaseCounts(String ids) {
|
|
|
+ String[] idArray = ids.split(",");
|
|
|
+ for (String id : idArray) {
|
|
|
+ PagingRelease release = pagingReleaseDao.findOne(Long.valueOf(id));
|
|
|
+ Set<PagingReleaseDetail> releaseDetails = release.getPagingReleaseDetails();
|
|
|
+ for (PagingReleaseDetail detail : releaseDetails) {
|
|
|
+ detail.setTotalStatus(Constant.YES);
|
|
|
+ pagingReleaseDetailDao.save(detail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ModelMap getReleaseDetails(Long vendUseruu, Long venduu, String type) {
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ String countSql = "select count(*) from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and pr.pr_type = '" + type + "' and prd.prd_status = 0";
|
|
|
+ Integer allCount = commonDao.queryForObject(countSql, Integer.class);
|
|
|
+ String idSql = "select pr.pr_id from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and pr.pr_type = '" + type + "' and prd.prd_status = 0";
|
|
|
+ List<Integer> ids = commonDao.queryForList(idSql, Integer.class);
|
|
|
+ String idString = new String();
|
|
|
+ for (Integer id : ids) {
|
|
|
+ if (!"".equals(idString)) {
|
|
|
+ idString = idString.concat(",");
|
|
|
+ }
|
|
|
+ idString = idString.concat(String.valueOf(id));
|
|
|
+ }
|
|
|
+// String idSql = "select pr.pr_id from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and pr.pr_type = " + type + " and prd.prd_status == 0;";
|
|
|
+// List<Integer> ids = commonDao.queryForList(idSql, Integer.class);
|
|
|
+// String idString = new String();
|
|
|
+// for (Integer id : ids) {
|
|
|
+// if (!"".equals(idString)) {
|
|
|
+// idString = idString.concat(",");
|
|
|
+// }
|
|
|
+// idString = idString.concat(String.valueOf(id));
|
|
|
+// }
|
|
|
+// List<PagingReleaseDetail> detailList = pagingReleaseDetailDao.findAll(new Specification<PagingReleaseDetail>() {
|
|
|
+// @Override
|
|
|
+// public Predicate toPredicate(Root<PagingReleaseDetail> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
|
|
+// cb.equal(root.get("status"), Constant.NO);
|
|
|
+// return query.getRestriction();
|
|
|
+// }
|
|
|
+// });
|
|
|
+// final Set<Long> ids = new HashSet<>();
|
|
|
+// for (PagingReleaseDetail detail : detailList) {
|
|
|
+// ids.add(detail.getPagingRelease().getId());
|
|
|
+// }
|
|
|
+// List<PagingRelease> pagingReleaseList = pagingReleaseDao.findAll(new Specification<PagingRelease>() {
|
|
|
+// @Override
|
|
|
+// public Predicate toPredicate(Root<PagingRelease> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
|
|
+// Predicate p1 = root.get("id").in(ids.toArray());
|
|
|
+// Predicate p2 = cb.equal(root.get("emUU"), emuu);
|
|
|
+// Predicate p3 = cb.equal(root.get("enUU"), enuu);
|
|
|
+// Predicate p = cb.and(p1,cb.and(p2,p3));
|
|
|
+// query.where(p);
|
|
|
+// return query.getRestriction();
|
|
|
+// }
|
|
|
+// });
|
|
|
+// List<ReleaseDetail> releaseDetailList = new ArrayList<>();
|
|
|
+// for (PagingRelease release : pagingReleaseList) {
|
|
|
+// ReleaseDetail releaseDetail = new ReleaseDetail(release.getId(), release.getUser().getUserName(), release.getDate(), release.getContext(), release.getTitle());
|
|
|
+// releaseDetailList.add(releaseDetail);
|
|
|
+// }
|
|
|
+ String releaseSql = "select pr.pr_id id,pr.pr_emname releaser,pr.pr_date createTime,pr.pr_context subTitle,pr.pr_title title from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and pr.pr_type= '" + type + "' and prd.prd_status = 0 order by pr.pr_date desc";
|
|
|
+ List<ReleaseDetail> releaseDetailList = commonDao.query(releaseSql, ReleaseDetail.class);
|
|
|
+ map.put("allCount", allCount);
|
|
|
+ map.put("success", true);
|
|
|
+ map.put("ids", idString);
|
|
|
+ map.put("listdata", releaseDetailList);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ModelMap changeReleaseDetails(String ids) {
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ boolean success = false;
|
|
|
+ String[] idArray = ids.split(",");
|
|
|
+ for (String id : idArray) {
|
|
|
+ PagingRelease release = pagingReleaseDao.findOne(Long.valueOf(id));
|
|
|
+ Set<PagingReleaseDetail> releaseDetails = release.getPagingReleaseDetails();
|
|
|
+ for (PagingReleaseDetail detail : releaseDetails) {
|
|
|
+ detail.setStatus(Constant.YES);
|
|
|
+ pagingReleaseDetailDao.save(detail);
|
|
|
+ success = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("success", success);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity<ModelMap> pushRelease(Long vendUseruu, Long venduu) throws Exception {
|
|
|
+ List<PagingReleaseDetail> releaseDetailList = pagingReleaseDetailDao.findByVendUserUUAndVendUU(vendUseruu, venduu);
|
|
|
+ for (PagingReleaseDetail releaseDetail : releaseDetailList) {
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ if (releaseDetail.getPagingRelease().getUser().getUserIMId() != null) {
|
|
|
+ params.put("master", releaseDetail.getPagingRelease().getEnterprise().getEnName());//账套 公司名称
|
|
|
+ params.put("userid", String.valueOf(releaseDetail.getPagingRelease().getUser().getUserIMId()));//推送目标用户
|
|
|
+ params.put("title", releaseDetail.getPagingRelease().getTitle());//推送标题
|
|
|
+ params.put("content", releaseDetail.getPagingRelease().getContext());//正文
|
|
|
+ params.put("enUU", String.valueOf(releaseDetail.getPagingRelease().getEnUU()));//UU号
|
|
|
+// params.put("masterId", masterId);//账套ID
|
|
|
+ params.put("url", "http://uas.ubtob.com/#/sale/order");//跳转链接地址
|
|
|
+ params.put("pageTitle", releaseDetail.getPagingRelease().getTitle());//页面标题
|
|
|
+ params.put("platform", "B2B");//系统名称,ERP或
|
|
|
+ ResponseWrap res = null;
|
|
|
+ try {
|
|
|
+ res = HttpUtil.doPost(URL, params);
|
|
|
+ if (!res.isSuccess())
|
|
|
+ throw new Exception(res.getContent());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new ResponseEntity<ModelMap>(HttpStatus.OK);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|