123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package com.chinacreator.videoalliance.order.service;
- import com.chinacreator.common.exception.BusinessException;
- import com.chinacreator.videoalliance.order.bean.*;
- import com.chinacreator.videoalliance.order.dao.SPDao;
- import com.chinacreator.videoalliance.order.pojo.*;
- import com.chinacreator.videoalliance.order.util.*;
- import org.codehaus.jackson.map.ObjectMapper;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.util.StringUtils;
- import java.sql.SQLException;
- import java.util.*;
- /**
- * Create by IntelliJ IDEA.
- * Author: EricJin
- * Date: 08/14/2018 15:35
- */
- @Service
- public class UnifiedAuthService {
- @Autowired
- private SPDao spDao;
- // private static final String AUTH_URL = "http://10.199.99.177:86/unifiedauth/ordersync"; //TEST
- // private static final String AUTH_URL = "http://10.199.99.51:809/unifiedauth/ordersync"; //PROD
- private static final String AUTH_URL = "http://172.16.1.81:809/unifiedauth/ordersync"; //PROD
- /**
- * call the unifiedAuth service to Sycn the Order to the unifiedAuth platform
- * @param orderInfo
- * @return
- * @throws Exception
- */
- public Boolean sycnOrder(OrderInfo orderInfo) throws Exception {
- SPInfo spInfo = spDao.findById(orderInfo.getSpid());
- if(!StringUtils.isEmpty(orderInfo.getSeqnumber())){
- return true;
- }
-
- //not need sycn Order, return true to go to order
- if(!checkNeededSycnOrder(orderInfo,spInfo)) return true;
- //if need to sycn Order , assemble the Bean and post to the unifiedAuth
- OrderBean orderBean = assembleOrderBean(orderInfo,spInfo);
- //wrap the orderBean to json
- ObjectMapper mapper = new ObjectMapper();
- String json = mapper.writeValueAsString(orderBean);
- System.out.println("【AuthRequ====】" + json);
- String resp = URLUtil.post(AUTH_URL, json,10000,"application/json");
- System.out.println("【AuthResp----】" + resp);
- Map map = JsonUtil.jsonToMap(resp);
- //get the response,and check the code.
- if ("0000".equals(map.get("resultcode"))) return true;
- else throw new BusinessException(map.get("resultcode").toString(), "UnifiedAuth Failed:" + map.get("resultinfo").toString());
- }
- private boolean checkNeededSycnOrder(OrderInfo orderInfo, SPInfo spInfo) throws Exception {
- //not need return false
- if (spInfo.getNeedUnifiedAuthSync() == null || !"1".equals(spInfo.getNeedUnifiedAuthSync().trim())) return false;
- //need ,then check the token
- if (StringUtils.isEmpty(orderInfo.getToken())) {
- throw new BusinessException("8002", "TOKEN参数无效");
- }
- return true;
- }
- private OrderBean assembleOrderBean(OrderInfo orderInfo, SPInfo spInfo) throws SQLException {
- String sequence = DateUtils.getDateFromFormat("MMddhhmmss") + "420010" + SequenceUtils.getSequence();
- orderInfo.setSeqnumber(sequence);
- OrderBean orderBean = new OrderBean();
- orderBean.setSeqNumber(sequence); //订单流水号
- orderBean.setAccessType(orderInfo.getAccess()); //h5, sdk
- orderBean.setToken(orderInfo.getToken());
- orderBean.setOrderId(sequence);
- orderBean.setPhone(orderInfo.getUserid());
- orderBean.setPrice(spInfo.getPrice());
- if ("1".equals(orderBean.getAccessType())) orderBean.setOrderMethod("1"); //web
- else if ("2".equals(orderBean.getAccessType())) orderBean.setOrderMethod("5"); //app
- orderBean.setFeeplan(spInfo.getType() == 0 ? "3" : "1"); //0 按次--3 包周期 其他包月--1
- orderBean.setUpdateType("1"); //1 订购 2 续订
- orderBean.setSubscribeType("1");
- orderBean.setServiceType("80");
- //set product
- SpProduct spProduct = new SpProduct(spInfo.getSpid(),spInfo.getSpname());
- orderBean.getSpProduct().add(spProduct);
- Product product = new Product(spInfo.getVacproductid(),spInfo.getSpname());
- orderBean.getProduct().add(product);
- orderBean.setSpid(spInfo.getSpcode());
- orderBean.setSpName(spInfo.getSpcodename());
- orderBean.setDeveloperName("联通在线信息科技有限公司");
- orderBean.setSpServPhone("10010"); //sp客服电话
- setDate(orderBean);
- return orderBean;
- }
- private void setDate(OrderBean orderBean) {
- String format = "yyyyMMddHHmmss";
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date());
- String now = DateUtils.getDateFromFormat(format,calendar);
- //set start date
- orderBean.setSubscribeTime(now);
- orderBean.setRentDate(now);
- orderBean.setEffectiveDate(now);
- //set end date
- calendar.add(Calendar.MONTH,1);
- calendar.set(Calendar.HOUR,23);
- calendar.set(Calendar.MINUTE,59);
- calendar.set(Calendar.SECOND,59);
- String expireDate = DateUtils.getDateFromFormat(format,calendar);
- orderBean.setExpireDate(expireDate);
- }
- public static void main(String[] args) {
- String sequence = DateUtils.getDateFromFormat("MMddhhmmss") + "420010" + SequenceUtils.getSequence();
- System.out.println(sequence);
- }
- }
|