123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377 |
- package com.chinacreator.process.service;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.chinacreator.common.exception.BusinessException;
- import com.chinacreator.common.util.MD5;
- import com.chinacreator.common.util.URLUtil;
- import com.chinacreator.process.bean.*;
- import com.chinacreator.process.dao.*;
- import com.chinacreator.process.exception.VideoException;
- import com.chinacreator.process.util.DesUtil;
- import com.chinacreator.process.util.HttpInvoke;
- import com.chinacreator.process.util.JsonUtil;
- import com.chinacreator.video.queue.MessageService;
- import com.chinacreator.video.queue.bean.MessagePipe;
- import com.google.gson.Gson;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONSerializer;
- 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.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.sql.SQLException;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- @Component
- public class ChannelOrderService {
- Logger logger = LoggerFactory.getLogger(ChannelOrderService.class);
- @Autowired
- private CsmakeupDao csmakeupDao;
- @Autowired
- private SdkOrderDao sdkOrderDao;
- @Autowired
- private NetOrderDao netOrderDao;
- @Autowired
- private CallerAreacodeDao callerAreacodeDao;
- @Autowired
- private SysDao sysDao;
- @Autowired
- private ChannelOrderDao channelOrderDao;
- @Autowired
- private OrderConfigDao orderConfigDao;
- @Autowired
- private MessageService messageService;
- @Autowired
- private ChangshiDao changshiDao;
- @Autowired
- private CsOrderControlDao csOrderControlDao;
- @Autowired
- private EcbProductDao ecbProductDao;
- @Autowired
- private WxcsDao wxcsDao;
- @Autowired
- private EcbDiscntDao ecbDiscntDao;
- @Autowired
- private ChangshiBlackDao changshiBlackDao;
- @Autowired
- private DictionaryDao dictionaryDao;
- @Autowired
- private SPDao spDao;
-
- @Autowired
- private BusiOperlimitConfDao busiOperlimitConfDao;
-
- @Autowired
- private NextMonthEffectService nextMonthEffectService;
- public int doLocalData(ChannelOrderBean orderBean) {
- int result = 1;
- try {
- //北京号码段订购限制
- String numberlimit = dictionaryDao.getValue("Numberlimit");
- if(numberlimit != null && numberlimit.indexOf(orderBean.getUserid().substring(0, 7)) != -1){
- this.channelOrderDao.updatestatus(orderBean.getId(), "9010");
- throw new BusinessException("9010", "用户为黑名单用户", new String[0]);
- }
- OrderConfigBean orderConfigBean = getOrderConfigBean(orderBean.getProductid());
- if (orderConfigBean == null) {
- this.channelOrderDao.updatestatus(orderBean.getId(), "2");
- throw new BusinessException("9015", "该产品不处理", new String[0]);
- }
-
- //验证业务操作限制(是否能订购,是否能退订)
- if(this.valiOperLimit(orderBean.getId(), orderConfigBean.getSpid(), orderBean.getUpdatetype())){
- this.channelOrderDao.updatestatus(orderBean.getId(), "9016", "业务办理限制,不处理");
- throw new BusinessException("9016", orderBean.getId()+"业务办理限制,不处理", new String[0]);
- }
-
- if ("1006".equals(orderConfigBean.getSpid()) && 0 == this.channelOrderDao.isOrder(orderConfigBean.getCpid(), "1009", orderBean.getUserid())) {
- this.channelOrderDao.updatestatus(orderBean.getId(), "4");
- throw new BusinessException("9001", "订购失败,芒果TV16元产品互斥,订购了合约产品", new String[0]);
- }
- getProvinceInfo(orderBean);
- if (orderBean.getUpdatetype().equals("1")) {
- String provinceOrder = sdkOrderDao.getProvinceOrder(orderConfigBean.getSpid());
- if (StringUtils.isNotEmpty(provinceOrder)){
- String mobileInfo = getMobileInfo(orderBean.getUserid());
- if (!provinceOrder.contains(mobileInfo)){
- throw new VideoException("1", "订购失败,该"+mobileInfo+"地区不能订购此产品");
- }
- }
- if (orderConfigBean.getType().equals("1")) {
- if (orderConfigBean.getCpid().equals("tencent")
- && (orderConfigBean.getSpid().equals("101") || orderConfigBean.getSpid().equals("84"))) {
- result = inserttencentMq(orderBean, orderConfigBean, "0");
- } else {
- result = compareOrderForNet(orderBean);
- if(result == 0){//成功发短信
- insertSmsMq1(orderBean.getUserid(), "bss", orderConfigBean, "1",orderBean);
- }
- }
- } else {
- result = compareOrderForSdk(orderBean);
- }
- } else {
- if (orderConfigBean.getType().equals("1")) {
- if (orderConfigBean.getCpid().equals("tencent")
- && (orderConfigBean.getSpid().equals("101") || orderConfigBean.getSpid().equals("84"))) {
- result =inserttencentMq(orderBean, orderConfigBean, "1");
- } else{
- result = compareCancelForNet(orderBean);
- if(result == 0){//成功发短信
- insertSmsMq1(orderBean.getUserid(), "bss", orderConfigBean, "2",orderBean);
- }
- }
- } else {
- result = compareCancelForSdk(orderBean);
- }
- }
- if (result == 0) {
- //insertMq(orderBean, orderConfigBean);
- insertMqOffline(orderBean, orderConfigBean);
- if (orderConfigBean.getCpid().equals("changshi") && orderConfigBean.getSpid().equals("1150")
- && orderBean.getUpdatetype().equals("1")) {
- WxcsBean wxcsBean = wxcsDao.getConfig(orderConfigBean.getCpid(), orderConfigBean.getSpid());
- if (wxcsBean.getVipstatus().equals("0")
- && NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")) < NumberUtils
- .toLong(wxcsBean.getVipendtime())
- && NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")) > NumberUtils
- .toLong(wxcsBean.getVipstarttime())) {
- insertSmsMq(orderBean.getUserid(), "ecb", orderConfigBean);
- }
- }
- //pushMusic(orderBean,orderConfigBean);
- //调拓维C+接口,20200428,xu.zhou
- //tuoweiInvoke(orderBean);
- }
- } catch (Exception e) {
- result = 8000;
- e.printStackTrace();
- logger.error("同步订购关系出现异常,"+e.getMessage());
- }
- return result;
- }
- /**
- * 查询号码信息
- * @param userid
- * @return
- * @throws Exception
- */
- public String getMobileInfo(String userid){
- String provice= null;
- try {
- provice= sdkOrderDao.getHmdInfo(userid.substring(0,7));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return provice;
- }
- public int inserttencentMq(ChannelOrderBean orderBean, OrderConfigBean orderConfigBean,String type) {
- try {
- Map<String, String> map = new HashMap<String, String>();
- String url = dictionaryDao.getValue("mqReciveUrl");
- map.put("userid", orderBean.getUserid());
- map.put("cpid", orderConfigBean.getCpid());
- map.put("spid", orderConfigBean.getSpid());
- map.put("province", orderBean.getProvince());
- map.put("area", orderBean.getArea());
- map.put("channel", this.convertChannel(orderBean));
- if (type.equals("0")) {
- //map.put("channel", "dqftp");
- map.put("ordertime", orderBean.getOrdertime());
- } else {
- //map.put("channel", "dqftp");
- map.put("canceltime", orderBean.getCanceltime());
- }
- map.put("endtime", "");
- if(orderConfigBean.getSpid().equals("101")){
- map.put("ordertype", "2");
- }else{
- map.put("ordertype", "0");
- }
- map.put("orderstatus", type);
- map.put("type", "vacmq");
- //测试环境
- //URLUtil.post("http://10.199.99.177:8030/mq-service/recive.do", JSONSerializer.toJSON(map).toString(),1000);
- //生产环境
- URLUtil.post(url, JSONSerializer.toJSON(map).toString(),1000);
- // URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JSONSerializer.toJSON(map).toString(),1000);
- } catch (Exception e) {
- e.printStackTrace();
- }
- this.channelOrderDao.updatestatus(orderBean.getId(), "3");
- /****
- * 腾讯20元,手厅渠道覆盖
- */
- try {
- NetOrderBean newOrderBean = getNetOrderInfo(orderBean);
- NetOrderBean oldOrderBean = this.netOrderDao.findOrder(newOrderBean.getCpid(), newOrderBean.getSpid(), newOrderBean.getUserid());
- if(oldOrderBean != null){
- if("0".equals(type)){
- /*****************************************************手厅订购,进行订购渠道更新*************************************************************/
- if ("0".equals(oldOrderBean.getStatus())) {
- if("sjyyt".equals(newOrderBean.getOrderchannel())){
- try {
- //订购渠道优先级更新
- this.netOrderDao.orderUpdate(newOrderBean);
- saveNetLog(newOrderBean, "9098", "[手厅订购渠道覆盖]已订购,订购渠道更新为sjyyt", orderBean.getUpdatetype());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }else{
- if("sjyyt".equals(newOrderBean.getOrderchannel())){
- try {
- if(newOrderBean.getOrdertime().getTime() < oldOrderBean.getCanceltime().getTime()){
- //订购渠道优先级更新
- this.netOrderDao.orderUpdate(newOrderBean);
- saveNetLog(newOrderBean, "9096", "[手厅订购渠道覆盖]已退订,且手厅订购时间小于退订时间,订购渠道更新为sjyyt", orderBean.getUpdatetype());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- /*****************************************************手厅订购,进行订购渠道更新*************************************************************/
- }else{
- /*****************************************************手厅退订,进行退订渠道更新*************************************************************/
- if (!"0".equals(oldOrderBean.getStatus())) {
- if("sjyyt".equals(newOrderBean.getCancelchannel()) ){
- try {
- //退订渠道优先级更新
- this.netOrderDao.cancelUpdate(newOrderBean);
- saveNetLog(newOrderBean, "9099", "[手厅退订渠道覆盖]已退订,退订渠道更新为sjyyt", orderBean.getUpdatetype());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }else{
- if("sjyyt".equals(newOrderBean.getCancelchannel()) ){
- try {
- if(newOrderBean.getCanceltime().getTime() < oldOrderBean.getOrdertime().getTime()
- && oldOrderBean.getCancelchannel()!=null && !"".equals(oldOrderBean.getCancelchannel().trim())){
- //退订渠道优先级更新
- this.netOrderDao.cancelUpdate(newOrderBean);
- saveNetLog(newOrderBean, "9097", "[手厅退订渠道覆盖]已订购,且手厅退订时间小于订购时间,退订渠道更新为sjyyt", orderBean.getUpdatetype());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- /*****************************************************手厅退订,进行退订渠道更新*************************************************************/
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return 3;
- }
- public void insertSmsMq(String userid, String channel, OrderConfigBean orderConfigBean) {
- MessagePipe mpipe = new MessagePipe();
- mpipe.setHeader("cssms");
- mpipe.addBody("userid", userid);
- mpipe.addBody("channel", channel);
- mpipe.addBody("cpid", orderConfigBean.getCpid());
- mpipe.addBody("spid", orderConfigBean.getSpid());
- mpipe.addBody("style", "5");
- mpipe.addBody("result", "");
- mpipe.addBody("times", "");
- mpipe.addBody("orderType", "0");
- this.messageService.sendMessage(mpipe);
- }
- public void insertSmsMq1(String userid, String channel, OrderConfigBean orderConfigBean, String updateType,ChannelOrderBean orderbean) {
- try {
- /*
- if ((orderConfigBean.getCpid().equals("aiqy") && orderConfigBean.getSpid().equals("1018"))
- || (orderConfigBean.getCpid().equals("mangtv16") && orderConfigBean.getSpid().equals("1006"))
- || (orderConfigBean.getCpid().equals("leshilt") && orderConfigBean.getSpid().equals("954"))) {*/
- //1150的另外处理,保持不动
- if ((!orderConfigBean.getCpid().equals("changshi") && !orderConfigBean.getSpid().equals("1150")) || "1218".equals(orderConfigBean.getSpid()) ){
- Map<String, String> map = new HashMap<String, String>();
- String url = dictionaryDao.getValue("mqReciveUrl");
- String spid = orderConfigBean.getSpid();
- map.put("userid", userid);
- map.put("cpid", orderConfigBean.getCpid());
- map.put("spid", orderConfigBean.getSpid());
- map.put("result", "0");
- map.put("channel", "");
- /*
- if (orderConfigBean.getSpid().equals("1018") && updateType.equals("1")) {
- map.put("style", "16");
- } else if (orderConfigBean.getSpid().equals("1018") && updateType.equals("2")) {
- map.put("style", "45");
- } else if (orderConfigBean.getSpid().equals("954") && updateType.equals("1")) {
- map.put("style", "20");
- } else if (orderConfigBean.getSpid().equals("954") && updateType.equals("2")) {
- map.put("style", "21");
- } else if (orderConfigBean.getSpid().equals("1006") && updateType.equals("1")) {
- map.put("style", "22");
- } else if (orderConfigBean.getSpid().equals("1006") && updateType.equals("2")) {
- map.put("style", "23");
- }
- */
- map.put("times", "");
- map.put("orderType", "");
- map.put("type", "cssms");
- if("fhcp".equals(orderConfigBean.getCpid())&&"99134246".equals(orderConfigBean.getSpid())){
- map.put("param1", timehandel(channelOrderDao.getFhcpEndtime(userid,orderConfigBean.getCpid(),orderConfigBean.getSpid())));
- }
- //20220507修改,针对云南省订购成功短信保持原来的订购成功短信。其他省份订购成功短信短信下发全部是改为:
- //快手12G流量月包省分 spid= 297
- //畅视多视频共享15G流量月包省分 spid= 1218 活动,192908845733和192908129979 渠道 订购成功短信调整为新模板
- String busiType = "";
- boolean flag = false;
- //1.先判断省份
- String province = getMobileInfo(userid);
- //2.获取活动配置
- HashMap activitymap = channelOrderDao.getCouponConfig(spid);
- if(activitymap!=null && !"云南".equals(province) && ("297".equals(spid) || "1218".equals(spid) || "299".equals(spid))){
- String activitystarttime = activitymap.get("STARTTIME").toString();
- String activityendtime = activitymap.get("ENDTIME").toString();
- //订购时间小于活动开始时间,或者订购时间大于活动结束时间
- String ordertime = orderbean.getOrdertime();
- if(Long.parseLong(ordertime) < Long.parseLong(activitystarttime)
- || Long.parseLong(ordertime) > Long.parseLong(activityendtime)){
- System.out.println("订购时间未在【517电信】活动期内,不下发活动短信");
- }else{
- //发送短信
- busiType = "ftp_tran_succ4";
- System.out.println("下发【517】活动券码短信");
- flag = true;
- }
- }
- if(!flag) {
- //业务类型,默认是办理成功
- busiType = "ftp_tran_succ";
- }
- if("2".equals(updateType)){//退订
- busiType = "ftp_cancel_succ"; //退订成功
- }
- map.put("busiType", busiType);
- map.put("style","0000");
- URLUtil.post(url, JSONSerializer.toJSON(map).toString(),
- // URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JSONSerializer.toJSON(map).toString(),
- 1000);
- //20211214 修改 新春活动 1214~0228 活动期间内的1017,979,1005产品发送短信
- //20220412 下线,更改配置化,指定产品可发送短信
- if(!"2".equals(updateType)) {//订购下发
- // Boolean hasSendCouponSms = channelOrderDao.hasSendCouponSms(userid,orderConfigBean.getSpid());
- List<String> sendsmsProduct = channelOrderDao.querySendSmsProduct();
- if(sendsmsProduct!=null && sendsmsProduct.contains(orderConfigBean.getSpid())){
- System.out.println("下发订购后的定制短信");
- // if(hasSendCouponSms) {
- map.put("busiType", "ftp_tran_succ3");
- URLUtil.post(url, JSONSerializer.toJSON(map).toString(), 1000);
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public String timehandel(Date time){
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
- return sdf.format(time);
- }
- public void getProvinceInfo(ChannelOrderBean bean) {
- AreaInfo areaInfo = this.callerAreacodeDao.findByCallerhead(bean.getUserid().substring(0, 7));
- if (areaInfo == null) {
- bean.setProvince("");
- bean.setArea("");
- } else {
- bean.setProvince(areaInfo.getProvince());
- bean.setArea(areaInfo.getArea());
- }
- }
- public void insertUpdateChannelMq(String userid, String channel, OrderConfigBean orderConfigBean) {
- MessagePipe mpipe = new MessagePipe();
- mpipe.setHeader("channelupdate");
- mpipe.addBody("userid", userid);
- mpipe.addBody("channel", channel);
- mpipe.addBody("cpid", orderConfigBean.getCpid());
- mpipe.addBody("spid", orderConfigBean.getSpid());
- this.messageService.sendMessage(mpipe);
- }
- /***
- public void insertMq(ChannelOrderBean bean, OrderConfigBean configBean) {
- try{
- MessagePipe mpipe = new MessagePipe();
- mpipe.setHeader("order");
- mpipe.addBody("userid", bean.getUserid());
- mpipe.addBody("province", bean.getProvince());
- mpipe.addBody("area", bean.getArea());
- if (bean.getUpdatetype().equals("1")) {
- mpipe.addBody("orderType", "0");
- mpipe.addBody("updateTime", bean.getOrdertime());
- } else {
- mpipe.addBody("orderType", "1");
- mpipe.addBody("updateTime", bean.getCanceltime());
- }
- mpipe.addBody("cpid", configBean.getCpid());
- mpipe.addBody("spid", configBean.getSpid());
- if (bean.getType().equals("1"))
- mpipe.addBody("channel", "spfbtx9");
- else if (bean.getType().equals("2"))
- mpipe.addBody("channel", "spfbtx4");
- else if (bean.getType().equals("3"))
- mpipe.addBody("channel", "spfbtx10");
- else if (bean.getType().equals("4"))
- mpipe.addBody("channel", "spfbtx6");
- else if (bean.getType().equals("5"))
- mpipe.addBody("channel", "spfbtx7");
- else if (bean.getType().equals("6"))
- mpipe.addBody("channel", "spfbtx14");
- else if (bean.getType().equals("7"))
- mpipe.addBody("channel", "spfbtx15");
- else if (bean.getType().equals("8"))
- mpipe.addBody("channel", "spfbtx16");
- else if (bean.getType().equals("9")) {
- mpipe.addBody("channel", "spfbtx17");
- } else if (bean.getType().equals("11")) {
- mpipe.addBody("channel", "csssy");
- }
- mpipe.addBody("activated", "2");
- this.messageService.sendMessage(mpipe);
- }catch(Exception e){
- logger.error("推送队列出现异常,"+e.getMessage());
- }
- //优酷送双倍会员需求
- this.inserYoutuVipMq(bean, configBean);
- }
- ***/
- public int compareOrderForNet(ChannelOrderBean bean) throws Exception {
- int result = 0;
- NetOrderBean orderBean = null;
- NetOrderBean oldOrderBean = null;
- try {
- orderBean = getNetOrderInfo(bean);
- if( changshiBlackDao.isBlackUser(orderBean.getUserid(),orderBean.getCpid())){
- throw new BusinessException("9080", "黑名单用户不处理订购", new String[0]);
- }
-
- boolean hasnme = false; //是否次月生效
- if(nextMonthEffectService.hasNextMonthBusi(orderBean.getSpid())){
- bean.setCpid(orderBean.getCpid());
- bean.setSpid(orderBean.getSpid());
- hasnme = true;
- nextMonthEffectService.process(orderBean);
- //设置同步状态值,用于判断是否生成活动关系
- bean.setSyncstatus(orderBean.getSyncstatus());
- }else{
- oldOrderBean = this.netOrderDao.findOrder(orderBean.getCpid(), orderBean.getSpid(), orderBean.getUserid());
- if (oldOrderBean != null) {
- //沃视频爱奇艺定向流量年包产品限制为当月不能重复订购
- if("99134246".equals(orderBean.getSpid()) && valiMonth(orderBean.getOrdertime(),oldOrderBean.getOrdertime())){
- throw new BusinessException("9088", "订购失败,反向通知的订购时间小于或等于订购关系表的订购时间", new String[0]);
- }
-
- /*****************************************************手厅订购,进行订购渠道更新*************************************************************/
- if ("0".equals(oldOrderBean.getStatus())) {
- if("sjyyt".equals(orderBean.getOrderchannel())){
- try {
- //订购渠道优先级更新
- this.netOrderDao.orderUpdate(orderBean);
- } catch (Exception e) {
- e.printStackTrace();
- }
- throw new BusinessException("9098", "[手厅订购渠道覆盖]已订购,订购渠道更新为sjyyt", new String[0]);
- }
-
- throw new BusinessException("9010", "已订购,请不要重复订购", new String[0]);
- }else if("1".equals(oldOrderBean.getStatus()) && oldOrderBean.getSpid().equals("99134246")){
- orderBean.setEndtime(channelOrderDao.getLastYearDay(oldOrderBean.getEndtime()));
- }else if("2".equals(oldOrderBean.getStatus()) && oldOrderBean.getSpid().equals("99134246")){
- orderBean.setEndtime(channelOrderDao.getLastYearDayFirst(orderBean.getOrdertime()));
- }else{
- if("sjyyt".equals(orderBean.getOrderchannel())){
- try {
- if(orderBean.getOrdertime().getTime() < oldOrderBean.getCanceltime().getTime()){
- //订购渠道优先级更新
- this.netOrderDao.orderUpdate(orderBean);
-
- saveNetLog(orderBean, "9096", "[手厅订购渠道覆盖]已退订,且手厅订购时间小于退订时间,订购渠道更新为sjyyt", bean.getUpdatetype());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- /*****************************************************手厅订购,进行订购渠道更新*************************************************************/
-
- if (orderBean.getCpid().equals("changshi") && ("1150".equals(orderBean.getSpid()) || "1040".equals(orderBean.getSpid()))){
- if (orderBean.getSpid().equals("1040")) {
- throw new BusinessException("9017", "标清订购不处理", new String[0]);
- }
- String discntValue = orderBean.getSpid().equals("1150") ? "1" : "0";
- EcbProductInfo ecbProductInfo = ecbProductDao.queryEcb(bean.getId());
- List<DiscntInfo> list = changshiDao.queryDiscntInfo(orderBean.getUserid(), discntValue);
- for (DiscntInfo discntInfo : list) {
- if (discntInfo.getType().equals("0")
- && !discntInfo.getDiscntid().equals(ecbProductInfo.getDiscntCode())) {
- throw new BusinessException("9011", "不同资费有未退的订购请求,不处理", new String[0]);
- }
- }
- if (orderBean.getSpid().equals("1150")) {
- if (!csOrderControlDao.discntCodeControl(ecbProductInfo.getDiscntCode(), orderBean.getCpid(),
- orderBean.getSpid())) {
- throw new BusinessException("9903", "不在资费白名单内", new String[0]);
- }
- if (csOrderControlDao.discntFeeControl(ecbProductInfo.getDiscntCode(), orderBean.getCpid(),
- orderBean.getSpid())) {
- result = 1;
- }
- //20220104xu.zhou,只有1150的才走ecbDiscntDao.order,防止其他cpid为changshi的数据落不了订购关系
- ecbDiscntDao.order(ecbProductInfo, orderBean);
- }
- //ecbDiscntDao.order(ecbProductInfo, orderBean);
- } else if (NumberUtils.toLong(bean.getOrdertime()) < NumberUtils
- .toLong(oldOrderBean.getCanceltimestr())) {
- throw new BusinessException("9023", "订购时间晚于本地退订时间不处理", new String[0]);
- }
- this.netOrderDao.order(orderBean);
- } else {
-
- if("99134246".equals(orderBean.getSpid())){
- orderBean.setEndtime(channelOrderDao.getLastYearDayFirst(orderBean.getOrdertime()));
- }
- if (orderBean.getCpid().equals("changshi") && orderBean.getSpid().equals("1150")) {
- EcbProductInfo ecbProductInfo = ecbProductDao.queryEcb(bean.getId());
- if (!csOrderControlDao.discntCodeControl(ecbProductInfo.getDiscntCode(), orderBean.getCpid(),
- orderBean.getSpid())) {
- throw new BusinessException("9903", "不在资费白名单内", new String[0]);
- }
- if (csOrderControlDao.discntFeeControl(ecbProductInfo.getDiscntCode(), orderBean.getCpid(),
- orderBean.getSpid())) {
- result = 1;
- }
- ecbDiscntDao.order(ecbProductInfo, orderBean);
- } else if (orderBean.getCpid().equals("changshi") && orderBean.getSpid().equals("1040")) {
- throw new BusinessException("9017", "标清订购不处理", new String[0]);
- // EcbProductInfo ecbProductInfo =
- // ecbProductDao.queryEcb(bean.getId());
- // ecbDiscntDao.order(ecbProductInfo, orderBean);
- }
- this.netOrderDao.order(orderBean);
- }
- }
- //不是能力平台次月生效产品,或者是能力平台产品且是正式订购关系表退订操作
- if(!hasnme || (hasnme && "5".equals(orderBean.getSyncstatus()))){
- saveNetLog(orderBean, "0", "", bean.getUpdatetype());
- }
- if(hasnme){
- this.channelOrderDao.updatestatus(bean.getId(), "0", "次月生效数据订购完成");
- }else{
- this.channelOrderDao.updatestatus(bean.getId(), "0", "ok");
- }
- } catch (Exception e) {
- result = 1;
- result = this.catchOper(e, bean, oldOrderBean);
- }
- return result;
- }
- /**
- * 验证订购月份是否与已订购月份相同
- * @param newOrdertime
- * @param oldOrdertime
- * @return 相同返回true,反之返回false
- */
- private boolean valiMonth(Date newOrdertime, Date oldOrdertime){
- boolean res = false;
- String newmonth = DateFormatUtils.format(newOrdertime, "yyyyMM");
- String oldmonth = DateFormatUtils.format(oldOrdertime, "yyyyMM");
- if(newmonth.equals(oldmonth)){
- res = true;
- }
- if(!res && Integer.parseInt(newmonth) < Integer.parseInt(oldmonth)){
- res = true;
- }
- return res;
- }
-
- /**
- * 退订
- * @param bean
- * @return
- * @throws Exception
- */
- public int compareCancelForNet(ChannelOrderBean bean) throws Exception {
- int result = 0;
- NetOrderBean orderBean = null;
- NetOrderBean oldOrderBean = null;
- try {
- orderBean = getNetOrderInfo(bean);
- if("99134246".equals(orderBean.getSpid())){
- throw new BusinessException("9098", "此产品不支持退订!", new String[0]);
- }
- if(changshiBlackDao.isBlackUser(orderBean.getUserid(),orderBean.getCpid())){
- throw new BusinessException("9081", "黑名单用户不处理退订", new String[0]);
- }
-
- boolean hasnme = false; //是否次月生效
- //能力平台次月生效产品处理流程
- if(nextMonthEffectService.hasNextMonthBusi(orderBean.getSpid())){
- bean.setCpid(orderBean.getCpid());//用于推送活动关系时使用
- bean.setSpid(orderBean.getSpid());//用于推送活动关系时使用
- hasnme = true;
- nextMonthEffectService.process(orderBean);
- //设置同步状态值,用于判断是否生成活动关系
- bean.setSyncstatus(orderBean.getSyncstatus());
- }else{
- oldOrderBean = this.netOrderDao.findOrder(orderBean.getCpid(), orderBean.getSpid(), orderBean.getUserid());
- if (oldOrderBean != null) {
- /*****************************************************手厅退订,进行退订渠道更新*************************************************************/
- if (!"0".equals(oldOrderBean.getStatus())) {
- if("sjyyt".equals(orderBean.getCancelchannel()) ){
- try {
- //退订渠道优先级更新
- this.netOrderDao.cancelUpdate(orderBean);
- } catch (Exception e) {
- e.printStackTrace();
- }
- throw new BusinessException("9099", "[手厅退订渠道覆盖]已退订,退订渠道更新为sjyyt", new String[0]);
- }
- throw new BusinessException("9006", "已退订,请不要重复退订", new String[0]);
- }else{
- if("sjyyt".equals(orderBean.getCancelchannel()) ){
- try {
- if(orderBean.getCanceltime().getTime() < oldOrderBean.getOrdertime().getTime()
- && oldOrderBean.getCancelchannel()!=null && !"".equals(oldOrderBean.getCancelchannel().trim())){
- //退订渠道优先级更新
- this.netOrderDao.cancelUpdate(orderBean);
-
- saveNetLog(orderBean, "9097", "[手厅退订渠道覆盖]已订购,且手厅退订时间小于订购时间,退订渠道更新为sjyyt", bean.getUpdatetype());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- /*****************************************************手厅退订,进行退订渠道更新*************************************************************/
- //只有1150和1040走ECB订购
- if (orderBean.getCpid().equals("changshi") && ("1150".equals(orderBean.getSpid()) || "1040".equals(orderBean.getSpid()))){
- // && !"99144185".equals(orderBean.getSpid())
- // && !"99144186".equals(orderBean.getSpid())
- // && !"99144187".equals(orderBean.getSpid())) {
- String discntValue = orderBean.getSpid().equals("1150") ? "1" : "0";
- EcbProductInfo ecbProductInfo = ecbProductDao.queryEcb(bean.getId());
- List<DiscntInfo> list = changshiDao.queryDiscntInfo(orderBean.getUserid(), discntValue);
- for (DiscntInfo discntInfo : list) {
- if (discntInfo.getType().equals("0")
- && !discntInfo.getDiscntid().equals(ecbProductInfo.getDiscntCode())) {
- throw new BusinessException("9011", "不同资费有未退得订购请求,不处理", new String[0]);
- }
- }
- ecbDiscntDao.cancel(ecbProductInfo, orderBean);
- } else if (NumberUtils.toLong(bean.getCanceltime()) < NumberUtils
- .toLong(oldOrderBean.getOrdertimestr())) {
- throw new BusinessException("9025", "退订时间晚于本地订购时间不处理", new String[0]);
- }
- this.netOrderDao.cancelOrder(orderBean);
- } else {
- throw new BusinessException("9026", "本地无订购", new String[0]);
- }
- }
- //不是能力平台次月生效产品,或者是能力平台产品且是正式订购关系表退订操作
- if(!hasnme || (hasnme && "5".equals(orderBean.getSyncstatus()))){
- saveNetLog(orderBean, "0", "", bean.getUpdatetype());
- }
- if(hasnme){
- this.channelOrderDao.updatestatus(bean.getId(), "0", "次月生效数据退订完成 ");
- }else{
- this.channelOrderDao.updatestatus(bean.getId(), "0", "ok");
- }
- } catch (Exception e) {
- result = 1;
- catchOper(e,bean,orderBean);
- }
- return result;
- }
-
- /**
- * 异常处理
- * @param e
- * @param bean
- * @param orderBean
- * @return
- */
- private int catchOper(Exception e, ChannelOrderBean bean, NetOrderBean orderBean){
- int result = 1;
- if ((e instanceof BusinessException)) {
- try {
- //this.channelOrderDao.updatestatus(bean.getId(), ((BusinessException) e).getCode());
- String resultInfo = ((BusinessException) e).getMessage();
- String resultcode = ((BusinessException) e).getCode();
- if(!StringUtils.isEmpty(resultInfo) && resultInfo.length()>500){
- resultInfo = resultInfo.substring(0, 500);
- }
- logger.info("resultInfo="+resultInfo+", resultcode="+resultcode);
- this.channelOrderDao.updatestatus(bean.getId(), resultcode, resultInfo);
- } catch (Exception e2) {
- e.printStackTrace();
- logger.error(bean.getId()+"ChannelOrderService更新数据出现异常"+e.getMessage());
- }
- try {
- saveNetLog(orderBean, ((BusinessException) e).getCode(), e.getMessage(), bean.getUpdatetype());
- } catch (Exception e2) {
- e.printStackTrace();
- logger.error(bean.getId()+"ChannelOrderService写日志出现异常"+e.getMessage());
- }
- result = Integer.valueOf(((BusinessException) e).getCode()).intValue();
- } else {
- e.printStackTrace();
- try {
- //this.channelOrderDao.updatestatus(bean.getId(), "8000");
- String resultInfo = e.getMessage();
- String resultcode = "8000";
- if(!StringUtils.isEmpty(resultInfo) && resultInfo.length()>500){
- resultInfo = resultInfo.substring(0, 500);
- }
- this.channelOrderDao.updatestatus(bean.getId(), resultcode, resultInfo);
- } catch (Exception e2) {
- e.printStackTrace();
- logger.error(bean.getId()+"ChannelOrderService更新数据出现异常"+e.getMessage());
- }
- try {
- saveNetLog(orderBean, "8000", "系统忙!", bean.getUpdatetype());
- } catch (Exception e2) {
- e.printStackTrace();
- logger.error(bean.getId()+"ChannelOrderService写日志出现异常"+e.getMessage());
- }
- }
- return result;
- }
- public int compareOrderForSdk(ChannelOrderBean bean) throws Exception {
- int result = 0;
- SDKOrderInfo orderInfo = null;
- SdkOrderBean oldOrderBean = null;
- try {
- orderInfo = getSdkOrderInfo(bean);
- oldOrderBean = this.sdkOrderDao.queryOrderList(orderInfo.getUserid(), orderInfo.getCpid(),
- orderInfo.getProductId());
- if (oldOrderBean != null) {
- String status = oldOrderBean.getStatus();
- if (status.equals("0")) {
- throw new BusinessException("9010", "已订购,请不要重复订购", new String[0]);
- }
- if (NumberUtils.toLong(bean.getOrdertime()) < NumberUtils.toLong(oldOrderBean.getCanceltime())) {
- throw new BusinessException("9023", "订购时间晚于本地退订时间不处理", new String[0]);
- }
- orderInfo.setId(oldOrderBean.getId());
- this.sdkOrderDao.order(orderInfo, true);
- } else {
- orderInfo.setId(this.sysDao.getID());
- this.sdkOrderDao.order(orderInfo, false);
- }
- saveSdkLog(orderInfo, "0", "");
- this.channelOrderDao.updatestatus(bean.getId(), "0");
- } catch (Exception e) {
- result = 1;
- e.printStackTrace();
- if ((e instanceof BusinessException)) {
- this.channelOrderDao.updatestatus(bean.getId(), ((BusinessException) e).getCode());
- saveSdkLog(orderInfo, ((BusinessException) e).getCode(), e.getMessage());
- } else {
- this.channelOrderDao.updatestatus(bean.getId(), "8000");
- saveSdkLog(orderInfo, "8000", "系统忙!");
- }
- }
- return result;
- }
- public int compareCancelForSdk(ChannelOrderBean bean) {
- int result = 0;
- SDKOrderInfo orderInfo = null;
- SdkOrderBean oldOrderBean = null;
- try {
- orderInfo = getSdkOrderInfo(bean);
- oldOrderBean = this.sdkOrderDao.queryOrderList(orderInfo.getUserid(), orderInfo.getCpid(),
- orderInfo.getProductId());
- if (oldOrderBean != null) {
- orderInfo.setId(oldOrderBean.getId());
- String status = oldOrderBean.getStatus();
- if (!status.equals("0")) {
- throw new BusinessException("9006", "已退订,请不要重复退订", new String[0]);
- }
- if (NumberUtils.toLong(bean.getCanceltime()) < NumberUtils.toLong(oldOrderBean.getOrdertime())) {
- throw new BusinessException("9025", "退订时间晚于本地订购时间不处理", new String[0]);
- }
- this.sdkOrderDao.cancelOrder(orderInfo);
- } else {
- throw new BusinessException("9026", "退订失败,本地无订购", new String[0]);
- }
- saveSdkLog(orderInfo, "0", "");
- this.channelOrderDao.updatestatus(bean.getId(), "0");
- } catch (Exception e) {
- result = 1;
- e.printStackTrace();
- if ((e instanceof BusinessException)) {
- this.channelOrderDao.updatestatus(bean.getId(), ((BusinessException) e).getCode());
- saveSdkLog(orderInfo, ((BusinessException) e).getCode(), e.getMessage());
- } else {
- this.channelOrderDao.updatestatus(bean.getId(), "8000");
- saveSdkLog(orderInfo, "8000", "系统忙!");
- }
- }
- return result;
- }
- public String getDateStr(String str) throws ParseException {
- return DateFormatUtils.format(DateUtils.parseDate(str, new String[] { "yyyyMMddHHmmss" }), "yyyyMMdd");
- }
- public void saveSdkLog(SDKOrderInfo orderInfo, String errorcode, String errorinfo) {
- this.sdkOrderDao.insertOrderLog(orderInfo, errorcode, errorinfo, "");
- }
- public void saveNetLog(NetOrderBean orderInfo, String errorcode, String errorinfo, String ordertype)
- throws SQLException {
- OrderLog orderLog = new OrderLog();
- orderLog.setApptype(orderInfo.getApptype());
- orderLog.setChannel(ordertype.equals("1") ? orderInfo.getOrderchannel() : orderInfo.getCancelchannel());
- orderLog.setOrderstatus(orderInfo.getOrderstatus());
- orderLog.setStatus(Integer.valueOf(orderInfo.getStatus()).intValue());
- orderLog.setCpid(orderInfo.getCpid());
- orderLog.setIsexperience(orderInfo.getIsexperience());
- orderLog.setOrdertype(orderInfo.getOrdertype());
- orderLog.setProvince(orderInfo.getProvince());
- orderLog.setArea(orderInfo.getArea());
- orderLog.setSpid(orderInfo.getSpid());
- orderLog.setUserid(orderInfo.getUserid());
- orderLog.setErrorcode(errorcode);
- orderLog.setErrorinfo(errorinfo);
- this.netOrderDao.addOrderLog(orderLog);
- }
- public SDKOrderInfo getSdkOrderInfo(ChannelOrderBean bean) throws Exception {
- OrderConfigBean orderConfigBean = getOrderConfigBean(bean.getProductid());
- SDKOrderInfo orderInfo = new SDKOrderInfo();
- orderInfo.setUserid(bean.getUserid());
- orderInfo.setCpid(orderConfigBean.getCpid());
- orderInfo.setProductId(orderConfigBean.getSpid());
- orderInfo.setAppid("40000001");
- orderInfo.setSectionId(orderConfigBean.getSpid());
- orderInfo.setProvince(bean.getProvince());
- bean.setArea(bean.getArea());
- orderInfo.setIsExperience(0);
- orderInfo.setType(1);
- orderInfo.setAppType("");
- if (bean.getUpdatetype().equals("1")) {
- if (StringUtils.isEmpty(bean.getOrdertime())) {
- throw new BusinessException("9012", "参数错误", new String[0]);
- }
- orderInfo.setOrderTime(DateUtils.parseDate(bean.getOrdertime(), new String[] { "yyyyMMddHHmmss" }));
- orderInfo.setOrdertimestr(bean.getOrdertime());
- orderInfo.setOrderChannel(this.convertChannel(bean));
- orderInfo.setStatus("0");
- orderInfo.setOrderStatus(3);
- } else {
- if (StringUtils.isEmpty(bean.getCanceltime())) {
- throw new BusinessException("9012", "参数错误", new String[0]);
- }
- orderInfo.setCancelTime(DateUtils.parseDate(bean.getCanceltime(), new String[] { "yyyyMMddHHmmss" }));
- orderInfo.setCanceltimestr(bean.getCanceltime());
- orderInfo.setCancelChannel(this.convertChannel(bean));
- orderInfo.setStatus("1");
- orderInfo.setOrderStatus(5);
- }
- return orderInfo;
- }
- public NetOrderBean getNetOrderInfo(ChannelOrderBean bean) throws Exception {
- OrderConfigBean orderConfigBean = getOrderConfigBean(bean.getProductid());
- NetOrderBean netOrderBean = new NetOrderBean();
- netOrderBean.setUserid(bean.getUserid());
- netOrderBean.setCpid(orderConfigBean.getCpid());
- netOrderBean.setBatchid(DateFormatUtils.format(new Date(), "yyyyMMdd"));
- netOrderBean.setSpid(orderConfigBean.getSpid());
- netOrderBean.setProvince(bean.getProvince());
- netOrderBean.setArea(bean.getArea());
- if (bean.getUpdatetype().equals("1")) {
- if (StringUtils.isEmpty(bean.getOrdertime())) {
- throw new BusinessException("9012", "参数错误", new String[0]);
- }
- netOrderBean.setOrdertime(DateUtils.parseDate(bean.getOrdertime(), new String[] { "yyyyMMddHHmmss" }));
- netOrderBean.setOrderchannel(this.convertChannel(bean));
- netOrderBean.setStatus("0");
- netOrderBean.setOrderstatus(3);
- } else {
- if (StringUtils.isEmpty(bean.getCanceltime())) {
- throw new BusinessException("9012", "参数错误", new String[0]);
- }
- netOrderBean.setCanceltime(DateUtils.parseDate(bean.getCanceltime(), new String[] { "yyyyMMddHHmmss" }));
- netOrderBean.setCancelchannel(this.convertChannel(bean));
- netOrderBean.setStatus("1");
- netOrderBean.setOrderstatus(5);
- }
-
- /**
- * 计费点相同的产品SPID替换
- */
- nextMonthEffectService.replaceSameVacSpid(netOrderBean);
-
- /**
- * 次月生效产品SPID替换
- */
- nextMonthEffectService.replaceSpid(netOrderBean);
-
- //验证业务操作限制(是否能订购,是否能退订)
- if(this.valiOperLimit(bean.getId(), netOrderBean.getSpid(), bean.getUpdatetype())){
- //this.channelOrderDao.updatestatus(orderBean.getId(), "9016", "业务办理限制,不处理");
- throw new BusinessException("9016", "业务办理限制,不处理", new String[0]);
- }
-
- return netOrderBean;
- }
-
- public OrderConfigBean getOrderConfigBean(String vacproductid) throws SQLException {
- return this.orderConfigDao.findByProductid(vacproductid);
- }
- /**
- * 转换渠道名称
- * @param bean
- * @return
- */
- private String convertChannel(ChannelOrderBean bean){
- String channel = "dqftp";
- if (bean.getType().equals("1"))
- channel = "pftp";
- else if (bean.getType().equals("2"))
- channel = "dftp";
- else if (bean.getType().equals("3"))
- channel = "xxh";
- else if (bean.getType().equals("4"))
- channel = "cbss";
- else if (bean.getType().equals("5"))
- channel = "bss";
- else if (bean.getType().equals("6"))
- channel = "sjyyt";
- else if (bean.getType().equals("7"))
- channel = "wsyyt";
- else if (bean.getType().equals("8"))
- channel = "dxyyt";
- else if (bean.getType().equals("9")) {
- channel = "zzzd";
- } else if (bean.getType().equals("11")) {
- channel = "chuangf";
- }
- return channel;
- }
- public static void main(String[] args) {
- System.out.println(DateFormatUtils.format(new Date(), "yyyyMMdd"));
- }
- /*
- * 赠送会员超时异步队列推送
- * @param orderInfo
- */
- /***
- public void inserYoutuVipMq(ChannelOrderBean bean, OrderConfigBean configBean){
- try {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- String currtime = sdf.format(new Date()); //当前时间
- String youtuVipEndtime = dictionaryDao.getValue("youtuVipEndtime");
- if(youtuVipEndtime == null || "".equals(youtuVipEndtime)){
- System.out.println("优酷订购赠送双会员无结束时间配置");
- return;
- }
- if(Long.parseLong(currtime) > Long.parseLong(youtuVipEndtime)){
- System.out.println("优酷订购赠送双会员活动已结束");
- return;
- }
- if (bean.getUpdatetype().equals("1") && "youtu".equals(configBean.getCpid()) && "1167".equals(configBean.getSpid())) {
- MessagePipe mpipe = new MessagePipe();
- mpipe.setHeader("youtuvip");
- mpipe.addBody("userid", bean.getUserid());
- mpipe.addBody("cpid", configBean.getCpid());
- mpipe.addBody("spid", configBean.getSpid());
- mpipe.addBody("sendcont","1");
- this.messageService.sendMessage(mpipe);
- System.out.println("优酷订购赠送双会员推送队列成功,userid=>"+bean.getUserid());
- }
- } catch (Exception e) {
- //e.printStackTrace();
- System.out.println("赠送会员超时异步重试队列推送出现异常,"+e.getMessage());
- }
- }
- ***/
- /**
- * 20元沃派视频增加拓维C+接口
- * @param orderBean
- */
- /***
- private void tuoweiInvoke(ChannelOrderBean orderBean){
- boolean hasrec = false;
- long starttime = System.currentTimeMillis();
- HashMap params = new HashMap();
- try {
- OrderConfigBean confBean = getOrderConfigBean(orderBean.getProductid());
- if(confBean == null) return;
- List<HashMap> confList = csmakeupDao.getBusiConf(confBean.getSpid());
- if(confList != null && confList.size()>0){
- hasrec = true;
- HashMap conf = confList.get(0);
- conf.put("SENO", csmakeupDao.getNo()); //获取业务流水号
- params.put("SENO", conf.get("SENO")); //获取业务流水号
- params.put("CHANNEL", "JOB-"+convertChannel(orderBean));
- params.put("USERID", orderBean.getUserid());
- params.put("PROVINCE", orderBean.getProvince());
- params.put("AREA", orderBean.getArea());
- params.put("VIPRECODE", "-1");
- params.put("VIPREINFO", "");
- params.put("RESULTCODE", "0");
- params.put("RESULTINFO", "ok");
- params.put("STATUS", "0");
- if("2".equals(orderBean.getUpdatetype())){//1 订购 2 退订
- params.put("STATUS", "1");
- }
- params.put("CPID", conf.get("CPID"));
- params.put("MUSPID", conf.get("MUSPID"));
- String result = invokeTwvip(orderBean, conf); //调拓维会员接口返回结果
- if(!"".equals(result)){
- params.put("VIPRECODE", JSON.parseObject(result).get("code").toString());
- //params.put("VIPREINFO", JSON.parseObject(result).get("message").toString());
- params.put("VIPREINFO", result);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("调拓维C+接口出现异常,"+e.getMessage());
- params.put("VIPRECODE", "8000");
- params.put("VIPREINFO", e.getMessage());
- params.put("RESULTCODE", "8000");
- params.put("RESULTINFO", "调拓维C+会员接口异常,"+e.getMessage());
- } finally {
- if(hasrec){
- try{
- String vipreinfo = (String)params.get("VIPREINFO");
- if(vipreinfo != null && vipreinfo.length()>500){
- params.put("VIPREINFO", vipreinfo.subSequence(0, 450));
- }
- params.put("TIMES", System.currentTimeMillis()-starttime);
- csmakeupDao.addOrderRec(params);
- }catch(Exception e){
- e.printStackTrace();
- logger.error("拓维C+接口添加订购记录出现异常,"+e.getMessage());
- }
- }
- }
- }
- ***/
-
- /**
- * 调拓维会员接口
- * @param orderBean
- * @param conf
- * @return
- * @throws Exception
- */
- /***
- private String invokeTwvip(ChannelOrderBean orderBean, HashMap conf) throws Exception{
- String result = ""; //调拓维会员接口返回结果
- String vipurl = "";
- String jsonParams = "";
- if("2".equals(orderBean.getUpdatetype())){//退订
- vipurl = dictionaryDao.getValue("csmakeupvipcancelurl");
- jsonParams = this.fullCancelParams(orderBean.getUserid(), conf);
- }else{//订购
- vipurl = dictionaryDao.getValue("csmakeupviporderurl");
- jsonParams = this.fullOrderParams(orderBean.getUserid(),conf);
- }
- logger.info("vipurl=>"+vipurl+", jsonParams=>"+jsonParams);
- result = HttpInvoke.sendhttpsReq("POST", vipurl, jsonParams, getProperty(orderBean.getUpdatetype()));
- logger.info("调拓维会员接口返回结果:"+result);
- //去空格、换行符号
- if(result != null) result = result.replaceAll("\r|\n", "").replaceAll(" ", "").replaceAll(" ", "");
- //result = "{\"code\":0,\"message\":\"成功\",\"success\":true}";
- //result = "{\"code\":7007,\"message\":\"签名无效\",\"success\":false}";
- return result;
- }
- ***/
- /**
- * 获取请求属性性
- * @return
- */
- /***
- private static Map getProperty(String updatetype){
- Map reqProperty = new HashMap();
- if("1".equals(updatetype)){//订购
- reqProperty.put("Content-type", "application/json;charset=utf-8");
- }else{//退订
- reqProperty.put("Content-type", "application/x-www-form-urlencoded");
- }
- return reqProperty;
- }
- ***/
-
- /**
- * 填充退订会员参数
- * @param mobile
- * @param conf
- * @return
- * @throws Exception
- */
- /**
- private String fullCancelParams(String mobile, HashMap conf) throws Exception {
- String jsonParams = "";
- HashMap<String, String> params = new HashMap<String, String>();
- String timestamp = System.currentTimeMillis()+"";
- String spid = conf.get("VSPID").toString();
- String cpid = conf.get("VCPID").toString();
- String userType = "1";
- String password = conf.get("VPWD").toString();
- mobile = DesUtil.encode(mobile, password); //手机号码加密
- String signature = MD5.MD5Encode(spid + cpid + mobile + timestamp + userType + password);
- JSONObject json = new JSONObject();
- json.put("timestamp", timestamp);
- json.put("signature", signature);
- json.put("spid", spid);
- json.put("cpid", cpid);
- json.put("mobile", mobile);
- json.put("userType", userType);
- jsonParams = json.toJSONString();
- //去除json格式
- jsonParams = jsonParams.replaceAll(":", "=").replaceAll(",", "&")
- .replaceAll("\"", "").replaceAll("\\{", "").replaceAll("\\}", "");
- return jsonParams;
- }
- ***/
-
- /**
- * 填充订购会员参数
- * @param mobile
- * @param conf
- * @return
- * @throws Exception
- */
- /***
- private String fullOrderParams(String mobile, HashMap conf)throws Exception {
- String jsonParams = "";
- String timestamp = System.currentTimeMillis()+"";
- String spid = conf.get("VSPID").toString();
- String cpid = conf.get("VCPID").toString();
- String memberUrl = "";
- String orderNumber = conf.get("SENO").toString();
- String password = conf.get("VPWD").toString();
- mobile = DesUtil.encode(mobile, password); //手机号码加密
- String signature = MD5.MD5Encode(spid + cpid + orderNumber + timestamp + password);
- JSONObject json = new JSONObject();
- JSONArray jsonArray = new JSONArray();
- jsonArray.add(mobile);
- json.put("timestamp", timestamp);
- json.put("signature", signature);
- json.put("spid", spid);
- json.put("cpid", cpid);
- json.put("mobiles", jsonArray);
- json.put("memberUrl", memberUrl);
- json.put("orderNumber", orderNumber);
- jsonParams = json.toJSONString();
- return jsonParams;
- }
- ***/
-
- /**
- * 音乐订购关系推送
- *
- * @param orderInfo
- */
- /**
- private void pushMusic(ChannelOrderBean orderInfo, OrderConfigBean capRevSyncOrder) {
- SpBean spBean =spDao.querySpByProductId(orderInfo.getProductid());
- logger.info("音乐公司==="+new Gson().toJson(orderInfo)+"===="+new Gson().toJson(capRevSyncOrder));
- if (spBean != null && "fhcp".equals(spBean.getCpid()) && ("99134250".equals(spBean.getSpid())||"99134256".equals(spBean.getSpid()))) {
- Gson gson = new Gson();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- SimpleDateFormat sdl=new SimpleDateFormat("yyyyMMddhhmmss");
- try {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("userid", orderInfo.getUserid());
- map.put("cpid", spBean.getCpid());
- map.put("spid", spBean.getSpid());
- if ("1".equals(orderInfo.getUpdatetype())) {
- map.put("channel", this.convertChannel(orderInfo));
- map.put("opertime", sdf.format(sdl.parse(orderInfo.getOrdertime())));
- map.put("orderType", "0");
- map.put("endTime", "");
- } else{
- String dateStr = sdf.format(sdl.parse(orderInfo.getCanceltime()));
- map.put("channel", this.convertChannel(orderInfo));
- map.put("opertime",dateStr);
- map.put("orderType", "1");
- if (dateStr!=null&&dateStr.length()>7) {
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- int year = Integer.valueOf(dateStr.substring(0, 4));
- int month = Integer.valueOf(dateStr.substring(5, 7));
- Calendar calendar = Calendar.getInstance();
- calendar.set(year,month,1);
- calendar.add(Calendar.DATE,-1);
- String endTime=format.format(calendar.getTime())+ " 23:59:59";
- map.put("endTime", endTime);
- } else{
- map.put("endTime", "");
- }
- }
- map.put("kafkaid", orderInfo.getId());
- map.put("type", "kafkaMusic");
- //测试环境
- String url = dictionaryDao.getValue("mqReciveUrl");
- System.out.println("音乐公司推送队列数据:" + orderInfo);
- URLUtil.post(url, gson.toJson(map), 1000 * 30);
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("音乐公司推送队列出现异常," + e.getMessage() + ", data:" + gson.toJson(orderInfo));
- }
- }
- }
- **/
-
- /**
- * 验证业务操作限制(是否能订购,是否能退订)
- * @param id
- * @param spid
- * @param updatetype 操作标识:1订购、 2退订
- * @return
- * @throws Exception
- */
- private boolean valiOperLimit(String id, String spid,String updatetype) throws Exception {
- //数据来源
- String datasrc = "SJYYT";
- List<HashMap> dataList = busiOperlimitConfDao.getValue(spid);
- boolean haslimit = false;
- if(dataList != null && dataList.size()>0){
- //转换为订购和退订标准标识,把1转为0,2转为1
- updatetype = "1".equals(updatetype) ? "0" : ("2".equals(updatetype) ? "1":updatetype);
- for(HashMap tm : dataList){
- if(updatetype.equals(tm.get("OPERTYPE")) && datasrc.equals(tm.get("DATASRC"))){
- haslimit = true;
- break;
- }
- }
- //被限制抛异常
- if(haslimit){
- //throw new BusinessException("9016", id+"业务办理限制,不处理", new String[0]);
- }
- }
-
- return haslimit;
- }
-
- /**
- * 生成领取会员的活动关系
- * @param bean
- * @param configBean
- */
- public void insertMqOffline(ChannelOrderBean bean, OrderConfigBean configBean) {
- try{
- //20220507增加能力平次月生效处理逻辑
- //不是能力平台次月生效产品,或者是能力平台产品且是正式订购关系表退订操作
- if(nextMonthEffectService.hasNextMonthBusi(bean.getSpid())){
- if("5".equals(bean.getSyncstatus())){
- logger.info("能力平台正式表退订操作,推送到mq生成活动关系");
- }else{
- logger.info("能力平台非正式表退订操作,不推送到mq");
- return;
- }
- }
- MessagePipe mpipe = new MessagePipe();
- mpipe.setHeader("orderoffline");
- mpipe.addBody("userid", bean.getUserid());
- mpipe.addBody("province", bean.getProvince());
- mpipe.addBody("area", bean.getArea());
- if (bean.getUpdatetype().equals("1")) {
- mpipe.addBody("orderType", "0");
- mpipe.addBody("updateTime", bean.getOrdertime());
- } else {
- mpipe.addBody("orderType", "1");
- mpipe.addBody("updateTime", bean.getCanceltime());
- }
- mpipe.addBody("cpid", configBean.getCpid());
- mpipe.addBody("spid", configBean.getSpid());
- if (bean.getType().equals("1"))
- mpipe.addBody("channel", "spfbtx9");
- else if (bean.getType().equals("2"))
- mpipe.addBody("channel", "spfbtx4");
- else if (bean.getType().equals("3"))
- mpipe.addBody("channel", "spfbtx10");
- else if (bean.getType().equals("4"))
- mpipe.addBody("channel", "spfbtx6");
- else if (bean.getType().equals("5"))
- mpipe.addBody("channel", "spfbtx7");
- else if (bean.getType().equals("6"))
- mpipe.addBody("channel", "spfbtx14");
- else if (bean.getType().equals("7"))
- mpipe.addBody("channel", "spfbtx15");
- else if (bean.getType().equals("8"))
- mpipe.addBody("channel", "spfbtx16");
- else if (bean.getType().equals("9")) {
- mpipe.addBody("channel", "spfbtx17");
- } else if (bean.getType().equals("11")) {
- mpipe.addBody("channel", "csssy");
- }
- mpipe.addBody("activated", "2");
- this.messageService.sendMessage(mpipe);
- }catch(Exception e){
- e.printStackTrace();
- logger.error("推送队列出现异常,"+e.getMessage());
- }
- //优酷送双倍会员需求
- //this.inserYoutuVipMq(bean, configBean);
- }
- }
|