123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- package com.chinacreator.videoalliance.order.service;
- import java.sql.SQLException;
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- import org.apache.commons.lang.time.DateFormatUtils;
- 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.support.util.SpringContextUtil;
- import com.chinacreator.videoalliance.common.dao.SysDao;
- import com.chinacreator.videoalliance.order.bean.MemberOutBean;
- import com.chinacreator.videoalliance.order.bean.CustomSpInfo;
- import com.chinacreator.videoalliance.order.bean.MemberInfo;
- import com.chinacreator.videoalliance.order.bean.MemberlogBean;
- import com.chinacreator.videoalliance.order.bean.OrderInfo;
- import com.chinacreator.videoalliance.order.bean.OrderLog;
- import com.chinacreator.videoalliance.order.dao.BlackWhiteDao;
- import com.chinacreator.videoalliance.order.dao.CustomDao;
- import com.chinacreator.videoalliance.order.dao.MemberDao;
- import com.chinacreator.videoalliance.order.dao.OrderDao;
- import com.chinacreator.videoalliance.order.dao.OrderLogDao;
- import com.chinacreator.videoalliance.order.process.AbstractVipHandle;
- import com.chinacreator.videoalliance.order.util.URLUtil;
- @Component
- public class VIPOrderServise {
- @Autowired
- private MemberDao memberDao;
-
- @Autowired
- private OrderDao orderDao;
-
- @Autowired
- private BlackWhiteDao blackWhiteDao;
-
- @Autowired
- private SysDao sysDao;
-
- @Autowired
- private OrderLogDao orderLogDao;
-
- @Autowired
- private VacOrderService vacOrderService;
-
- public void checkVip(String numcode,OrderInfo orderInfo) throws Exception{
- MemberInfo memberInfo = memberDao.queryMember(numcode,orderInfo.getCpid());
- if(memberInfo == null){
- throw new BusinessException("9042", "该串号不存在");
- }
- if(!memberInfo.getStatus().equals("1")){
- throw new BusinessException("9044","该串号已使用或者失效");
- }
- if(orderInfo.getCpid().equals("manggtv")){
- if(memberInfo.getEffectivemoths().equals("3")){
- orderInfo.setSpid("957");
- }else{
- orderInfo.setSpid("956");
- }
- }
- orderInfo.setEndtime(getEndtime(memberInfo.getEffectivemoths()));
- }
-
- public void giveVIP(OrderInfo orderInfo,String numcode,String ip,MemberlogBean logBean,CustomSpInfo customSpInfo) throws Exception{
- MemberInfo memberInfo = memberDao.queryMember(numcode,orderInfo.getCpid());
- MemberOutBean memberBean = new MemberOutBean();
- memberBean.setIp(ip);
- memberBean.setCpid(orderInfo.getCpid());
- memberBean.setSpid(orderInfo.getSpid());
- memberBean.setMobile(orderInfo.getUserid());
- memberBean.setFrom_order_id(logBean.getId());
- memberBean.setNumcode(numcode);
- memberBean.setProduct_id(memberInfo.getProductid());
- memberBean.setUsercode("");
- AbstractVipHandle handle = null;
- if(customSpInfo.getType().equals("1")){//芒果tv
- handle = (AbstractVipHandle) SpringContextUtil.getBean("manggtv");
- }else{//其它cp
- handle = (AbstractVipHandle) SpringContextUtil.getBean("comm");
- }
- handle.getVipInfo(orderInfo, memberBean, customSpInfo,logBean);
- memberDao.updatemember(orderInfo.getUserid(), numcode);
- }
-
-
- public void checkOrder(OrderInfo orderInfo) throws Exception {
- List<OrderInfo> listOrderInfo = orderDao.findByUser(orderInfo
- .getUserid());
- if (listOrderInfo != null && listOrderInfo.size() > 0) {
- if (!StringUtils.isEmpty(orderInfo.getMutex())) {
- String[] mutexSpids = orderInfo.getMutex().trim()
- .split(",");
- for (String mutexSpid : mutexSpids) {
- for (OrderInfo oldOrderInfo : listOrderInfo) {
- if (oldOrderInfo.getSpid().equals(
- orderInfo.getSpid())) {
- throw new BusinessException("9010",
- "您已订购,请不要重复订购!", new String[0]);
- }
- if (oldOrderInfo.getSpid().equals(mutexSpid)) {
- throw new BusinessException("9011",
- "您已订购同类产品!", new String[0]);
- }
- }
- }
- } else {
- if (listOrderInfo != null && listOrderInfo.size() != 0) {
- for (OrderInfo oldOrderInfo : listOrderInfo) {
- if (oldOrderInfo.getSpid().equals(
- orderInfo.getSpid())
- && oldOrderInfo.getStatus() == 0) {
- throw new BusinessException("9010",
- "您已订购,请不要重复订购!", new String[0]);
- }
- }
- }
- }
- }
- }
-
- public void getFlowOrder(OrderInfo orderInfo) throws Exception{
- String errorcode = "0";
- String errorinfo = "";
- String result = "0";
- try {
- if (!this.blackWhiteDao.isWhiteUser(orderInfo.getUserid(),
- orderInfo.getCpid())) {
- result = this.vacOrderService.order(orderInfo.getUserid(),
- orderInfo.getSpid());
- }
- String currentTime = this.sysDao.getCurrentTime();
- if(orderInfo.getOrdertime() == null){
- orderInfo.setOrdertime(currentTime);
- }
- if (orderInfo.getEffecttime() == null) {
- orderInfo.setEffecttime(currentTime);
- }
- if (!result.equals("0")) {
- orderInfo.setOrderstatus(7);
- orderInfo.setIsexperience(1);
- orderInfo.setShowstatus("0");
- }
- this.orderDao.order(orderInfo);
- } catch (Exception e) {
- errorcode = "8000";
- if ((e instanceof BusinessException)) {
- errorcode = ((BusinessException) e).getCode();
- }
- throw e;
- } finally {
- saveLog(orderInfo, errorcode, errorinfo);
- }
- }
-
- public void saveLog(OrderInfo orderInfo, String errorcode, String errorinfo) {
- OrderLog orderLog = new OrderLog();
- orderLog.setApptype(orderInfo.getApptype());
- orderLog.setArea(orderInfo.getArea());
- orderLog.setChannel(orderInfo.getOrderchannel());
- orderLog.setOrderstatus(orderInfo.getOrderstatus());
- orderLog.setStatus(orderInfo.getStatus());
- 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.orderLogDao.addOrderLog(orderLog);
- }
-
- public void saveVIPLog(MemberlogBean logBean) throws SQLException {
- memberDao.saveLog(logBean);
- }
-
- public String getEndtime(String months){
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MONTH,Integer.valueOf(months));
- calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
- calendar.set(Calendar.HOUR_OF_DAY, 23);
- calendar.set(Calendar.MINUTE, 59);
- calendar.set(Calendar.SECOND, 59);
- return DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss");
- }
-
- public String getEndtime(String months,String time) throws ParseException{
- Calendar calendar = Calendar.getInstance();
- DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
- Date d = df.parse(time);
- calendar.setTime(d);
- calendar.add(Calendar.MONTH,Integer.valueOf(months));
- calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
- calendar.set(Calendar.HOUR_OF_DAY, 23);
- calendar.set(Calendar.MINUTE, 59);
- calendar.set(Calendar.SECOND, 59);
- return DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss");
- }
-
- public static void main(String[] args) throws Exception {
- System.out.println(URLUtil.postForm("http://as.mgtv.com/openserver", "",15000));
- }
- }
|