5535c8ac66909b7e622254f2b86467cd8da61f07.svn-base 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.chinacreator.process.service;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.List;
  5. import org.apache.commons.lang.StringUtils;
  6. import org.apache.commons.lang.math.NumberUtils;
  7. import org.apache.commons.lang.time.DateFormatUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Component;
  10. import com.chinacreator.common.exception.BusinessException;
  11. import com.chinacreator.process.bean.ActivityConfigBean;
  12. import com.chinacreator.process.bean.NetOrderBean;
  13. import com.chinacreator.process.bean.OrderBean;
  14. import com.chinacreator.process.dao.ActivityConfigDao;
  15. import com.chinacreator.process.dao.AqiyActiveDao;
  16. @Component
  17. public class AqiyOrderService {
  18. @Autowired
  19. private AqiyActiveDao aqiyActiveDao;
  20. @Autowired
  21. private ActivityConfigDao activityConfigDao;
  22. public void handle(OrderBean orderBean) throws Exception {
  23. OrderBean activityOrderBean = aqiyActiveDao.existUser(orderBean.getUserid(), orderBean.getCpid(),
  24. orderBean.getSpid(),orderBean.getActiveType()+"");
  25. if(activityOrderBean == null){//活动表无数据
  26. orderBean = getOrderInfo(orderBean);
  27. aqiyActiveDao.insertBeans(orderBean);
  28. }else{
  29. orderBean = getOrderInfo(orderBean);
  30. OrderBean vipOrderBean = getVipInfo(activityOrderBean);
  31. orderBean.setVipstatus(vipOrderBean.getVipstatus());
  32. orderBean.setViptime(vipOrderBean.getViptime());
  33. orderBean.setId(activityOrderBean.getId());
  34. aqiyActiveDao.update(orderBean);
  35. }
  36. }
  37. public OrderBean getVipInfo(OrderBean activityOrderBean) throws BusinessException{
  38. OrderBean orderBean = new OrderBean();
  39. String vipstatus=activityOrderBean.getVipstatus();
  40. String viptime = activityOrderBean.getViptime();
  41. if(StringUtils.isEmpty(viptime)){
  42. vipstatus = activityOrderBean.getVipstatus();
  43. viptime = activityOrderBean.getViptime();
  44. }else{
  45. if(NumberUtils.toLong(viptime.substring(0, 6)) ==NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMM"))){
  46. if(activityOrderBean.getVipcontime() != null && NumberUtils.toLong(activityOrderBean.getVipcontime().substring(0, 6)) == NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMM"))){
  47. vipstatus ="0";
  48. viptime = activityOrderBean.getVipcontime();
  49. }else{
  50. vipstatus = activityOrderBean.getVipstatus();
  51. viptime = activityOrderBean.getViptime();
  52. }
  53. }else if(NumberUtils.toLong(viptime.substring(0, 6)) < NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMM"))){
  54. if(activityOrderBean.getVipcontime() != null && NumberUtils.toLong(activityOrderBean.getVipcontime().substring(0, 6)) == NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMM"))){
  55. vipstatus = activityOrderBean.getVipstatus();
  56. viptime = activityOrderBean.getViptime();
  57. }else{
  58. vipstatus ="2";
  59. viptime ="";
  60. }
  61. }else{
  62. throw new BusinessException("8010", "viptime数据异常");
  63. }
  64. }
  65. orderBean.setVipstatus(vipstatus);
  66. orderBean.setViptime(viptime);
  67. return orderBean;
  68. }
  69. public OrderBean getOrderInfo(OrderBean orderBean) throws Exception{
  70. List<NetOrderBean> list = aqiyActiveDao.findOrder(orderBean.getCpid(), orderBean.getUserid(),orderBean.getSpid());
  71. List<NetOrderBean> orderlist = new ArrayList<NetOrderBean>();
  72. List<NetOrderBean> cancellist = new ArrayList<NetOrderBean>();
  73. ActivityConfigBean activityConfigBean = activityConfigDao.findByCallerheadtype(orderBean.getCpid(), orderBean.getSpid(), orderBean.getProvince(),orderBean.getActiveType()+"");
  74. if(list != null && list.size()>0){
  75. for (NetOrderBean netOrderBean : list) {
  76. if(NumberUtils.toLong(netOrderBean.getOrdertimestr()) >= NumberUtils.toLong(activityConfigBean.getBegintime()) && NumberUtils.toLong(netOrderBean.getOrdertimestr()) <= NumberUtils.toLong(activityConfigBean.getEndtime())){
  77. if(netOrderBean.getStatus().equals("0")){
  78. orderlist.add(netOrderBean);
  79. }else if(netOrderBean.getStatus().equals("1")){
  80. cancellist.add(netOrderBean);
  81. }
  82. }
  83. }
  84. }
  85. String ordertime ="";
  86. String endtime="";
  87. String canceltime="";
  88. String orderstatus= "";
  89. String orderchannel ="";
  90. String cancelchannel="";
  91. if(orderlist.size()>0 && cancellist.size()==0){//全是订购,取最早订购时间
  92. orderstatus = "0";
  93. for (NetOrderBean netOrderBean : orderlist) {
  94. if(StringUtils.isEmpty(ordertime)){
  95. ordertime = netOrderBean.getOrdertimestr();
  96. }
  97. if(NumberUtils.toLong(netOrderBean.getOrdertimestr()) <= NumberUtils.toLong(ordertime)){
  98. ordertime = netOrderBean.getOrdertimestr();
  99. orderchannel = netOrderBean.getOrderchannel();
  100. }
  101. }
  102. }else if(cancellist.size() >0 && orderlist.size()==0){
  103. orderstatus ="1";
  104. for (NetOrderBean netOrderBean : cancellist) {
  105. if(StringUtils.isEmpty(ordertime)){
  106. ordertime = netOrderBean.getOrdertimestr();
  107. canceltime = netOrderBean.getCanceltimestr();
  108. cancelchannel = netOrderBean.getCancelchannel();
  109. orderchannel = netOrderBean.getOrderchannel();
  110. endtime = netOrderBean.getEndtimestr();
  111. }
  112. if(NumberUtils.toLong(netOrderBean.getOrdertimestr()) <= NumberUtils.toLong(ordertime)){
  113. ordertime = netOrderBean.getOrdertimestr();
  114. orderchannel = netOrderBean.getOrderchannel();
  115. }
  116. if(NumberUtils.toLong(netOrderBean.getCanceltimestr()) >= NumberUtils.toLong(canceltime)){
  117. canceltime = netOrderBean.getCanceltimestr();
  118. endtime = netOrderBean.getEndtimestr();
  119. cancelchannel = netOrderBean.getCancelchannel();
  120. }
  121. }
  122. }else if(cancellist.size() >0 && orderlist.size()>0){
  123. orderstatus ="0";
  124. orderBean.setCancelchannel(cancelchannel);
  125. for (NetOrderBean netOrderBean : list) {
  126. if(netOrderBean.getStatus().equals("0") || netOrderBean.getStatus().equals("1")){
  127. if(StringUtils.isEmpty(ordertime)){
  128. ordertime = netOrderBean.getOrdertimestr();
  129. }
  130. if(NumberUtils.toLong(netOrderBean.getOrdertimestr()) <= NumberUtils.toLong(ordertime)){
  131. ordertime = netOrderBean.getOrdertimestr();
  132. orderchannel=netOrderBean.getOrderchannel();
  133. }
  134. }
  135. }
  136. }else{
  137. throw new BusinessException("8010", "order数据异常");
  138. }
  139. orderBean.setEndtime(endtime);
  140. orderBean.setCanceltime(canceltime);
  141. orderBean.setOrderstatus(orderstatus);
  142. orderBean.setOrdertime(ordertime);
  143. orderBean.setOrderchannel(orderchannel);
  144. orderBean.setCancelchannel(cancelchannel);
  145. return orderBean;
  146. }
  147. }