123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617 |
- package com.chinacreator.videoalliance.order.service;
- import com.chinacreator.common.exception.BusinessException;
- import com.chinacreator.common.util.URLUtil;
- import com.chinacreator.videoalliance.common.dao.DictionaryDao;
- import com.chinacreator.videoalliance.order.bean.*;
- import com.chinacreator.videoalliance.order.dao.*;
- import com.chinacreator.videoalliance.order.util.JsonUtil;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.lang.math.NumberUtils;
- import org.apache.commons.lang.time.DateFormatUtils;
- import org.apache.commons.lang.time.DateUtils;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.sql.SQLException;
- import java.text.ParseException;
- import java.util.*;
- @Component
- public class EcbService
- {
- private static Logger log = Logger.getLogger(EcbService.class);
- @Autowired
- private ECBConfigDao ecbConfigDao;
- @Autowired
- private DictionaryDao dictionaryDao;
- @Autowired
- private EcbOrderWhiteDao ecbOrderWhiteDao;
- @Autowired
- private SPDao spDao;
- @Autowired
- private EcbProductDao ecbProductDao;
-
- @Autowired
- private EcbDiscntDao ecbDiscntDao;
- public String query(String userid, String cpid, String spid, String province) throws Exception {
- String brand = ""; //用户品牌
- ECBBean bean = this.ecbConfigDao.findByCP(cpid, spid, province);
- bean = null;
- if ((bean != null) && (bean.getStatus() == 0)) {
- String result = null;
- try {
- result = URLUtil.get(
- this.dictionaryDao.getValue("ecbUrl") + "?userid=" + userid + "&cpid=" + cpid + "&spid=" + spid,
- NumberUtils.toInt(this.dictionaryDao.getValue("ecbTimeout")));
- } catch (Exception e) {
- e.printStackTrace();
- }
- if (result != null) {
- Map<?,?> map = JsonUtil.jsonToMap(result);
- if ((!map.get("resultCode").toString().equals("0")) &&
- (!map.get("resultCode").toString().equals("10003"))) {
- String errorInfo = "用户三户查询结果异常";
- throw new BusinessException((String)map.get("resultCode"), errorInfo, new String[0]);
- }
- //判断是否4G用户
- if(map.get("brand") != null && !"".equals(map.get("brand"))){
- brand = map.get("brand").toString();
- }
-
- if(StringUtils.isNotEmpty(bean.getLimit()) && map.get("pacakge") != null && StringUtils.isNotEmpty(map.get("pacakge").toString())) {
- String[] strLimt = bean.getLimit().split("\\|\\|");
- if(strLimt != null && strLimt.length>0) {
- for (String string : strLimt) {
- if(map.get("pacakge").toString().contains(string.replaceAll("\\*", ""))) {
- if(this.ecbOrderWhiteDao.queryEcbJoinWhite(cpid,spid,province,userid)){
- }else{
- throw new BusinessException("10004","三户套餐限制");
- }
- }
- }
- }
- }
- }
- }
- return brand;
- }
- public String order(String userid, String cpid, String spid, EcbProductInfo ecbProductInfo) throws Exception
- {
- String resultCode = "0";
- String errorInfo = "";
- int temp = 0;
- long begintime = System.currentTimeMillis();
- try {
- EcbProductInfo info = null;
- if (ecbProductInfo != null) {
- info = ecbProductInfo;
- } else {
- EcbResponseBean ecbResponseBean = queryPorduct(userid, cpid, spid, "0", null, spid.equals("1150") ? "1" :"0");
- info = (EcbProductInfo)ecbResponseBean.getUserProductInfo().getProductInfos().get(0);
- ecbProductInfo = info;
- }
- if ((StringUtils.isEmpty(info.getDiscntStartDate())) ||
- (NumberUtils.toLong(info.getDiscntStartDate()) <
- NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")))) {
- info.setDiscntStartDate(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"));
- }
- temp = 1;
- ecb(info, "0", userid, cpid, spid);
- } catch (Exception e) {
- log.error("订购失败", e);
- if ((e instanceof BusinessException)) {
- resultCode = ((BusinessException)e).getCode();
- errorInfo = ((BusinessException)e).getMessage();
- } else {
- resultCode = "8000";
- errorInfo = "系统忙!";
- }
- SPInfo spInfo = this.spDao.findById(spid);
- if (spInfo.getErrorhandle() == 1)
- throw e;
- }
- finally {
- saveLog(userid, resultCode, "0", errorInfo, cpid, spid, temp+"",
- (System.currentTimeMillis() - begintime)+"");
- }
- return resultCode;
- }
- public String order(String userid, String cpid, String spid) throws Exception {
- return order(userid, cpid, spid, null);
- }
- public String cancelOrder(String userid, String cpid, String spid, String ordertime, EcbProductInfo productInfo) throws Exception
- {
- String resultCode = "0";
- String errorInfo = "";
- int temp = 0;
- long begintime = System.currentTimeMillis();
- try {
- EcbProductInfo info = null;
- if (productInfo != null) {
- info = productInfo;
- } else {
- EcbResponseBean ecbResponseBean = queryPorduct(userid, cpid, spid, "1", null, spid.equals("1150") ? "1" :"0");
- info = (EcbProductInfo)ecbResponseBean.getUserProductInfo().getProductInfos().get(0);
- if ((StringUtils.isEmpty(info.getDiscntCode())) && (StringUtils.isEmpty(info.getPackageCode())) &&
- (StringUtils.isEmpty(info.getProductId()))) {
- EcbProductInfo ecbProductInfo = this.ecbProductDao.queryEcbProductByUser(userid);
- if (ecbProductInfo == null) {
- throw new BusinessException("9032", "ecb退订失败,本地无资费信息", new String[0]);
- }
- productInfo = info;
- }
- if ((info.getDiscntOrderState() != null) && (info.getDiscntOrderState().equals("2"))) {
- throw new BusinessException("9031", "ecb禁止用户退订", new String[0]);
- }
- }
- if ((StringUtils.isEmpty(info.getDiscntStartDate())) ||
- (NumberUtils.toLong(info.getDiscntStartDate()) <
- NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")))) {
- info.setDiscntStartDate(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"));
- }
- info.setDiscntEndDate(getLastDay(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")));
- temp = 1;
- ecb(info, "1", userid, cpid, spid);
- } catch (Exception e) {
- log.error("退订失败", e);
- if ((e instanceof BusinessException)) {
- resultCode = ((BusinessException)e).getCode();
- errorInfo = ((BusinessException)e).getMessage();
- } else {
- resultCode = "8000";
- errorInfo = "系统忙!";
- }
- if (this.spDao.findById(spid).getErrorhandle() == 1)
- throw e;
- }
- finally {
- saveLog(userid, resultCode, "1", errorInfo, cpid, spid, temp+"",
- (System.currentTimeMillis() - begintime)+"");
- }
- return resultCode;
- }
- public String cancelOrder(String userid, String cpid, String spid, String ordertime) throws Exception {
- return cancelOrder(userid, cpid, spid, ordertime, null);
- }
- public void ecb(EcbProductInfo info, String type, String userid, String cpid, String spid)
- throws Exception
- {
- String url =dictionaryDao.getValue("ecbOrderUrl")+ "?userid=" + userid + "&cpid=" + cpid + "&spid=" + spid +
- "&productId=" + info.getProductId() + "&packageCode=" + info.getPackageCode() + "&discntCode=" +
- info.getDiscntCode() + "&type=" + type + "&starttime=" + info.getDiscntStartDate() + "&endtime=" +
- info.getDiscntEndDate();
- if (NumberUtils.toLong(info.getDiscntStartDate()) >
- NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"))) {
- url = url + "&startEnable=1";
- }
- String resultstr = URLUtil.get(url, NumberUtils.toInt(this.dictionaryDao.getValue("ecbTimeout")));
- log.info("order/cancelresultstr====" + resultstr);
- Map<?,?> resultMap = JsonUtil.jsonToMap(resultstr);
- if (!((String)resultMap.get("resultCode")).equals("0"))
- throw new BusinessException((String)resultMap.get("resultCode"), (String)resultMap.get("errorInfo"), new String[0]);
- }
- public String ecbxml(EcbProductInfo info, String type, String userid, String cpid, String spid)
- throws Exception
- {
- String url =
- dictionaryDao.getValue("ecbOrderUrl")+"?userid=" + userid + "&cpid=" + cpid + "&spid=" + spid + "&productId=" + info.getProductId() +
- "&packageCode=" + info.getPackageCode() + "&discntCode=" + info.getDiscntCode() + "&type=" + type + "&starttime=" + info.getDiscntStartDate() +
- "&endtime=" + info.getDiscntEndDate() + "&needxml=0";
- if (NumberUtils.toLong(info.getDiscntStartDate()) >
- NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"))) {
- url = url + "&startEnable=1";
- }
- String resultstr = URLUtil.get(url, NumberUtils.toInt(this.dictionaryDao.getValue("ecbTimeout")));
- return resultstr;
- }
- public EcbResponseBean queryPorduct(String userid, String cpid, String spid, String type, String channel, String distinctType)
- throws Exception
- {
- String result = URLUtil.get(dictionaryDao.getValue("ecbProductUrl")+"?userid=" + userid + "&cpid=" +
- cpid + "&spid=" + spid, NumberUtils.toInt(this.dictionaryDao.getValue("ecbTimeout")));
- log.info("result====" + userid + ":" + result);
- EcbResponseBean infos = (EcbResponseBean)JsonUtil.jsonToBean(result, EcbResponseBean.class);
- log.info("infos====" + userid + ":" + JsonUtil.objectToJson(infos));
- if ((!infos.getResultCode().equals("0")) && ((!type.equals("1")) || (!infos.getCode().equals("8888")))) {
- throw new BusinessException(infos.getResultCode(), infos.getErrorInfo(), new String[0]);
- }
- if (infos.getUserProductInfo() == null) {
- throw new BusinessException("9036", "无产品信息", new String[0]);
- }
- if ((infos.getUserProductInfo().getProductInfos() == null) ||
- (infos.getUserProductInfo().getProductInfos().size() == 0)) {
- throw new BusinessException("9034", "资费信息信息不全", new String[0]);
- }
- List<EcbProductInfo> infoList = null;
- if ((StringUtils.isNotEmpty(channel)) && (channel.equals("H5_ko"))){
- DiscntInfo discntInfo = ecbDiscntDao.queryByUserid(userid, distinctType, 0);
- if(discntInfo != null){
- infoList = new ArrayList<EcbProductInfo>();
- EcbProductInfo channelEcbProductInfo = new EcbProductInfo();
- channelEcbProductInfo.setDiscntCode(discntInfo.getDiscntid());
- channelEcbProductInfo.setDiscntStartDate(discntInfo.getOrdertime());
- channelEcbProductInfo.setDiscntEndDate(discntInfo.getEndtime());
- channelEcbProductInfo.setDiscntOrderState("3");
- channelEcbProductInfo.setDiscntValue(discntInfo.getDiscnttype());
- channelEcbProductInfo.setDiscntFee(discntInfo.getDiscntfee());
- infoList.add(channelEcbProductInfo );
- }else{
- infoList = choseProductForSpecial(infos.getUserProductInfo().getProductInfos(), distinctType);
- }
- } else if ((StringUtils.isNotEmpty(channel)) && (channel.equals("H5_verify"))){
- infoList = choseProductTest(infos.getUserProductInfo().getProductInfos(), distinctType);
- }else {
- infoList = choseProduct(infos.getUserProductInfo().getProductInfos(), distinctType);
- }
- log.info("infoList====" + userid + ":" + JsonUtil.objectToJson(infoList));
- infos.getUserProductInfo().setProductInfos(infoList);
- if ((infoList == null) || (infoList.size() == 0)) {
- throw new BusinessException("9035", "未查询出用户资费信息", new String[0]);
- }
- return infos;
- }
- public EcbResponseBean queryPorductXML(String userid, String cpid, String spid, String type) throws Exception {
- String url = dictionaryDao.getValue("ecbProductUrl")+"?userid=" + userid + "&cpid=" + cpid +
- "&spid=" + spid + "&needxml=0";
- String result = URLUtil.get(url, NumberUtils.toInt(this.dictionaryDao.getValue("ecbTimeout")));
- EcbResponseBean infos = (EcbResponseBean)JsonUtil.jsonToBean(result, EcbResponseBean.class);
- return infos;
- }
- public EcbResponseBean queryPorduct(String userid, String cpid, String type, String channel, String distinctType) throws Exception
- {
- return queryPorduct(userid, cpid, "", type, channel, distinctType);
- }
- public List<EcbProductInfo> choseProductForSpecial(List<EcbProductInfo> infos, String discntType) throws ParseException
- {
- List<EcbProductInfo> returnBeans = new ArrayList<EcbProductInfo>();
- List<EcbProductInfo> sdInfos = new ArrayList<EcbProductInfo>();
- List<EcbProductInfo> infiniteInfos = new ArrayList<EcbProductInfo>();
- for (EcbProductInfo ecbProductInfo : infos) {
- if ((StringUtils.isEmpty(ecbProductInfo.getDiscntValue())) || (ecbProductInfo.getDiscntValue().equals("0")))
- sdInfos.add(ecbProductInfo);
- else {
- infiniteInfos.add(ecbProductInfo);
- }
- }
- if ((StringUtils.isEmpty(discntType)) || (discntType.equals("0"))) {
- EcbProductInfo info = choseProductForSpecialRule(sdInfos);
- if (info != null)
- returnBeans.add(info);
- }
- else if (discntType.equals("1")) {
- EcbProductInfo info = choseProductForSpecialRule(infiniteInfos);
- if (info != null)
- returnBeans.add(info);
- }
- else {
- EcbProductInfo info1 = choseProductForSpecialRule(sdInfos);
- if (info1 != null) {
- returnBeans.add(info1);
- }
- EcbProductInfo info2 = choseProductForSpecialRule(infiniteInfos);
- if (info2 != null) {
- returnBeans.add(info2);
- }
- }
- return returnBeans;
- }
- public EcbProductInfo choseProductForSpecialRule(List<EcbProductInfo> infos) throws ParseException {
- EcbProductInfo returnBean = null;
- System.out.println("infos size"+infos.size());
- for (EcbProductInfo ecbProductInfo : infos) {
- String discntstartime = ecbProductInfo.getDiscntStartDate();
- String discntendtime = ecbProductInfo.getDiscntEndDate();
- if ((StringUtils.isEmpty(discntstartime)) || (StringUtils.isEmpty(discntendtime))) {
- continue;
- }
- discntstartime = format(discntstartime);
- discntendtime = format(discntendtime);
- if (ecbProductInfo.getDiscntOrderState().equals("3")) {
- ecbProductInfo.setDiscntStartDate(discntstartime);
- ecbProductInfo.setDiscntEndDate(discntendtime);
- if (returnBean == null) {
- returnBean = ecbProductInfo;
- }else if ((StringUtils.isEmpty(returnBean.getDiscntFee())) &&
- (StringUtils.isNotEmpty(ecbProductInfo.getDiscntFee())) &&
- (ecbProductInfo.getDiscntFee().equals("0"))) {
- returnBean = ecbProductInfo;
- } else if (NumberUtils.toInt(returnBean.getDiscntFee()) >
- NumberUtils.toInt(ecbProductInfo.getDiscntFee())) {
- returnBean = ecbProductInfo;
- } else {
- if (NumberUtils.toInt(returnBean.getDiscntFee()) !=
- NumberUtils.toInt(ecbProductInfo.getDiscntFee()))
- {
- continue;
- }
- if (daysBetween(DateUtils.parseDate(ecbProductInfo.getDiscntStartDate().substring(0, 8), new String[] { "yyyyMMdd" }), DateUtils.parseDate(ecbProductInfo.getDiscntEndDate().substring(0, 8), new String[] { "yyyyMMdd" }))
- <= daysBetween(DateUtils.parseDate(returnBean.getDiscntStartDate().substring(0, 8), new String[] { "yyyyMMdd" }), DateUtils.parseDate(returnBean.getDiscntEndDate().substring(0, 8), new String[] { "yyyyMMdd" })))
- continue;
- returnBean = ecbProductInfo;
- }
- }
- }
- if (returnBean != null) {
- if ((StringUtils.isEmpty(returnBean.getDiscntValue())) || (returnBean.getDiscntValue().equals("0")))
- returnBean.setSpid("1040");
- else if (returnBean.getDiscntValue().equals("1")) {
- returnBean.setSpid("1150");
- }
- }
- return returnBean;
- }
- public static int daysBetween(Date smdate, Date bdate) throws ParseException {
- Calendar cal = Calendar.getInstance();
- cal.setTime(smdate);
- long time1 = cal.getTimeInMillis();
- cal.setTime(bdate);
- long time2 = cal.getTimeInMillis();
- long between_days = (time2 - time1) / 86400000L;
- return Integer.parseInt(String.valueOf(between_days));
- }
- public List<EcbProductInfo> choseProduct(List<EcbProductInfo> infos) {
- return choseProduct(infos, "0");
- }
-
- public List<EcbProductInfo> choseWxcsProduct(List<EcbProductInfo> infos) {
- return choseProduct(infos, "1");
- }
-
- public List<EcbProductInfo> choseProductTest(List<EcbProductInfo> infos, String discntType) {
- List<EcbProductInfo> returnBeans = new ArrayList<EcbProductInfo>();
- List<EcbProductInfo> sdInfos = new ArrayList<EcbProductInfo>();
- List<EcbProductInfo> infiniteInfos = new ArrayList<EcbProductInfo>();
- for (EcbProductInfo ecbProductInfo : infos) {
- if ((StringUtils.isEmpty(ecbProductInfo.getDiscntValue())) || (ecbProductInfo.getDiscntValue().equals("0")))
- sdInfos.add(ecbProductInfo);
- else {
- infiniteInfos.add(ecbProductInfo);
- }
- }
- if ((StringUtils.isEmpty(discntType)) || (discntType.equals("0"))) {
- EcbProductInfo info = choseProductRuleTest(sdInfos);
- if (info != null)
- returnBeans.add(info);
- }
- else if (discntType.equals("1")) {
- EcbProductInfo info = choseProductRuleTest(infiniteInfos);
- if (info != null)
- returnBeans.add(info);
- }
- else {
- EcbProductInfo info1 = choseProductRuleTest(sdInfos);
- if (info1 != null) {
- returnBeans.add(info1);
- }
- EcbProductInfo info2 = choseProductRuleTest(infiniteInfos);
- if (info2 != null) {
- returnBeans.add(info2);
- }
- }
- return returnBeans;
- }
- public List<EcbProductInfo> choseProduct(List<EcbProductInfo> infos, String discntType) {
- List<EcbProductInfo> returnBeans = new ArrayList<EcbProductInfo>();
- List<EcbProductInfo> sdInfos = new ArrayList<EcbProductInfo>();
- List<EcbProductInfo> infiniteInfos = new ArrayList<EcbProductInfo>();
- for (EcbProductInfo ecbProductInfo : infos) {
- if ((StringUtils.isEmpty(ecbProductInfo.getDiscntValue())) || (ecbProductInfo.getDiscntValue().equals("0")))
- sdInfos.add(ecbProductInfo);
- else {
- infiniteInfos.add(ecbProductInfo);
- }
- }
- if ((StringUtils.isEmpty(discntType)) || (discntType.equals("0"))) {
- EcbProductInfo info = choseProductRule(sdInfos);
- EcbProductInfo info2 = choseProductRule(infiniteInfos);
- if (info == null && info2 != null && info2.getDiscntOrderState().equals("2")){
- returnBeans.add(info2);
- }else if(info != null && (!info.getDiscntOrderState().equals("1") || !info.getDiscntOrderState().equals("2")) && info2 != null && info2.getDiscntOrderState().equals("2")){
- returnBeans.add(info2);
- }else{
- if(info != null){
- returnBeans.add(info);
- }
- }
- }
- else if (discntType.equals("1")) {
- EcbProductInfo info = choseProductRule(infiniteInfos);
- if (info != null){
- returnBeans.add(info);
- }
- }
- else {
- EcbProductInfo info1 = choseProductRule(sdInfos);
- if (info1 != null) {
- returnBeans.add(info1);
- }
- EcbProductInfo info2 = choseProductRule(infiniteInfos);
- if (info2 != null) {
- returnBeans.add(info2);
- }
- }
- System.out.println("returnBeans:" + returnBeans.size());
- return returnBeans;
- }
- public EcbProductInfo choseProductRuleTest(List<EcbProductInfo> infos) {
- EcbProductInfo returnBean = null;
- for (EcbProductInfo ecbProductInfo : infos) {
- String discntstartime = ecbProductInfo.getDiscntStartDate();
- String discntendtime = ecbProductInfo.getDiscntEndDate();
- if ((StringUtils.isEmpty(discntstartime)) || (StringUtils.isEmpty(discntendtime))) {
- discntstartime = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss");
- discntendtime = "20170930235959";
- }
- discntstartime = format(discntstartime);
- discntendtime = format(discntendtime);
- if (NumberUtils.toLong(discntstartime) > NumberUtils.toLong(getStartdateTest()))
- continue;
- if (NumberUtils.toLong(discntendtime) >=
- NumberUtils.toLong(getStartdateTest())) {
- ecbProductInfo.setDiscntStartDate(discntstartime);
- ecbProductInfo.setDiscntEndDate(discntendtime);
- if (returnBean == null) {
- returnBean = ecbProductInfo;
- }
- else if (NumberUtils.toInt(returnBean.getDiscntFee()) >
- NumberUtils.toInt(ecbProductInfo.getDiscntFee())) {
- returnBean = ecbProductInfo;
- } else {
- if ((NumberUtils.toInt(returnBean.getDiscntFee()) !=
- NumberUtils.toInt(ecbProductInfo.getDiscntFee())) ||
- (NumberUtils.toLong(discntendtime) <= NumberUtils.toLong(returnBean.getDiscntEndDate()))) continue;
- returnBean = ecbProductInfo;
- }
- }
- }
- if (returnBean != null) {
- if ((StringUtils.isEmpty(returnBean.getDiscntValue())) || (returnBean.getDiscntValue().equals("0")))
- returnBean.setSpid("1040");
- else if (returnBean.getDiscntValue().equals("1")) {
- returnBean.setSpid("1150");
- }
- if (StringUtils.isEmpty(returnBean.getDiscntEndDate())) {
- returnBean.setDiscntEndDate("20170930235959");
- }
- }
- System.out.println("testchose:" + JsonUtil.objectToJson(returnBean));
- return returnBean;
- }
- public EcbProductInfo choseProductRule(List<EcbProductInfo> infos) {
- EcbProductInfo returnBean = null;
- for (EcbProductInfo ecbProductInfo : infos) {
- String discntstartime = ecbProductInfo.getDiscntStartDate();
- String discntendtime = ecbProductInfo.getDiscntEndDate();
- if ((StringUtils.isEmpty(discntstartime)) || (StringUtils.isEmpty(discntendtime))) {
- discntstartime = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss");
- discntendtime = "20181231235959";
- }
- discntstartime = format(discntstartime);
- discntendtime = format(discntendtime);
- if (NumberUtils.toLong(discntstartime) > NumberUtils.toLong(getStartdate()))
- continue;
- if (NumberUtils.toLong(discntendtime) >=
- NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"))) {
- ecbProductInfo.setDiscntStartDate(discntstartime);
- ecbProductInfo.setDiscntEndDate(discntendtime);
- if (returnBean == null) {
- returnBean = ecbProductInfo;
- }
- else if (NumberUtils.toInt(returnBean.getDiscntFee()) >
- NumberUtils.toInt(ecbProductInfo.getDiscntFee())) {
- returnBean = ecbProductInfo;
- } else {
- if ((NumberUtils.toInt(returnBean.getDiscntFee()) !=
- NumberUtils.toInt(ecbProductInfo.getDiscntFee())) ||
- (NumberUtils.toLong(discntendtime) < NumberUtils.toLong(returnBean.getDiscntEndDate()))) {
- continue;
- }else{
- returnBean = ecbProductInfo;
- }
- }
- }
- }
- if (returnBean != null) {
- if ((StringUtils.isEmpty(returnBean.getDiscntValue())) || (returnBean.getDiscntValue().equals("0")))
- returnBean.setSpid("1040");
- else if (returnBean.getDiscntValue().equals("1")) {
- returnBean.setSpid("1150");
- }
- if (StringUtils.isEmpty(returnBean.getDiscntEndDate())) {
- returnBean.setDiscntEndDate("20181231235959");
- }
- }
- return returnBean;
- }
- public void saveLog(String userid, String resultCode, String type, String errorInfo, String cpid, String spid, String handle, String times)
- {
- EcbLogBean info = new EcbLogBean();
- info.setTimes(times);
- info.setCpid(cpid);
- info.setSpid(spid);
- info.setUserid(userid);
- info.setResultCode(resultCode);
- info.setErrorInfo(errorInfo);
- info.setType(type);
- info.setHandle(handle);
- try {
- this.ecbProductDao.saveLogDao(info);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public static String getLastDay(String timeStr) throws ParseException {
- Calendar calendar = Calendar.getInstance();
- if (!StringUtils.isEmpty(timeStr)) {
- calendar.setTime(DateUtils.parseDate(timeStr, new String[] { "yyyyMMddHHmmss" }));
- }
- calendar.set(5, calendar.getActualMaximum(5));
- return DateFormatUtils.format(calendar, "yyyyMMdd") + "235959";
- }
- public static String format(String numstr) {
- int size = 14;
- int neednum = 0;
- if (numstr.length() < 14) {
- neednum = size - numstr.length();
- StringBuffer strb = new StringBuffer();
- for (int i = 0; i < neednum; i++) {
- strb.append("0");
- }
- return numstr + strb;
- }
- return numstr;
- }
- public static String getStartdate() {
- return DateFormatUtils.format(DateUtils.addMinutes(new Date(), 5), "yyyyMMddHHmmss");
- }
- public static String getStartdateTest() {
- return DateFormatUtils.format(DateUtils.addMonths(new Date(), 1), "yyyyMMddHHmmss");
- }
- public static void main(String[] args) throws Exception {
- String url = "http://114.255.201.238:8070/ecb/trans.do?userid=15607633608&cpid=changshi&spid=1050&productId=26674&packageCode=26674&discntCode=33051&type=1&starttime=20170918150909&endtime=20370930235959&startEnable=0&lproductId=26677&lpackageCode=26677&ldiscntCode=33054<ype=0&lstarttime=20171030000000&lendtime=20370101000000&lstartEnable=1";
- String resultstr = URLUtil.get(url, 30000);
- System.out.println(resultstr);
- }
- }
|