From b26ab14c4cdfa3329ac1b057abf09461115fb8b3 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期五, 18 十月 2019 14:54:52 +0800 Subject: [PATCH] 自动提现优化 --- fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java | 110 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 78 insertions(+), 32 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java index 35b471a..151f10f 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java @@ -1,6 +1,7 @@ package com.yeshi.fanli.controller.admin; import java.io.PrintWriter; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -10,30 +11,40 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import org.yeshi.utils.JsonUtil; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.yeshi.fanli.controller.admin.utils.AdminUtils; -import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.dto.ChartTDO; +import com.yeshi.fanli.entity.money.UserMoneyDebt; +import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum; import com.yeshi.fanli.entity.money.UserMoneyDetail; import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum; import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.HongBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; import com.yeshi.fanli.exception.order.CommonOrderException; import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService; +import com.yeshi.fanli.service.inter.money.UserMoneyDebtService; +import com.yeshi.fanli.service.inter.money.UserMoneyDetailService; +import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService; import com.yeshi.fanli.service.inter.order.CommonOrderCountService; import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoOrderService; +import com.yeshi.fanli.service.inter.order.OrderProcessService; import com.yeshi.fanli.service.inter.order.OrderService; -import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService; -import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService; -import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService; -import com.yeshi.fanli.service.inter.user.UserMoneyDetailService; +import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService; +import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; +import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.vo.order.CommonOrderVO; import net.sf.json.JSONArray; @@ -69,6 +80,18 @@ @Resource private UserMoneyDetailService userMoneyDetailService; + + @Resource + private OrderProcessService orderProcessService; + + @Resource + private HongBaoOrderService hongBaoOrderService; + + @Resource + private UserMoneyDebtService userMoneyDebtService; + + @Resource + private UserSystemCouponRecordService userSystemCouponRecordService; /** * 缁熻鍘嗗彶璁㈠崟-娣樺疂璁㈠崟 @@ -122,7 +145,8 @@ */ @RequestMapping(value = "getUserOrderList") public void getUserOrderList(String callback, Integer pageIndex, Integer pageSize, Integer keyType, String key, - Integer state, Integer type, Integer orderState, String startTime, String endTime, PrintWriter out) { + Integer state, Integer type, Integer orderState, String startTime, String endTime, Integer sourceType, + PrintWriter out) { if (pageIndex == null || pageIndex < 1) { pageIndex = 1; @@ -144,16 +168,13 @@ } try { - long count = 0; - // 鏌ヨ鍒楄〃 List<CommonOrderVO> list = commonOrderService.listQuery((pageIndex - 1) * pageSize, pageSize, keyType, key, - state, type, orderState, startTime, endTime); + state, type, orderState, startTime, endTime, sourceType); - if (list != null && list.size() > 0) { - // 缁熻鎬绘暟 - count = commonOrderService.countQuery(keyType, key, state, type, orderState, startTime, endTime); - } + // 缁熻鎬绘暟 + long count = commonOrderService.countQuery(keyType, key, state, type, orderState, startTime, endTime, + sourceType); // 鏌ヨ鏄惁缁存潈 for (CommonOrderVO order : list) { @@ -166,7 +187,7 @@ TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService .selectByOrderItemId(weiQuanOrder.getOrderItemId()); if (drawBack != null) {// 宸茬粡閫�娆� - + // 璁$畻閫�娆捐祫閲� UserMoneyDetail detail = null; switch (order.getHongBaoType()) { @@ -194,7 +215,22 @@ // 閫�娆炬垚鍔� order.setWeiQuanBackMoney(detail.getMoney().abs().toString()); } else {// 灏氭湭閫�娆� - order.setWeiQuanBackMoney("-" + order.getHongBao()); + order.setWeiQuanBackMoney(drawBack.getDrawBackMoney().toString()); + // 鏌ヨ鍑哄搴旂殑hongBaoId + CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId( + Constant.SOURCE_TYPE_TAOBAO, drawBack.getOrderItemId()); + if (commonOrder != null) { + HongBaoOrder hongBaoOrder = hongBaoOrderService + .selectDetailByCommonOrderId(commonOrder.getId()); + if (hongBaoOrder != null) { + UserMoneyDebt debt = userMoneyDebtService.selectByTypeAndSourceId( + UserMoneyDebtTypeEnum.order, hongBaoOrder.getHongBaoV2().getId()); + if (debt != null && debt.getLeftMoney().compareTo(new BigDecimal(0)) > 0) { + order.setWeiQuanBackMoney( + new BigDecimal(0).subtract(debt.getLeftMoney()).toString());// 鏈墸闄� + } + } + } } } else {// 灏氭湭閫�娆� @@ -367,7 +403,7 @@ JSONArray line_list = new JSONArray(); for (String channel : channelList) { - List<Map<String, Object>> list = hongBaoV2CountService.count24HOderByChannel(channel, dateType, year, + List<ChartTDO> list = hongBaoV2CountService.count24HOderByChannel(channel, dateType, year, startTime, endTime); if ("all".equalsIgnoreCase(channel)) { @@ -492,7 +528,6 @@ */ public JSONObject countHistoryHongBao(String channelArray, Integer dateType, Integer state, String year, String startTime, String endTime, int countType) throws Exception { - if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { startTime = null; endTime = null; @@ -536,7 +571,7 @@ JSONArray line_list = new JSONArray(); for (String channel : channelList) { - List<Map<String, Object>> list = null; + List<ChartTDO> list = null; if (countType == 1) { list = hongBaoV2CountService.countHongBaoNum(channel, dateType, state, year, startTime, endTime); } else if (countType == 2) { @@ -561,7 +596,6 @@ } innerList.put("data", gson.toJson(map.get("value"))); } - line_list.add(innerList); } @@ -571,9 +605,7 @@ } else { data.put("xAxis_list", gson.toJson(dateList)); } - data.put("line_list", line_list); - return data; } @@ -593,7 +625,6 @@ @RequestMapping(value = "getTypeNumber") public void getTypeNumber(String callback, Integer dateType, String typeArray, String year, String startTime, String endTime, PrintWriter out) { - String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime); if (validateMsg != null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg)); @@ -640,15 +671,11 @@ Gson gson = new Gson(); Object objectDate = null; List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); - try { - JSONArray line_list = new JSONArray(); for (Integer type : channelList) { - - List<Map<String, Object>> list = hongBaoV2CountService.countHongBaoType(dateType, type, year, startTime, + List<ChartTDO> list = hongBaoV2CountService.countHongBaoType(dateType, type, year, startTime, endTime); - JSONObject innerList = new JSONObject(); if (type == 1) { innerList.put("name", "杩斿埄璁㈠崟"); @@ -691,7 +718,7 @@ } /** - * 璁㈠崟璺熻釜鍑嗙‘鐜�(杩斿埄鍒哥敤鎴疯鍗�/娣樺疂鑱旂洘璁㈠崟) + * 璁㈠崟璺熻釜鍑嗙‘鐜�(鏉挎牀蹇渷鐢ㄦ埛璁㈠崟/娣樺疂鑱旂洘璁㈠崟) * * @param callback * @param dateType @@ -702,7 +729,7 @@ */ @RequestMapping(value = "getTrackAccuracyRate") public void getTrackAccuracyRate(String callback, Integer dateType, String year, String startTime, String endTime, - PrintWriter out) { + int sourceType, PrintWriter out) { if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { startTime = null; @@ -737,8 +764,8 @@ JSONArray line_list = new JSONArray(); - List<Map<String, Object>> list = commonOrderCountService.getTrackAccuracyRate(dateType, year, startTime, - endTime); + List<ChartTDO> list = commonOrderCountService.getTrackAccuracyRate(dateType, year, startTime, + endTime, sourceType); JSONObject innerList = new JSONObject(); innerList.put("name", "鎬昏"); @@ -901,7 +928,7 @@ List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); JSONArray line_list = new JSONArray(); - List<Map<String, Object>> list = null; + List<ChartTDO> list = null; if (countType == 1) { list = commonOrderCountService.countWeiQaunOrderNumber(dateType, year, startTime, endTime); } else if (countType == 2) { @@ -937,4 +964,23 @@ return data; } + @RequestMapping(value = "uploadTaoBaoWeiQuanOrder") + public void uploadWeiQuanOrder(String callback, HttpServletRequest request, PrintWriter out) { + try { + // 1. 鍏堝垽鏂環ttpRequest 鏄惁鍚湁鏂囦欢绫诲瀷 + if (request instanceof MultipartHttpServletRequest) { + MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request; + MultipartFile file = fileRequest.getFile("file"); + List<TaoBaoWeiQuanOrder> orderList = TaoBaoOrderUtil.getWeiQuanOrders(file.getInputStream()); + for (TaoBaoWeiQuanOrder order : orderList) + taoBaoWeiQuanOrderService.addWeiQuanOrder(order);// 娣诲姞缁存潈璁㈠崟鍒版暟鎹簱 + // 澶勭悊缁存潈璁㈠崟 + orderProcessService.weiQuanOrder(orderList); + } + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鏇存柊鎴愬姛")); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏇存柊澶辫触")); + } + } + } -- Gitblit v1.8.0