123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- package com.chinacreator.videoalliance.query.action;
- import com.chinacreator.common.exception.BusinessException;
- import com.chinacreator.common.pipe.DataOutPipe;
- import com.chinacreator.common.util.DESUtil;
- import com.chinacreator.common.util.URLUtil;
- import com.chinacreator.videoalliance.common.annotation.DataOut;
- import com.chinacreator.videoalliance.common.bean.AreaInfo;
- import com.chinacreator.videoalliance.common.dao.DictionaryDao;
- import com.chinacreator.videoalliance.common.util.AreaUtil;
- import com.chinacreator.videoalliance.common.util.ConfigUtil;
- import com.chinacreator.videoalliance.order.bean.DiscntInfo;
- import com.chinacreator.videoalliance.order.bean.EcbProductInfo;
- import com.chinacreator.videoalliance.order.bean.EcbResponseBean;
- import com.chinacreator.videoalliance.order.bean.OrderInfo;
- import com.chinacreator.videoalliance.order.dao.CsOrderControlDao;
- import com.chinacreator.videoalliance.order.dao.EcbDiscntDao;
- import com.chinacreator.videoalliance.order.dao.OrderDao;
- import com.chinacreator.videoalliance.order.service.EcbService;
- import com.chinacreator.videoalliance.order.service.OrderService;
- import com.chinacreator.videoalliance.order.util.JsonUtil;
- import com.chinacreator.videoalliance.query.dao.ChangshiDebugDao;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.lang.time.DateFormatUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import javax.servlet.http.HttpServletRequest;
- import java.net.URLEncoder;
- import java.util.*;
- @Controller
- public class CsQueryProductAction {
- @Autowired
- private EcbService ecbService;
-
- @Autowired
- private OrderDao orderDao;
-
- @Autowired
- private EcbDiscntDao ecbDiscntDao;
-
- @Autowired
- private CsOrderControlDao csOrderControlDao;
-
- @Autowired
- private OrderService orderService;
-
- @Autowired
- private ChangshiDebugDao changshiDebugDao;
- @Autowired
- private DictionaryDao dictionaryDao;
-
- @RequestMapping("/queryproductinfo.do")
- @DataOut(callback = "queryproductinfo")
- public DataOutPipe doOrder(HttpServletRequest request, String cpid, String userid,String channel,String type) throws Exception {
- DataOutPipe pipe = new DataOutPipe();
- if (StringUtils.isEmpty(cpid) || StringUtils.isEmpty(userid)) {
- throw new BusinessException("7002", "参数错误");
- }
- try {
- if (StringUtils.isNotEmpty(userid)) {
- userid = ConfigUtil.decrypt(userid, cpid);
- if ((userid != null) && (userid.length() > 11)) {
- userid = ConfigUtil.getUserid(userid, cpid);
- }
- }
- } catch (Exception e) {
- throw new BusinessException("7002", "手机号码无效");
- }
- pipe.add("userid", userid);
- if(StringUtils.isEmpty(type)){
- type ="0";
- }
- EcbProductInfo ecbProductInfo = null;
- AreaInfo areaInfo = null;
- if(type.equals("1")){
- List<OrderInfo> listOrderInfo = orderDao.findByUser(userid, cpid);
- if(listOrderInfo != null && listOrderInfo.size()>0){
- for (OrderInfo orderInfo : listOrderInfo) {
- if(orderInfo.getSpid().equals("1150")){
- DiscntInfo discntInfo = ecbDiscntDao.queryByUserid(userid, type);
- if(discntInfo != null){
- ecbProductInfo = new EcbProductInfo();
- ecbProductInfo.setDiscntCode(discntInfo.getDiscntid());
- ecbProductInfo.setDiscntFee(discntInfo.getDiscntfee());
- ecbProductInfo.setDiscntName(discntInfo.getDiscntName());
- ecbProductInfo.setDiscntStartDate(discntInfo.getOrdertime());
- ecbProductInfo.setDiscntEndDate(discntInfo.getEndtime());
- ecbProductInfo.setDiscntOrderState(discntInfo.getDiscntOrderState());
- ecbProductInfo.setPackageCode(discntInfo.getPackageCode());
- ecbProductInfo.setProductId(discntInfo.getProductId());
- ecbProductInfo.setDiscntValue(discntInfo.getDiscnttype());
- ecbProductInfo.setSpid("1150");
- }
- if(orderInfo.getStatus() == 0){
- pipe.setResultCode("9901");
- pipe.setErrorInfo("用户本地已订购");
- }else{
- pipe.setResultCode("9902");
- pipe.setErrorInfo("用户本月已退订");
- }
- }
- }
- }
- if(ecbProductInfo == null){
- areaInfo = AreaUtil.getAreaInfoByUserid(userid);
- if(areaInfo != null){
- if(csOrderControlDao.provinceControl(areaInfo.getProvince(), cpid, "1150")){
- throw new BusinessException("9904","省份不在白名单");
- }
- }
- }
- }
- if(ecbProductInfo == null){
- EcbResponseBean bean =ecbService.queryPorduct(userid, cpid,"0",channel,type);
- ecbProductInfo = bean.getUserProductInfo().getProductInfos().get(0);
- if(type.equals("1")){
- if(ecbProductInfo.getDiscntOrderState().equals("1")|| ecbProductInfo.getDiscntOrderState().equals("2")){
- OrderInfo orderInfo = new OrderInfo();
- orderInfo.setCpid("changshi");
- orderInfo.setSpid("1150");
- orderInfo.setOrdertime(ecbProductInfo.getDiscntStartDate()== null ? DateFormatUtils.format(new Date(), "yyyyMMddHHmmss") : ecbProductInfo.getDiscntStartDate());
- orderInfo.setEffecttime( DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"));
- orderInfo.setOrderchannel("qecb");
- orderInfo.setUserid(userid);
- orderInfo.setStatus(0);
- orderInfo.setOrderstatus(3);
- if(areaInfo != null){
- orderInfo.setProvince(areaInfo.getProvince());
- orderInfo.setArea(areaInfo.getArea());
- }
- orderDao.order(orderInfo);
- ecbDiscntDao.order(ecbProductInfo, orderInfo);
- orderInfo.setTimes("");
- orderService.saveLog(orderInfo, "0", "");
- insertOrderMq(orderInfo, "0", ecbProductInfo);
- pipe.setResultCode("9901");
- pipe.setErrorInfo("用户本地已订购");
- }
- if(!csOrderControlDao.discntCodeControl(ecbProductInfo.getDiscntCode(), cpid, ecbProductInfo.getSpid())){
- throw new BusinessException("9903","资费不在白名单");
- }
- }
- if(type.equals("0")){
- if(ecbProductInfo.getDiscntValue().equals("1")){
- pipe.setResultCode("01");
- }
- if(StringUtils.isEmpty(ecbProductInfo.getDiscntOrderState())){
- List<OrderInfo> listOrderInfo = orderDao.findByUser(userid, cpid);
- if(listOrderInfo != null && listOrderInfo.size()>0){
- ecbProductInfo.setDiscntOrderState("2");
- ecbProductInfo.setDiscntFee("0");
- }
- }
- }
- }
-
- //20190226 xu.zhou 畅视订购页面仅保留20元资费(CB+B),把其余资费都去掉
- /*
- if(ecbProductInfo != null){
- //DiscntValue 畅视属性:0:标清畅视 1:无限畅视
- //DiscntFee 交费,单位为分
- if("1150".equals(ecbProductInfo.getSpid()) && "2000".equals(ecbProductInfo.getDiscntFee()) && "1".equals(ecbProductInfo.getDiscntValue())){
- //畅视20元资费产品,页面可以显示
- }else{
- throw new BusinessException("9923","过滤畅视产品非20元资费");
- }
- }
- */
-
- List<EcbProductInfo> list = new ArrayList<EcbProductInfo>();
- list.add(ecbProductInfo);
- pipe.add("productinfos", JsonUtil.objectToJson(list));
- if(!changshiDebugDao.query(userid)){
- pipe.add("sign", DESUtil.encode(userid+ecbProductInfo.getProductId()+ecbProductInfo.getPackageCode()+ecbProductInfo.getDiscntCode()+ecbProductInfo.getDiscntValue(), "chsh5a1d"));
- }
- return pipe;
- }
-
- public void insertOrderMq(OrderInfo orderInfo, String orderType, EcbProductInfo ecbProductInfo) {
- try {
- if (!csOrderControlDao.discntFeeControl(ecbProductInfo.getDiscntCode(), orderInfo.getCpid(),
- orderInfo.getSpid())) {
- Map<String, String> map = new HashMap<String, String>();
- map.put("userid", orderInfo.getUserid());
- map.put("cpid", orderInfo.getCpid());
- map.put("spid", orderInfo.getSpid());
- map.put("province", orderInfo.getProvince());
- map.put("area", orderInfo.getArea());
- map.put("ordertime", orderInfo.getOrdertime());
- map.put("canceltime", orderInfo.getCanceltime());
- if (orderType.equals("0")) {
- map.put("status", "0");
- } else {
- map.put("status", "1");
- }
- map.put("orderchannel", orderInfo.getOrderchannel());
- map.put("cancelchannel", orderInfo.getCancelchannel());
- map.put("videoid", orderInfo.getVideoid());
- map.put("type", "order");
- //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map));
- URLUtil.post(dictionaryDao.getValue("mqReciveUrl"), JsonUtil.objectToJson(map));
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) throws Exception {
- String url ="http://114.255.201.238:8092/videoif/queryproductinfo.do?";
- String userid = URLEncoder.encode(DESUtil.encode("18673197465", "chsh5a1d"), "utf-8");
- System.out.println(url+"userid="+userid+"&cpid=changshi&channel=H5_&type=1&apptype=2");
- }
- }
|