QzStoreTopicStatisService.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package com.kmall.schedule.service;
  2. import com.google.common.collect.Maps;
  3. import com.kmall.common.utils.MapUtils;
  4. import com.kmall.schedule.dao.QzStorePromMapper;
  5. import com.kmall.schedule.dao.QzStoreTopicStatisMapper;
  6. import org.apache.commons.logging.Log;
  7. import org.apache.commons.logging.LogFactory;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.transaction.annotation.Transactional;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 门店活动统计定时任务
  16. *
  17. * @author HUANGYAQIN(CN)
  18. * @date 2019/5/25
  19. */
  20. @Service
  21. public class QzStoreTopicStatisService {
  22. private static Log logger = LogFactory.getLog(QzStoreTopicStatisService.class);
  23. @Autowired
  24. private QzStoreTopicStatisMapper qzStoreTopicStatisMapper;
  25. /**
  26. * 支付成功且是门店优惠券活动订单统计支付数据
  27. */
  28. @Transactional
  29. public void updateTopicStatByPaySuccess() {
  30. logger.info(">>>>>>>>>>>>>>>>>>>>updateTopicStatByPaySuccess is start ");
  31. logger.info(">>>>>>>>>>>>>>>>>>>>查询支付成功的门店优惠券活动订单,修改门店优惠券活动统计数据 ");
  32. Integer[] statusList = {201};
  33. //查看未过期且有效的优惠券支付成功的订单信息
  34. List<Map> topicByPaySuccessList = qzStoreTopicStatisMapper.queryTicketStoreTopicByPaySuccess(statusList);
  35. updateTopicStatByPaySuccessByList(topicByPaySuccessList, statusList);
  36. logger.info(">>>>>>>>>>>>>>>>>>>>updateTopicStatByPaySuccess is end ");
  37. }
  38. /**
  39. * 退款成功且是门店优惠券活动订单统计支付数据
  40. */
  41. @Transactional
  42. public void updateTopicStatByRefundSuccess() {
  43. logger.info(">>>>>>>>>>>>>>>>>>>>updateTopicStatByRefundSuccess is start ");
  44. logger.info(">>>>>>>>>>>>>>>>>>>>查询退款成功的门店优惠券活动订单,修改门店优惠券活动统计数据 ");
  45. Integer[] statusList = {401};
  46. //查看未过期且有效的优惠券退款成功的订单信息
  47. List<Map> promByRefundSuccessList = qzStoreTopicStatisMapper.queryTicketStoreTopicByPaySuccess(statusList);
  48. if (null != promByRefundSuccessList && promByRefundSuccessList.size() > 0) {
  49. updateTopicStatByRefundSuccessByList(promByRefundSuccessList, statusList);
  50. }else{
  51. logger.info(">>>>>>>>>>>>>>>>>>>>查询退款成功的门店优惠券活动订单没有数据 ");
  52. }
  53. logger.info(">>>>>>>>>>>>>>>>>>>>updateTopicStatByRefundSuccess is end ");
  54. }
  55. /**
  56. * 支付成功且是门店促销满减活动订单统计支付数据
  57. */
  58. @Transactional
  59. public void updateCampTopicStatByPaySuccess() {
  60. logger.info(">>>>>>>>>>>>>>>>>>>>updateCampTopicStatByPaySuccess is start ");
  61. logger.info(">>>>>>>>>>>>>>>>>>>>查询支付成功的门店促销满减活动订单,修改门店促销满减活动统计数据 ");
  62. Integer[] statusList = {201};
  63. //查看未过期且有效的促销满减支付成功的订单信息
  64. List<Map> topicByPaySuccessList = qzStoreTopicStatisMapper.queryCampStoreTopicByPaySuccess(statusList);
  65. if (null != topicByPaySuccessList && topicByPaySuccessList.size() > 0) {
  66. updateTopicStatByPaySuccessByList(topicByPaySuccessList, statusList);
  67. }else{
  68. logger.info(">>>>>>>>>>>>>>>>>>>>查询支付成功的门店促销满减活动订单没有数据 ");
  69. }
  70. logger.info(">>>>>>>>>>>>>>>>>>>>updateCampTopicStatByPaySuccess is end ");
  71. }
  72. /**
  73. * 退款成功且是门店促销满减活动订单统计支付数据
  74. */
  75. @Transactional
  76. public void updateCampTopicStatByRefundSuccess() {
  77. logger.info(">>>>>>>>>>>>>>>>>>>>updateCampTopicStatByRefundSuccess is start ");
  78. logger.info(">>>>>>>>>>>>>>>>>>>>查询退款成功的门店促销满减活动订单,修改门店促销满减活动统计数据 ");
  79. Integer[] statusList = {401};
  80. //查看未过期且有效的促销满减退款成功的订单信息
  81. List<Map> campByRefundSuccessList = qzStoreTopicStatisMapper.queryCampStoreTopicByPaySuccess(statusList);
  82. if (null != campByRefundSuccessList && campByRefundSuccessList.size() > 0) {
  83. updateTopicStatByRefundSuccessByList(campByRefundSuccessList, statusList);
  84. }else{
  85. logger.info(">>>>>>>>>>>>>>>>>>>>查询退款成功的门店促销满减活动订单没有数据 ");
  86. }
  87. logger.info(">>>>>>>>>>>>>>>>>>>>updateCampTopicStatByRefundSuccess is end ");
  88. }
  89. private void updateTopicStatByPaySuccessByList(List<Map> list, Integer[] statusList){
  90. for (Map map : list) {
  91. Integer storeTopicId = MapUtils.getInteger("storeTopicId", map);
  92. Integer storeTopicStatId = MapUtils.getInteger("storeTopicStatId", map);
  93. Map updateParam = Maps.newHashMap();
  94. Map queryMap = new HashMap();
  95. queryMap.put("storeTopicId", storeTopicId);
  96. queryMap.put("statusListOne", statusList);
  97. queryMap.put("statusListTwo", statusList);
  98. Map statDataMap = qzStoreTopicStatisMapper.getStatDataByStoreTopicId(queryMap);
  99. Double receivMoney = parseDoubleValid(MapUtils.getDouble("receivMoney", statDataMap));
  100. Double orderActualPrice = parseDoubleValid(MapUtils.getDouble("orderActualPrice", statDataMap));
  101. Integer payCaseNum = parseIntegerValid(MapUtils.getInteger("payCaseNum", statDataMap));
  102. Integer payOrderNum = parseIntegerValid(MapUtils.getInteger("payOrderNum", statDataMap));
  103. Integer payerNum = parseIntegerValid(MapUtils.getInteger("payerNum", statDataMap));
  104. // TODO: 2019/5/6 实收金额:已包含优惠券、运费等的扣减
  105. updateParam.put("receivMoney", receivMoney);
  106. updateParam.put("actMoney", orderActualPrice);
  107. updateParam.put("payCaseNum", payCaseNum);
  108. updateParam.put("payOrderNum", payOrderNum);
  109. updateParam.put("payerNum", payerNum);
  110. updateParam.put("storeTopicStatId", storeTopicStatId);
  111. updateParam.put("storeTopicId", storeTopicId);
  112. qzStoreTopicStatisMapper.updateStoreTopicStat(updateParam);//修改状态
  113. }
  114. }
  115. private void updateTopicStatByRefundSuccessByList(List<Map> list, Integer[] statusList){
  116. for (Map refundMap : list) {
  117. Integer storeTopicId = MapUtils.getInteger("storeTopicId", refundMap);
  118. Integer storeTopicStatId = MapUtils.getInteger("storeTopicStatId", refundMap);
  119. //查出退款的原统计数据
  120. Double orgReceivMoney = parseDoubleValid(MapUtils.getDouble("receivMoney", refundMap));
  121. Double orgActMoney = parseDoubleValid(MapUtils.getDouble("actMoney", refundMap));
  122. Integer orgPayCaseNum = parseIntegerValid(MapUtils.getInteger("payCaseNum", refundMap));
  123. Integer orgPayOrderNum = parseIntegerValid(MapUtils.getInteger("payOrderNum", refundMap));
  124. Integer orgPayerNum = parseIntegerValid(MapUtils.getInteger("payerNum", refundMap));
  125. if(orgReceivMoney == 0 || orgActMoney == 0){
  126. return;
  127. }
  128. Map updateParam = Maps.newHashMap();
  129. //查出该商品的总退款统计数据
  130. Map queryMap = new HashMap();
  131. queryMap.put("storeTopicId", storeTopicId);
  132. queryMap.put("statusListOne", statusList);
  133. queryMap.put("statusListTwo", statusList);
  134. Map statDataMap = qzStoreTopicStatisMapper.getStatDataByStoreTopicId(queryMap);
  135. Double receivMoney = parseDoubleValid(MapUtils.getDouble("receivMoney", statDataMap));
  136. Double orderActualPrice = parseDoubleValid(MapUtils.getDouble("orderActualPrice", statDataMap));
  137. Integer payCaseNum = parseIntegerValid(MapUtils.getInteger("payCaseNum", statDataMap));
  138. Integer payOrderNum = parseIntegerValid(MapUtils.getInteger("payOrderNum", statDataMap));
  139. Integer payerNum = parseIntegerValid(MapUtils.getInteger("payerNum", statDataMap));
  140. // TODO: 2019/5/6 实收金额:还需要计算优惠券、运费等
  141. updateParam.put("receivMoney", orgReceivMoney - receivMoney);
  142. updateParam.put("actMoney", orgActMoney - orderActualPrice);
  143. updateParam.put("payCaseNum", orgPayCaseNum - payCaseNum);
  144. updateParam.put("payOrderNum", orgPayOrderNum - payOrderNum);
  145. updateParam.put("payerNum", orgPayerNum - payerNum);
  146. updateParam.put("storeTopicStatId", storeTopicStatId);
  147. updateParam.put("storeTopicId", storeTopicId);
  148. qzStoreTopicStatisMapper.updateStoreTopicStat(updateParam);//修改状态
  149. }
  150. }
  151. private Double parseDoubleValid(Double param){
  152. param = param == null ? 0 : param;
  153. return param;
  154. }
  155. private Integer parseIntegerValid(Integer param){
  156. param = param == null ? 0 : param;
  157. return param;
  158. }
  159. public static void main(String[] args) {
  160. }
  161. /**
  162. * 统计门店促销满减活动订单,下单单数、下单人数数据
  163. *//*
  164. @Transactional
  165. public void updateCampTopicStatBySubmit() {
  166. logger.info(">>>>>>>>>>>>>>>>>>>>updateCampTopicStatBySubmit is start ");
  167. logger.info(">>>>>>>>>>>>>>>>>>>>查询门店促销满减活动订单,修改门店促销满减活动统计数据 ");
  168. List<Map> topicByOrderList = qzStoreTopicStatisMapper.queryCampByOrderList();
  169. if (null != topicByOrderList && topicByOrderList.size() > 0) {
  170. for (Map map : topicByOrderList) {
  171. Integer storeTopicId = MapUtils.getInteger("storeTopicId", map);
  172. Integer storeTopicStatId = MapUtils.getInteger("storeTopicStatId", map);
  173. Integer submitOrderNum = MapUtils.getInteger("submitOrderNum", map);
  174. List<Map> submitNumList = qzStoreTopicStatisMapper.querySubmitNumByCampOrder(storeTopicId);
  175. Integer submitNum = submitNumList != null ? submitNumList.size() : 0;
  176. Map updateParam = Maps.newHashMap();
  177. updateParam.put("submitOrderNum", submitOrderNum);
  178. updateParam.put("submitNum", submitNum);
  179. updateParam.put("storeTopicStatId", storeTopicStatId);
  180. qzStoreTopicStatisMapper.updateStoreTopicStatSubmit(updateParam);//修改状态
  181. }
  182. }
  183. logger.info(">>>>>>>>>>>>>>>>>>>>updateCampTopicStatBySubmit is end ");
  184. }*/
  185. }