123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- package com.chinacreator.videoalliance.order.service;
- import java.sql.SQLException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import org.springframework.util.StringUtils;
- import com.chinacreator.common.exception.BusinessException;
- import com.chinacreator.common.util.Base64;
- import com.chinacreator.common.util.UsermobUtil;
- import com.chinacreator.videoalliance.common.bean.AreaInfo;
- import com.chinacreator.videoalliance.common.bean.CPInfo;
- import com.chinacreator.videoalliance.common.util.AreaUtil;
- import com.chinacreator.videoalliance.common.util.ConfigUtil;
- import com.chinacreator.videoalliance.order.bean.OrderInfo;
- import com.chinacreator.videoalliance.order.bean.SPInfo;
- import com.chinacreator.videoalliance.order.dao.BackBusiOrderDao;
- import com.chinacreator.videoalliance.order.dao.BlackWhiteDao;
- import com.chinacreator.videoalliance.order.dao.HeyueOrderDao;
- import com.chinacreator.videoalliance.order.dao.OrderDao;
- import com.chinacreator.videoalliance.order.dao.SPDao;
- /**
- * 违约金合约包服务类
- * @author xu.zhou
- * @date 20210902
- CPID为wyj的产品,只能在测试页面上订购,订购此产品没有任何服务,只是扣费,可重复调用
- */
- @Component
- public class WyjOrderService {
-
- private static Logger logger = Logger.getLogger("orderError");
-
- @Autowired
- private SPDao spDao;
-
- @Autowired
- private OrderService orderService;
-
- @Autowired
- CapOrderService capOrderService;
-
- @Autowired
- private HeyueOrderDao heyueOrderDao;
-
- @Autowired
- private BlackWhiteDao blackWhiteDao;
-
- @Autowired
- private ShareOrderService shareOrderService;
-
- private void orderCheck(OrderInfo orderInfo) throws Exception {
- //只有CPID为wyj(违约金)
- if(!"wyj".equals(orderInfo.getCpid())){
- throw new BusinessException("9012", "该产品不支持订购操作", new String[0]);
- }
- orderService.checkUserid(orderInfo);
- orderService.checkCpInfo(orderInfo);
- checkSpInfo(orderInfo);
- orderService.checkToken(orderInfo);
- String userid = orderInfo.getUserid();
- AreaInfo areaInfo = AreaUtil.getAreaInfoByUserid(userid);
- if (areaInfo == null) {
- areaInfo = new AreaInfo();
- }
- orderInfo.setProvince(areaInfo.getProvince());
- orderInfo.setArea(areaInfo.getArea());
- }
- private void checkSpInfo(OrderInfo orderInfo) throws Exception {
- SPInfo spInfo = this.spDao.findById(orderInfo.getSpid());
- /**
- //根据CPID获取TB_SP_INFO表的信息
- List<SPInfo> spList = this.spDao.findByCP(orderInfo.getCpid());
- if(spList != null){
- for(SPInfo tmp : spList){
- if(orderInfo.getSpid().equals(tmp.getSpid())){
- spInfo = tmp;
- break;
- }
- }
- }
- **/
- if (spInfo == null) {
- throw new BusinessException("5305", "产品标识符无效", new String[0]);
- }
- orderInfo.setSpid(spInfo.getSpid());
- if (spInfo.getCanorder() == 1 && StringUtils.isEmpty(orderInfo.getOrderchannel())) {
- throw new BusinessException("9012", "该产品不支持订购操作", new String[0]);
- }
- orderInfo.setSpid(spInfo.getSpid());
- orderInfo.setMutex(spInfo.getMutex());
- orderInfo.setRelationSp(spInfo.getRelationSp());
- orderInfo.setPaytype(spInfo.getPaytype());
- orderInfo.setErrorhandle(spInfo.getErrorhandle());
- orderInfo.setDirectype(spInfo.getDirectype());
- }
-
- /**
- * 订购
- * @param orderInfo
- * @throws Exception
- */
- public void process(OrderInfo orderInfo) throws Exception {
- orderCheck(orderInfo);
- order(orderInfo);
- }
-
- /**
- * 调接口订购
- * @param orderInfo
- * @throws Exception
- */
- private void order(OrderInfo orderInfo) throws Exception {
- //结果编码
- String resultcode = "";
- //结果信息
- String resultinfo = "";
- //调接口结果
- String result = "";
- String extend1 = "";
- try {
- //是否为白名单用户,用于测试
- if (!this.blackWhiteDao.isWhiteUser(orderInfo.getUserid(), orderInfo.getCpid())) {
- logger.info(orderInfo.getSpid()+"_"+orderInfo.getPaytype());
- //走能力平台订购
- if(orderInfo.getPaytype() == 4){
- shareOrderService.order(orderInfo.getUserid(), orderInfo.getCpid(), orderInfo.getSpid());
- result = "0";
- }else{//走CAP平台订购
- result = this.capOrderService.order(orderInfo, "1");
- }
- //成功
- if("0".equals(result)){
- resultcode = result;
- resultinfo = "订购成功";
- extend1 = "2";
- }
- }else{//是白名单
- resultcode = "0";
- resultinfo = "白名单用户";
- extend1 = "2";
- }
- } catch (Exception e) {
- if(e instanceof BusinessException){
- resultcode = ((BusinessException) e).getCode();
- resultinfo = ((BusinessException) e).getMessage();
- if(resultinfo.length()>500){
- resultinfo = resultinfo.substring(0, 400);
- }
- extend1 = "1";
- }else{
- e.printStackTrace();
- resultcode = "8000";
- resultinfo = e.getMessage();
- extend1 = "1";
- logger.error(orderInfo.getUserid()+", "+orderInfo.getSpid()+", 违约金产品订购出现异常,"+e.getMessage());
- }
- throw e;
- } finally {
- try {
- //订购数据入库
- boolean res = heyueOrderDao.addWyjOrderRec(orderInfo, resultcode, resultinfo,extend1);
- } catch (Exception e2) {
- resultcode = "8000";
- resultinfo = e2.getMessage();
- logger.error(orderInfo.getUserid()+", "+orderInfo.getSpid()+", 违约金产品保存订购出现异常,"+e2.getMessage());
- throw new BusinessException("8000","违约金产品保存订购出现异常,"+e2.getMessage());
- }
- }
- }
- }
|