From 4220ceb661146c58d1d6855f14dcdcc3d8c7bb24 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期六, 05 一月 2019 14:45:10 +0800 Subject: [PATCH] Merge branch 'div1' --- fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java | 381 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 375 insertions(+), 6 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java index 832e806..7c1f698 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java @@ -4,7 +4,9 @@ import java.io.FileInputStream; import java.io.InputStream; import java.io.PrintWriter; +import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; @@ -14,6 +16,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -25,10 +28,13 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.yeshi.utils.JsonUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; import com.yeshi.fanli.entity.admin.UserInfoAdmin; +import com.yeshi.fanli.entity.bus.user.AccountDetails; import com.yeshi.fanli.entity.bus.user.Extract; import com.yeshi.fanli.entity.bus.user.HongBao; import com.yeshi.fanli.entity.bus.user.MoneyRecord; @@ -50,6 +56,7 @@ import com.yeshi.fanli.service.inter.user.ExtractService; import com.yeshi.fanli.service.inter.user.MoneyRecordService; import com.yeshi.fanli.service.inter.user.ScanHistoryService; +import com.yeshi.fanli.service.inter.user.UserActiveLogService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; @@ -57,7 +64,6 @@ import com.yeshi.fanli.util.HongBaoUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; -import org.yeshi.utils.JsonUtil; @Controller @RequestMapping("admin/new/api/v1/user") @@ -103,6 +109,9 @@ @Resource private UserInfoCountService userInfoCountService; + + @Resource + private UserActiveLogService userActiveLogService; @RequestMapping(value = "getUserList", method = RequestMethod.POST) @@ -698,7 +707,7 @@ long countGold = userInfoCountService.countRank(3); // 缁熻鎵�鏈夋�婚噾棰� - double countTotalMoney = userInfoCountService.countAllMoney(null); + BigDecimal countTotalMoney = userInfoCountService.countAllMoney(null); // 缁熻鎵�鏈夊彲鎻愮幇閲戦 String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY); @@ -706,7 +715,7 @@ minMoney = "20"; double min = Double.parseDouble(minMoney); - double countCanAssets = userInfoCountService.countAllMoney(min); + BigDecimal countCanAssets = userInfoCountService.countAllMoney(min); JSONObject data = new JSONObject(); data.put("countTotal", countTotal); @@ -1024,10 +1033,370 @@ } } - public static void main(String[] args) { + + + /** + * 闃熷憳鍏崇郴 + * @param pageIndex + * @param key + * @param state + * @param startTime + * @param endTime + * @param out + */ + @RequestMapping(value = "getRelationList") + public void getRelationList(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer type, + Integer state, String startTime, String endTime, PrintWriter out) { - java.lang.System.out.println(java.lang.System.currentTimeMillis()); + if (pageIndex == null || pageIndex < 1) { + pageIndex = 1; + } + + if (pageSize == null || pageSize < 1) { + pageSize = Constant.PAGE_SIZE; + } + + try { + + if (!StringUtil.isNullOrEmpty(endTime)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date enddate = sdf.parse(endTime); + Calendar c = Calendar.getInstance(); + c.setTime(enddate); + c.add(Calendar.DAY_OF_MONTH, 1);// 浠婂ぉ+1澶� + endTime = sdf.format(c.getTime()); + } + + List<ThreeSale> listQuery = null; + if (type == 0) { + // 涓婄骇鐢ㄦ埛 + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ涓婄骇闇�杈撳叆鐢ㄦ埛id")); + return; + } + listQuery = threeSaleService.listSuperiorQuery((pageIndex - 1) * pageSize, pageSize, state, uid); + } else if (type == 1) { + // 涓�绾х敤鎴� + listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, + state, startTime, endTime); + } else if (type == 2) { + // 浜岀骇鐢ㄦ埛 + listQuery = threeSaleService.listSecondTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, + state, startTime, endTime); + } + + if (listQuery == null || listQuery.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); + return; + } + + for (ThreeSale threeSale: listQuery) { + Integer expire = threeSale.getExpire(); + if (threeSale.getState()) { + threeSale.setExpire(1); // 閭�璇锋垚鍔� + } else { + if (expire != null && expire == 1) { + threeSale.setExpire(2); // 閭�璇峰け鏁� + } else { + threeSale.setExpire(0);// 宸查個璇� + } + } + } + + long count = 0; + if (type == 0) { + // 涓婄骇鐢ㄦ埛 + count = threeSaleService.countSuperiorQuery(state, uid); + } else if (type == 1) { + // 涓�绾х敤鎴� + count = threeSaleService.countFirstTeamQuery(uid, state, startTime, endTime); + } else if (type == 2) { + // 浜岀骇鐢ㄦ埛 + count = threeSaleService.countSecondTeamQuery(uid, state, startTime, endTime); + } + + int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); + PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); + + JSONObject data = new JSONObject(); + data.put("pe", pe); + data.put("result_list", listQuery); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); + e.printStackTrace(); + } } -} + /** + * 鐢ㄦ埛璐︽埛鏄庣粏 + * @param callback + * @param pageIndex + * @param pageSize + * @param id + * @param out + */ + @RequestMapping(value = "getAccountDetails") + public void getAccountDetails(String callback, Integer pageIndex,Integer pageSize, Long uid, PrintWriter out) { + if (pageIndex == null || pageIndex < 1) { + pageIndex = 1; + } + + if (pageSize == null || pageSize < 1) { + pageSize = Constant.PAGE_SIZE; + } + + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇蜂紶閫掓纭暟鎹�")); + return; + } + + try { + + List<AccountDetails> detailsList = accountDetailsService.findAccountDetailsList(uid, pageIndex); + if (detailsList == null || detailsList.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); + return; + } + + int count = accountDetailsService.getCount(uid); + + int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); + PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); + + + JSONObject data = new JSONObject(); + data.put("pe", pe); + data.put("result_list", GsonUtil.toJsonExpose(detailsList)); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + e.printStackTrace(); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); + } + } + + /** + * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺 + * @param channelArray 鍚嶅瓧鏁扮粍 + * @param dateType 绫诲瀷 1鏃� 2鏈� 3骞� + * @param year 2018 + * @param startTime 2018-12-01 + * @param endTime 2018-12-01 + * @param out + */ + @RequestMapping(value = "getSameDayUserByChannel") + public void getSameDayUserByChannel(String callback, String channelArray, Integer dateType, + String year, String startTime, String endTime, PrintWriter out) { + + validateParams(callback, channelArray, dateType,year,startTime,endTime,out); + + if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { + startTime = null; + endTime = null; + } + + try { + + Gson gson = new Gson(); + List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType()); + + if (list == null || list.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟鏍煎紡涓嶆纭�")); + return; + } + + JSONArray array = new JSONArray(); + + for (String channel: list) { + JSONObject channelData = new JSONObject(); + List<Object> resultList = userActiveLogService.countSameDayByChannel(channel, dateType, year, startTime, endTime); + if (resultList == null) { + resultList = new ArrayList<Object>(); + } + channelData.put("name", channel); + channelData.put("infos", resultList); + array.add(channelData); + } + + JSONObject data = new JSONObject(); + data.put("result_list", array); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); + e.printStackTrace(); + } + } + + + /** + * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺 + * @param channelArray 鍚嶅瓧鏁扮粍 + * @param dateType 绫诲瀷 1鏃� 2鏈� 3骞� + * @param year 2018 + * @param startTime 2018-12-01 + * @param endTime 2018-12-01 + * @param out + */ + @RequestMapping(value = "getBuyProportion") + public void getBuyProportion(String callback, String channelArray, Integer dateType, + String year, String startTime, String endTime, Integer orderNum, PrintWriter out) { + + validateParams(callback, channelArray, dateType,year,startTime,endTime,out); + + if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { + startTime = null; + endTime = null; + } + + try { + + Gson gson = new Gson(); + List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType()); + + if (list == null || list.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟鏍煎紡涓嶆纭�")); + return; + } + + JSONArray array = new JSONArray(); + + for (String channel: list) { + JSONObject channelData = new JSONObject(); + List<Object> resultList = userActiveLogService.getBuyProportion(channel, dateType, year, startTime, endTime, orderNum); + if (resultList == null) { + resultList = new ArrayList<Object>(); + } + channelData.put("name", channel); + channelData.put("infos", resultList); + array.add(channelData); + } + + JSONObject data = new JSONObject(); + data.put("result_list", array); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); + e.printStackTrace(); + } + } + + /** + * 鐢ㄦ埛缁熻 锛氭�荤敤鎴枫�佹祦澶辩敤鎴锋暟閲忋�佺疮璁℃湁璐拱鐢ㄦ埛鏁� + * @param callback + * @param out + */ + @RequestMapping(value = "countUser") + public void countUser(String callback, PrintWriter out) { + try { + // 鎬荤敤鎴� + long totalUser = userInfoCountService.countNewUser(null, null); + // 娴佸け鐢ㄦ埛鏁伴噺锛�180澶╂湭浣跨敤鐧诲綍骞朵笖鏃犱换浣曡祫閲戞祦鍔ㄧ殑璐﹀彿鏁伴噺锛� + long loseUser = userInfoCountService.countLoseUser(180); + // 绱鏈夎喘涔扮敤鎴锋暟 + long orderUser = userInfoCountService.countHasOrderUser(); + + JSONObject data = new JSONObject(); + data.put("totalUser", totalUser); + data.put("loseUser", loseUser); + data.put("orderUser", orderUser); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + e.printStackTrace(); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻寮傚父")); + } + + } + + /** + * 缁熻鍘嗗彶鏂板鐢ㄦ埛 + * @param callback + * @param dateType 绫诲瀷 1鏃� 2鏈� 3骞� + * @param year 2018 + * @param startTime 2018-12-01 + * @param endTime 2018-12-01 + * @param out + */ + @RequestMapping(value = "getHistoryNewUser") + public void getHistoryNewUser(String callback, Integer dateType, String year, String startTime, + String endTime, PrintWriter out) { + + if (dateType == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏄剧ず鏂瑰紡")); + return; + } + + if (dateType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏃堕棿鍖洪棿")); + return; + } + + if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夌粨鏉熸棩鏈�")); + return; + } + + if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夎捣濮嬫棩鏈�")); + return; + } + + if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { + startTime = null; + endTime = null; + } + + try { + + List<Object> resultList = userInfoCountService.countNewUserByDate(dateType, year, startTime, endTime); + + if (resultList == null) { + resultList = new ArrayList<Object>(); + } + + JSONObject data = new JSONObject(); + data.put("result_list", resultList); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); + e.printStackTrace(); + } + } + + public void validateParams(String callback, String channelArray, Integer dateType, + String year, String startTime, String endTime, PrintWriter out) { + + if (StringUtil.isNullOrEmpty(channelArray)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨缁熻瀵瑰簲鍚嶇О")); + return; + } + + if (dateType == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鎺掑垪鏂瑰紡")); + return; + } + + if (dateType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏃堕棿鍖洪棿")); + return; + } + + if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夌粨鏉熸棩鏈�")); + return; + } + + if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夎捣濮嬫棩鏈�")); + return; + } + } +} -- Gitblit v1.8.0