From 4114e871bcb3dce771b6aed64a1027d0bbb95ca6 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 16 五月 2019 15:28:37 +0800 Subject: [PATCH] 增加动态用户 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserOrderController.java | 473 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 333 insertions(+), 140 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserOrderController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserOrderController.java index b1fa29a..c455ab5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserOrderController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserOrderController.java @@ -9,165 +9,231 @@ import javax.annotation.Resource; -import net.sf.json.JSONObject; - import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.yeshi.utils.DateUtil; import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.encrypt.DESUtil; +import com.yeshi.fanli.entity.AppVersionInfo; import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.user.Order; +import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.exception.order.CommonOrderException; +import com.yeshi.fanli.service.inter.config.AppVersionService; import com.yeshi.fanli.service.inter.config.ConfigService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoService; +import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.order.OrderService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService; +import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.util.CMQManager; +import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.account.UserUtil; import com.yeshi.fanli.vo.order.CommonOrderVO; +import com.yeshi.fanli.vo.user.UserInfoExtraVO; + +import net.sf.json.JSONObject; @Controller @RequestMapping("api/v1/user/order") public class UserOrderController { - + @Resource private ConfigService configService; @Resource + private AppVersionService appVersionService; + + @Resource private UserInfoService userInfoService; - + + @Resource + private UserInfoExtraService userInfoExtraService; + @Resource private CommonOrderService commonOrderService; - + @Resource - private HongBaoService hongBaoService; + private HongBaoV2CountService hongBaoV2CountService; + + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + @Resource + private TaoBaoOrderService taoBaoOrderService; + + @Resource + private OrderService orderService; /** * 璁㈠崟鍒楄〃 + * * @param acceptData * @param page * @param uid - * @param state 鐘舵�侊細1-鏈埌璐� 2-宸插埌璐� 3-宸插け鏁� - * @param type 绫诲瀷锛�1-杩斿埄璁㈠崟 2-鍒嗕韩璁㈠崟 3-閭�璇疯鍗� - * @param orderState 1鏈夋晥璁㈠崟 2 缁存潈璁㈠崟 3澶辨晥璁㈠崟 - * @param orderNo 璁㈠崟鍙� - * @param startTime 璧峰鏃堕棿 - * @param endTime 缁撴潫鏃堕棿 - * @param slotTime 鏃堕棿娈碉細1-鏈�杩戜笁澶� 2-鏈�杩戜竷澶� 3鏈�杩戝崐鏈� 4鏈湀 5杩戜笁鏈� 6杩戝崐骞� - * @param dateType 1-浠婃棩 2-鏄ㄥぉ 3-鏈湀 4-涓婁釜鏈� | + * @param state + * 鐘舵�侊細0鍏ㄩ儴 1-鏈埌璐� 2-宸插埌璐� 3-宸插け鏁� 4宸叉敹璐� + * @param type + * 绫诲瀷锛�1-杩斿埄璁㈠崟 2-鍒嗕韩璁㈠崟 3-閭�璇疯鍗� + * @param orderState + * 1鏈夋晥璁㈠崟 2 缁存潈璁㈠崟 3澶辨晥璁㈠崟 + * @param orderNo + * 璁㈠崟鍙� + * @param startTime + * 璧峰鏃堕棿 + * @param endTime + * 缁撴潫鏃堕棿 + * @param slotTime + * 鏃堕棿娈碉細1-鏈�杩戜笁澶� 2-鏈�杩戜竷澶� 3鏈�杩戝崐鏈� 4鏈湀 5杩戜笁鏈� 6杩戝崐骞� + * @param dateType + * 1-浠婃棩 2-鏄ㄥぉ 3-鏈湀 4-涓婁釜鏈� | * @param needCount * @param out */ @RequestMapping(value = "getorder", method = RequestMethod.POST) - public void getOrder(AcceptData acceptData, Integer page, Long uid, Integer state, Integer type, - Integer orderState,String orderNo, String startTime, String endTime, Integer slotTime, - boolean needCount, Integer dateType, PrintWriter out) { - + public void getOrder(AcceptData acceptData, Integer page, Long uid, Integer state, Integer type, Integer orderState, + String orderNo, String startTime, String endTime, Integer slotTime, boolean needCount, Integer dateType, + PrintWriter out) { + if (uid == null) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - + if (page == null || page < 1) { page = 1; } - - if (state !=null && state == 0) { - state = null; + + if (state != null && state == 0) { + state = null;// 鎵�鏈夌姸鎬� } - - if (type != null && type == 0 ) { - type = null; // 鏌ヨ鎵�鏈夌被鍨嬭鍗� + + // 杞崲鐘舵�� + if (state != null && state == 4) { + orderState = state; // 宸叉敹璐х姸鎬� + state = null; // 娓呯┖ } - + + if (type != null && type == 0) { + type = null; // 鎵�鏈夌被鍨嬭鍗� + } + try { if (slotTime != null) { - SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); - startTime = sd.format(new Date()); - endTime = convertDate(slotTime, startTime); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + endTime = sd.format(new Date()); + startTime = convertDate(slotTime, endTime); } } catch (Exception e) { e.printStackTrace(); } - + + if (endTime != null && endTime.trim().length() > 0) { + endTime += " 23:59:59"; + } + try { long count = 0; - List<CommonOrderVO> list = commonOrderService.getOrderByUid(page, uid, state, type, orderState, orderNo, - startTime, endTime, dateType); - - if (list != null && list.size() > 0) { - count = commonOrderService.countGroupOrderNoByUid(uid, state, type, orderState, orderNo, startTime, endTime, dateType); - } - int totalValid = 0; int totalProces = 0; int totalInvite = 0; long todayTotal = 0; BigDecimal todayMoney = null; - // 闇�瑕佺粺璁′俊鎭� + + // 鏌ヨ鍒楄〃 + List<CommonOrderVO> list = commonOrderService.getOrderByUid(page, uid, state, type, orderState, orderNo, + startTime, endTime, dateType); + + if (list != null && list.size() > 0) { + // 缁熻鎬绘暟 + count = commonOrderService.countGroupOrderNoByUid(uid, state, type, orderState, orderNo, startTime, + endTime, dateType); + } + + // 闇�瑕佺粺璁$瓫閫変俊鎭� 锛氭湭澶辨晥鐨勬�婚噾棰� 浠ュ強璁㈠崟 if (needCount && page == 1) { - Map<String, BigDecimal> countOrder = commonOrderService.countByUidAndOrderState(uid, type, startTime, endTime); - + + todayMoney = commonOrderService.countBonusOrderMoney(uid, type, dateType, startTime, endTime); + + todayTotal = commonOrderService.countBonusOrderNumber(uid, type, dateType, startTime, endTime); + + // 缁熻鏈夋晥鐨勮鍗曟暟閲� 銆� 澶辨晥璁㈠崟鏁伴噺 銆佺淮鏉冭鍗曟暟閲� + Map<String, BigDecimal> countOrder = commonOrderService.countByUidAndOrderState(uid, type, startTime, + endTime, dateType); + if (countOrder.get("totalValid") != null) { totalValid = countOrder.get("totalValid").intValue(); - } - + } + if (countOrder.get("totalProces") != null) { totalProces = countOrder.get("totalProces").intValue(); - } - + } + if (countOrder.get("totalInvite") != null) { totalInvite = countOrder.get("totalInvite").intValue(); - } - - todayTotal = commonOrderService.countOrder(uid, type, 1); - todayMoney = commonOrderService.countOrderMoney(uid, type , 1); + } } - + if (todayMoney == null) { - todayMoney = new BigDecimal(0); + todayMoney = new BigDecimal(0.00); } - + String helpUrl = configService.get("order_list_help"); - + JSONObject data = new JSONObject(); data.put("count", count); data.put("result_list", JsonUtil.getApiCommonGson().toJson(list)); - + data.put("helpUrl", helpUrl); - - data.put("todayTotal", todayTotal); - data.put("todayMoney", todayMoney); + + if (type != null && type == 1) { + data.put("todayMoney", "棰勪及杩斿埄鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + } else if (type != null && (type == 2 || type == 3)) { + data.put("todayMoney", "棰勪及濂栭噾鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + } else { + data.put("todayMoney", "棰勪及鎬婚 楼" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + } + + data.put("todayTotal", "鍏�" + todayTotal + "绗�"); data.put("totalValid", totalValid); // 鏈夋晥鏁伴噺 data.put("totalProces", totalProces); // 缁存潈鏁伴噺 data.put("totalInvite", totalInvite); // 澶辨晥鏁伴噺 - + out.print(JsonUtil.loadTrueResult(data)); - - } catch(CommonOrderException e){ + + } catch (CommonOrderException e) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); } catch (Exception e) { out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); e.printStackTrace(); } - + } /** * 鐢ㄦ埛璁㈠崟缁熻 + * * @param acceptData - * @param uid 鐢ㄦ埛id + * @param uid + * 鐢ㄦ埛id * @param out */ @RequestMapping(value = "countorder", method = RequestMethod.POST) public void countOrder(AcceptData acceptData, Long uid, PrintWriter out) { - + if (uid == null) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - + try { UserInfo user = userInfoService.selectByPKey(uid); if (user == null) { @@ -176,165 +242,292 @@ } UserInfo userInfo = UserUtil.filterForClientUser(user); - + + // 1.5.0 鐗堟湰涔嬪悗杩斿洖鏂扮殑绛夌骇 + String version = acceptData.getVersion(); + if (version != null && version.trim().length() > 0) { + int versionCode = Integer.parseInt(version); + String platform = acceptData.getPlatform(); + + AppVersionInfo versionInfo = appVersionService.getByPlatformAndVersion(platform, "1.5.0"); + if (versionInfo != null) { + int versionCode150 = versionInfo.getVersionCode(); + if (versionCode >= versionCode150) { + UserInfoExtraVO userInfoExtra = userInfoExtraService.getInfoExtraVOByUid(user.getId()); + if (userInfoExtra != null && userInfoExtra.getUserRank() != null) { + String picture = userInfoExtra.getUserRank().getPicture(); + String icon = userInfoExtra.getUserRank().getIcon(); + + userInfo.setRankIcon(icon); + userInfo.setRankNamePicture(picture); + } + } + } + + } + JSONObject data = new JSONObject(); data.put("userInfo", userInfo); - - /* 鎬昏鍗曠粺璁� */ - Map<String, BigDecimal> countOrder= commonOrderService.countOrderByHongBaoType(uid, null); + + /* 鎬昏鍗曠粺璁� */ + Map<String, BigDecimal> countOrder = commonOrderService.countHistoryOrder(uid, null); int self = 0; if (countOrder.get("totalSelf") != null) { self = countOrder.get("totalSelf").intValue(); - } - + } + int shared = 0; if (countOrder.get("totalShared") != null) { shared = countOrder.get("totalShared").intValue(); - } - + } + int invite = 0; if (countOrder.get("totalInvite") != null) { invite = countOrder.get("totalInvite").intValue(); - } - + } + int total = self + shared + invite; - + data.put("total", total); data.put("self", self); data.put("shared", shared); data.put("invite", invite); - - /* 浠婃棩璁㈠崟缁熻 */ - Map<String, BigDecimal> countToday= commonOrderService.countOrderByHongBaoType(uid, 1); - + + /* 浠婃棩璁㈠崟缁熻 */ + Map<String, BigDecimal> countToday = commonOrderService.countHistoryOrder(uid, 1); + int todaySelf = 0; if (countToday.get("totalSelf") != null) { todaySelf = countToday.get("totalSelf").intValue(); - } - + } + int todayShared = 0; if (countToday.get("totalShared") != null) { todayShared = countToday.get("totalShared").intValue(); - } - + } + int todayInvite = 0; if (countToday.get("totalInvite") != null) { todayInvite = countToday.get("totalInvite").intValue(); - } - + } + int todayTotal = todaySelf + todayShared + todayInvite; - + JSONObject todaydata = new JSONObject(); todaydata.put("total", todayTotal); todaydata.put("self", todaySelf); todaydata.put("shared", todayShared); todaydata.put("invite", todayInvite); - + data.put("today", todaydata); - - /* 鏄ㄦ棩璁㈠崟缁熻 */ - Map<String, BigDecimal> countYesterday= commonOrderService.countOrderByHongBaoType(uid, 2); + + /* 鏄ㄦ棩璁㈠崟缁熻 */ + Map<String, BigDecimal> countYesterday = commonOrderService.countHistoryOrder(uid, 2); int yesterdaySelf = 0; if (countYesterday.get("totalSelf") != null) { yesterdaySelf = countYesterday.get("totalSelf").intValue(); - } - + } + int yesterdayShared = 0; if (countYesterday.get("totalShared") != null) { yesterdayShared = countYesterday.get("totalShared").intValue(); - } + } int yesterdayInvite = 0; if (countYesterday.get("totalInvite") != null) { yesterdayInvite = countYesterday.get("totalInvite").intValue(); - } + } int yesterdayTotal = yesterdaySelf + yesterdayShared + yesterdayInvite; - + JSONObject yesterdaydata = new JSONObject(); yesterdaydata.put("total", yesterdayTotal); yesterdaydata.put("self", yesterdaySelf); yesterdaydata.put("shared", yesterdayShared); yesterdaydata.put("invite", yesterdayInvite); - + data.put("yesterday", yesterdaydata); - + out.print(JsonUtil.loadTrueResult(data)); - + } catch (Exception e) { out.print(JsonUtil.loadFalseResult(1, "鑾峰彇淇℃伅澶辫触")); e.printStackTrace(); } } - + /** * 缁熻濂栭噾 + * * @param acceptData * @param uid * @param out */ @RequestMapping(value = "countBonus", method = RequestMethod.POST) public void countBonus(AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) { - + if (uid == null) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - + try { - - JSONObject data = new JSONObject(); - // 鍒嗕韩缁熻 - BigDecimal sharemoney = commonOrderService.countOrderMoney(uid,2, dateType); - data.put("shareCount", commonOrderService.countOrder(uid, 2, dateType)); - data.put("sharemoney", sharemoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + + Object shareCount = 0; + BigDecimal sharemoney = new BigDecimal(0.00); + Object inviteCount = 0; + BigDecimal inviteMoney = new BigDecimal(0.00); + + Map<String, Object> shareMap = commonOrderService.countBonusOrderMoneyAndNumber(uid, 2, dateType, null, + null); + if (shareMap != null) { + Object totalNum = shareMap.get("totalNum"); + if (totalNum != null) { + shareCount = totalNum; + } + + Object totalmoney = shareMap.get("totalmoney"); + if (totalmoney != null) { + sharemoney = (BigDecimal) totalmoney; + } + } + // 閭�璇风粺璁� - BigDecimal inviteMoney = commonOrderService.countOrderMoney(uid,3, dateType); - data.put("inviteCount", commonOrderService.countOrder(uid, 3, dateType)); + Map<String, Object> inviteMap = commonOrderService.countBonusOrderMoneyAndNumber(uid, 3, dateType, null, + null); + if (inviteMap != null) { + Object totalNum = inviteMap.get("totalNum"); + if (totalNum != null) { + inviteCount = totalNum; + } + + Object totalmoney = inviteMap.get("totalmoney"); + if (totalmoney != null) { + inviteMoney = (BigDecimal) totalmoney; + } + } + + JSONObject data = new JSONObject(); + data.put("shareCount", shareCount); + data.put("sharemoney", sharemoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); + data.put("inviteCount", inviteCount); data.put("inviteMoney", inviteMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - - data.put("showTiCheng", hongBaoService.getTotalTiChengCount(uid) > 0); - + + data.put("showTiCheng", hongBaoV2CountService.getTotalTiChengCount(uid) > 0); out.print(JsonUtil.loadTrueResult(data)); - + } catch (Exception e) { out.print(JsonUtil.loadFalseResult(1, "鑾峰彇淇℃伅澶辫触")); e.printStackTrace(); } } - - + + /** + * 涓婁紶瑙f瀽鍒扮殑娣樺疂璁㈠崟 + * + * @param acceptData + * @param uid + * @param orderData + * @param source + * @param out + */ + @RequestMapping(value = "uploadParsedOrder", method = RequestMethod.POST) + public void uploadParsedOrder(AcceptData acceptData, Long uid, String orderData, String source, PrintWriter out) { + if (uid == null || StringUtil.isNullOrEmpty(orderData)) { + out.print(JsonUtil.loadFalseResult(1, "鏁版嵁閿欒")); + return; + } + + String[] orders = null; + try { + String orderIds = DESUtil.decode(orderData, StringUtil.getBase64String("YeShiFANLI889*+"), + StringUtil.getBase64String("*M#34f?,")); + orders = orderIds.split(","); + } catch (Exception e) { + e.printStackTrace(); + } + + if ("findOrder".equalsIgnoreCase(source)) { + // 鍖归厤璁㈠崟 + for (String order : orders) { + if (!StringUtil.isNullOrEmpty(order)) { + List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(order); + if (orderList != null && orderList.size() > 0) { + List<CommonOrder> commonOrderList = commonOrderService + .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, order); + if (commonOrderList == null || commonOrderList.size() == 0) { + Order or = new Order(); + or.setBeizhu("浜哄伐鑷姩鎵惧洖琛ュ崟"); + or.setCreatetime(System.currentTimeMillis()); + or.setOrderId(order); + or.setOrderType(1); + or.setState(Order.STATE_YIZHIFU); + or.setUserInfo(new UserInfo(uid)); + or.setVersion(2); + // 鍔犲叆鍒拌鍗曡〃 + boolean isS; + try { + isS = orderService.addOrder(or); + if (isS) { + CMQManager.getInstance().addTaoBaoOrderMsg(order, orderList); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + } else { + String orderId = null; + if (orders != null && orders.length > 0) + orderId = orders[0]; + if (!StringUtil.isNullOrEmpty(orderId) && orderId.length() > 6) { + orderId = orderId.substring(orderId.length() - 6, orderId.length()); + UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService.getByUid(uid); + if (info != null) { + UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo(); + update.setId(info.getId()); + update.setTaoBaoOrderEnd6Num(orderId); + userExtraTaoBaoInfoService.updateSelective(update); + } + } + } + out.print(JsonUtil.loadTrueResult("")); + } + /** * 鏃堕棿杞崲 + * * @param slotTime * @param startTime * @return * @throws Exception */ - public String convertDate (Integer slotTime, String startTime) throws Exception { - String endTime = null; - + public String convertDate(Integer slotTime, String endTime) throws Exception { + String startTime = null; + switch (slotTime) { - case 1: // 鏈�杩戜笁澶� - endTime = DateUtil.plusDay(3, startTime); - break; - case 2: // 鏈�杩戜竷澶� - endTime = DateUtil.plusDay(7, startTime); - break; - case 3: // 鏈�杩�15澶� 锛堝崐鏈堬級 - endTime = DateUtil.plusDay(15, startTime); - break; - case 4: // 鏈�杩戜笁鍗佸ぉ 锛堟湰鏈堬級 - endTime = DateUtil.plusDay(30, startTime); - break; - case 5: // 鏈�杩戜節鍗佸ぉ锛堣繎涓夋湀锛� - endTime = DateUtil.plusDay(3*30, startTime); - break; - case 6: // 鏈�杩戜竴鐧惧叓鍗佸ぉ锛堣繎鍗婂勾锛� - endTime = DateUtil.plusDay(6*30, startTime); - break; - default: - break; + case 1: // 鏈�杩戜笁澶� + startTime = DateUtil.reduceDay(2, endTime); + break; + case 2: // 鏈�杩戜竷澶� + startTime = DateUtil.reduceDay(6, endTime); + break; + case 3: // 鏈�杩�15澶� 锛堝崐鏈堬級 + startTime = DateUtil.reduceDay(14, endTime); + break; + case 4: // 鏈�杩戜笁鍗佸ぉ 锛堟湰鏈堬級 + startTime = DateUtil.reduceDay(29, endTime); + break; + case 5: // 鏈�杩戜節鍗佸ぉ锛堣繎涓夋湀锛� + startTime = DateUtil.reduceDay(3 * 30 - 1, endTime); + break; + case 6: // 鏈�杩戜竴鐧惧叓鍗佸ぉ锛堣繎鍗婂勾锛� + startTime = DateUtil.reduceDay(6 * 30 - 1, endTime); + break; + default: + break; } - - return endTime; + + return startTime; } } -- Gitblit v1.8.0