aa942eb234a5f26463bdfc5c5fd95ad8bd893ebc.svn-base 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. package com.chinacreator.videoalliance.order.service;
  2. import java.sql.SQLException;
  3. import java.text.DateFormat;
  4. import java.text.ParseException;
  5. import java.text.SimpleDateFormat;
  6. import java.util.Calendar;
  7. import java.util.Date;
  8. import java.util.List;
  9. import org.apache.commons.lang.time.DateFormatUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Component;
  12. import org.springframework.util.StringUtils;
  13. import com.chinacreator.common.exception.BusinessException;
  14. import com.chinacreator.common.support.util.SpringContextUtil;
  15. import com.chinacreator.videoalliance.common.dao.SysDao;
  16. import com.chinacreator.videoalliance.order.bean.MemberOutBean;
  17. import com.chinacreator.videoalliance.order.bean.CustomSpInfo;
  18. import com.chinacreator.videoalliance.order.bean.MemberInfo;
  19. import com.chinacreator.videoalliance.order.bean.MemberlogBean;
  20. import com.chinacreator.videoalliance.order.bean.OrderInfo;
  21. import com.chinacreator.videoalliance.order.bean.OrderLog;
  22. import com.chinacreator.videoalliance.order.dao.BlackWhiteDao;
  23. import com.chinacreator.videoalliance.order.dao.CustomDao;
  24. import com.chinacreator.videoalliance.order.dao.MemberDao;
  25. import com.chinacreator.videoalliance.order.dao.OrderDao;
  26. import com.chinacreator.videoalliance.order.dao.OrderLogDao;
  27. import com.chinacreator.videoalliance.order.process.AbstractVipHandle;
  28. import com.chinacreator.videoalliance.order.util.URLUtil;
  29. @Component
  30. public class VIPOrderServise {
  31. @Autowired
  32. private MemberDao memberDao;
  33. @Autowired
  34. private OrderDao orderDao;
  35. @Autowired
  36. private BlackWhiteDao blackWhiteDao;
  37. @Autowired
  38. private SysDao sysDao;
  39. @Autowired
  40. private OrderLogDao orderLogDao;
  41. @Autowired
  42. private VacOrderService vacOrderService;
  43. public void checkVip(String numcode,OrderInfo orderInfo) throws Exception{
  44. MemberInfo memberInfo = memberDao.queryMember(numcode,orderInfo.getCpid());
  45. if(memberInfo == null){
  46. throw new BusinessException("9042", "该串号不存在");
  47. }
  48. if(!memberInfo.getStatus().equals("1")){
  49. throw new BusinessException("9044","该串号已使用或者失效");
  50. }
  51. if(orderInfo.getCpid().equals("manggtv")){
  52. if(memberInfo.getEffectivemoths().equals("3")){
  53. orderInfo.setSpid("957");
  54. }else{
  55. orderInfo.setSpid("956");
  56. }
  57. }
  58. orderInfo.setEndtime(getEndtime(memberInfo.getEffectivemoths()));
  59. }
  60. public void giveVIP(OrderInfo orderInfo,String numcode,String ip,MemberlogBean logBean,CustomSpInfo customSpInfo) throws Exception{
  61. MemberInfo memberInfo = memberDao.queryMember(numcode,orderInfo.getCpid());
  62. MemberOutBean memberBean = new MemberOutBean();
  63. memberBean.setIp(ip);
  64. memberBean.setCpid(orderInfo.getCpid());
  65. memberBean.setSpid(orderInfo.getSpid());
  66. memberBean.setMobile(orderInfo.getUserid());
  67. memberBean.setFrom_order_id(logBean.getId());
  68. memberBean.setNumcode(numcode);
  69. memberBean.setProduct_id(memberInfo.getProductid());
  70. memberBean.setUsercode("");
  71. AbstractVipHandle handle = null;
  72. if(customSpInfo.getType().equals("1")){//芒果tv
  73. handle = (AbstractVipHandle) SpringContextUtil.getBean("manggtv");
  74. }else{//其它cp
  75. handle = (AbstractVipHandle) SpringContextUtil.getBean("comm");
  76. }
  77. handle.getVipInfo(orderInfo, memberBean, customSpInfo,logBean);
  78. memberDao.updatemember(orderInfo.getUserid(), numcode);
  79. }
  80. public void checkOrder(OrderInfo orderInfo) throws Exception {
  81. List<OrderInfo> listOrderInfo = orderDao.findByUser(orderInfo
  82. .getUserid());
  83. if (listOrderInfo != null && listOrderInfo.size() > 0) {
  84. if (!StringUtils.isEmpty(orderInfo.getMutex())) {
  85. String[] mutexSpids = orderInfo.getMutex().trim()
  86. .split(",");
  87. for (String mutexSpid : mutexSpids) {
  88. for (OrderInfo oldOrderInfo : listOrderInfo) {
  89. if (oldOrderInfo.getSpid().equals(
  90. orderInfo.getSpid())) {
  91. throw new BusinessException("9010",
  92. "您已订购,请不要重复订购!", new String[0]);
  93. }
  94. if (oldOrderInfo.getSpid().equals(mutexSpid)) {
  95. throw new BusinessException("9011",
  96. "您已订购同类产品!", new String[0]);
  97. }
  98. }
  99. }
  100. } else {
  101. if (listOrderInfo != null && listOrderInfo.size() != 0) {
  102. for (OrderInfo oldOrderInfo : listOrderInfo) {
  103. if (oldOrderInfo.getSpid().equals(
  104. orderInfo.getSpid())
  105. && oldOrderInfo.getStatus() == 0) {
  106. throw new BusinessException("9010",
  107. "您已订购,请不要重复订购!", new String[0]);
  108. }
  109. }
  110. }
  111. }
  112. }
  113. }
  114. public void getFlowOrder(OrderInfo orderInfo) throws Exception{
  115. String errorcode = "0";
  116. String errorinfo = "";
  117. String result = "0";
  118. try {
  119. if (!this.blackWhiteDao.isWhiteUser(orderInfo.getUserid(),
  120. orderInfo.getCpid())) {
  121. result = this.vacOrderService.order(orderInfo.getUserid(),
  122. orderInfo.getSpid());
  123. }
  124. String currentTime = this.sysDao.getCurrentTime();
  125. if(orderInfo.getOrdertime() == null){
  126. orderInfo.setOrdertime(currentTime);
  127. }
  128. if (orderInfo.getEffecttime() == null) {
  129. orderInfo.setEffecttime(currentTime);
  130. }
  131. if (!result.equals("0")) {
  132. orderInfo.setOrderstatus(7);
  133. orderInfo.setIsexperience(1);
  134. orderInfo.setShowstatus("0");
  135. }
  136. this.orderDao.order(orderInfo);
  137. } catch (Exception e) {
  138. errorcode = "8000";
  139. if ((e instanceof BusinessException)) {
  140. errorcode = ((BusinessException) e).getCode();
  141. }
  142. throw e;
  143. } finally {
  144. saveLog(orderInfo, errorcode, errorinfo);
  145. }
  146. }
  147. public void saveLog(OrderInfo orderInfo, String errorcode, String errorinfo) {
  148. OrderLog orderLog = new OrderLog();
  149. orderLog.setApptype(orderInfo.getApptype());
  150. orderLog.setArea(orderInfo.getArea());
  151. orderLog.setChannel(orderInfo.getOrderchannel());
  152. orderLog.setOrderstatus(orderInfo.getOrderstatus());
  153. orderLog.setStatus(orderInfo.getStatus());
  154. orderLog.setCpid(orderInfo.getCpid());
  155. orderLog.setIsexperience(orderInfo.getIsexperience());
  156. orderLog.setOrdertype(orderInfo.getOrdertype() + "");
  157. orderLog.setProvince(orderInfo.getProvince());
  158. orderLog.setArea(orderInfo.getArea());
  159. orderLog.setSpid(orderInfo.getSpid());
  160. orderLog.setUserid(orderInfo.getUserid());
  161. orderLog.setErrorcode(errorcode);
  162. orderLog.setErrorinfo(errorinfo);
  163. this.orderLogDao.addOrderLog(orderLog);
  164. }
  165. public void saveVIPLog(MemberlogBean logBean) throws SQLException {
  166. memberDao.saveLog(logBean);
  167. }
  168. public String getEndtime(String months){
  169. Calendar calendar = Calendar.getInstance();
  170. calendar.add(Calendar.MONTH,Integer.valueOf(months));
  171. calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
  172. calendar.set(Calendar.HOUR_OF_DAY, 23);
  173. calendar.set(Calendar.MINUTE, 59);
  174. calendar.set(Calendar.SECOND, 59);
  175. return DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss");
  176. }
  177. public String getEndtime(String months,String time) throws ParseException{
  178. Calendar calendar = Calendar.getInstance();
  179. DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
  180. Date d = df.parse(time);
  181. calendar.setTime(d);
  182. calendar.add(Calendar.MONTH,Integer.valueOf(months));
  183. calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
  184. calendar.set(Calendar.HOUR_OF_DAY, 23);
  185. calendar.set(Calendar.MINUTE, 59);
  186. calendar.set(Calendar.SECOND, 59);
  187. return DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss");
  188. }
  189. public static void main(String[] args) throws Exception {
  190. System.out.println(URLUtil.postForm("http://as.mgtv.com/openserver", "",15000));
  191. }
  192. }