fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
@@ -81,16 +81,20 @@ String taoBaoUid = data.optString("taobao_user_id"); String nickName = data.optString("taobao_user_nick"); LogHelper.test("uid:" + uid + "\n accessToken:" + accessToken); // LogHelper.test("uid:" + uid + "\n accessToken:" + accessToken); // 获取渠道ID与会员ID if ("share".equalsIgnoreCase(source)) { String relationId = TaoKeApiUtil.getRelationId(accessToken, Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);// 渠道ID if (StringUtil.isNullOrEmpty(relationId)) LogHelper.test(uid + "渠道备案失败"); userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid, true); } else { String specialId = TaoKeApiUtil.getSpecialId(accessToken, Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET); if (StringUtil.isNullOrEmpty(specialId)) LogHelper.test(uid + "会员备案失败"); userExtraTaoBaoInfoService.addSpecialId(uid, specialId, taoBaoUid, true); } fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -35,14 +35,19 @@ import com.yeshi.fanli.controller.admin.utils.AdminUtils; import com.yeshi.fanli.entity.admin.UserInfoAdmin; import com.yeshi.fanli.entity.bus.user.AccountDetails; import com.yeshi.fanli.entity.bus.user.BindingAccount; import com.yeshi.fanli.entity.bus.user.Extract; import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; import com.yeshi.fanli.entity.bus.user.HongBao; import com.yeshi.fanli.entity.bus.user.MoneyRecord; import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.ThreeSale; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; import com.yeshi.fanli.entity.taobao.PidOrder; import com.yeshi.fanli.entity.taobao.ScanHistory; import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.count.UserInfoCountService; import com.yeshi.fanli.service.inter.goods.ShareService; @@ -54,9 +59,11 @@ import com.yeshi.fanli.service.inter.user.AccountDetailsService; import com.yeshi.fanli.service.inter.user.BindingAccountService; import com.yeshi.fanli.service.inter.user.ExtractService; import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; 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.UserExtraTaoBaoInfoService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; @@ -103,16 +110,21 @@ @Resource private AccountDetailsService accountDetailsService; @Resource private BindingAccountService bindingAccountService; @Resource private UserInfoCountService userInfoCountService; @Resource private UserActiveLogService userActiveLogService; @Resource private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @RequestMapping(value = "getUserList", method = RequestMethod.POST) public void getUserList(int pageIndex, String key, PrintWriter out) { @@ -599,22 +611,28 @@ } } /** * 查询用户信息列表--相关数据统计 * * @param callback * @param pageIndex * @param key 查询条件 * @param userType 用户类型:金冠、银冠、铜冠 * @param days 查询天数 * @param startTime 注册时间 * @param endTime 注册时间 * @param orderMode 排序方式 订单数量 今日订单 累计队员 * @param key * 查询条件 * @param userType * 用户类型:金冠、银冠、铜冠 * @param days * 查询天数 * @param startTime * 注册时间 * @param endTime * 注册时间 * @param orderMode * 排序方式 订单数量 今日订单 累计队员 * @param out */ @RequestMapping(value = "query") public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer userType, Integer days, String startTime, String endTime, Integer orderMode, PrintWriter out) { public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer userType, Integer days, String startTime, String endTime, Integer orderMode, PrintWriter out) { try { @@ -634,30 +652,29 @@ if (pageSize == null) pageSize = Constant.PAGE_SIZE; Integer orderField = null; if (orderMode != null) { if (orderMode == 1 || orderMode == 2){ if (orderMode == 1 || orderMode == 2) { orderField = orderMode; orderMode = 1; } else if (orderMode == 3 || orderMode == 4){ } else if (orderMode == 3 || orderMode == 4) { orderField = orderMode; orderMode = 2; } else if (orderMode == 5 || orderMode == 6){ } else if (orderMode == 5 || orderMode == 6) { orderField = orderMode; orderMode = 3; } } List<UserInfoAdmin> userList = userInfoService.query((pageIndex - 1) * pageSize, pageSize, key, userType, days, startTime, endTime,orderField, orderMode); List<UserInfoAdmin> userList = userInfoService.query((pageIndex - 1) * pageSize, pageSize, key, userType, days, startTime, endTime, orderField, orderMode); if (userList == null || userList.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据")); return; } long count = userInfoService.queryCount(key, userType, days, startTime, endTime); int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); @@ -669,9 +686,9 @@ JSONObject data = new JSONObject(); data.put("pe", pe); //data.put("sumMoney", sumMoney); // data.put("sumMoney", sumMoney); data.put("resultList", gson.toJson(userList)); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { @@ -679,18 +696,19 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } /** * 统计今日用户总情况 * * @param callback * @param out */ @RequestMapping(value = "countInfo") public void countInfo(String callback, PrintWriter out) { try { JSONObject data = new JSONObject(); // 总数-普通用户 long countNormal = userInfoCountService.countRank(0); // 总数-铜用户 @@ -699,56 +717,54 @@ long countSilver = userInfoCountService.countRank(2); // 总数-金用户 long countGold = userInfoCountService.countRank(3); data.put("countNormal", countNormal); data.put("countCuprum", countCuprum); data.put("countSilver", countSilver); data.put("countGold", countGold); /* // 统计所有总金额 BigDecimal countTotalMoney = userInfoCountService.countAllMoney(null); // 统计所有可提现金额 String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY); if (minMoney == null) { minMoney = "20"; } double min = Double.parseDouble(minMoney); BigDecimal countCanAssets = userInfoCountService.countAllMoney(min); data.put("countTotalMoney", countTotalMoney); data.put("countCanAssets", countCanAssets); */ * // 统计所有总金额 BigDecimal countTotalMoney = * userInfoCountService.countAllMoney(null); * * // 统计所有可提现金额 String minMoney = * configService.get(Constant.EXTRACT_MIN_MONEY); if (minMoney == * null) { minMoney = "20"; } double min = * Double.parseDouble(minMoney); BigDecimal countCanAssets = * userInfoCountService.countAllMoney(min); * data.put("countTotalMoney", countTotalMoney); * data.put("countCanAssets", countCanAssets); */ // 累计用户数量 long totalUser = userInfoCountService.countNewUser(null, null); // 流失用户数量(180天未使用登录并且无任何资金流动的账号数量) long loseUser = userInfoCountService.countLoseUser(180); // 累计有购买用户数 long orderUser = userInfoCountService.countHasOrderUser(); data.put("totalUser", totalUser); data.put("loseUser", loseUser); data.put("orderUser", orderUser); // 今日新增用户数量 long todayUser = userInfoCountService.countNewUser(1, null); // 本月新增用户数量 long monthUser = userInfoCountService.countNewUser(null, 1); data.put("todayUser", todayUser); data.put("monthUser", monthUser); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { e.printStackTrace(); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } /** * 修改用户的状态、等级信息 * * @param callback * @param userInfo * @param out @@ -756,51 +772,140 @@ @RequestMapping(value = "setInfo") public void setInfo(String callback, UserInfo userInfo, PrintWriter out) { try { Long id = userInfo.getId(); if (id == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据")); return; } UserInfo currentInfo = userInfoService.selectByPKey(id); if (currentInfo == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该用户已不存在")); return; } currentInfo = new UserInfo(id); boolean hasChange = false; // 等级修改 Integer rank = userInfo.getRank(); if (rank != null) { hasChange = true; currentInfo.setRank(rank); } // 状态修改 Integer state = userInfo.getState(); if (state != null) { hasChange = true; currentInfo.setState(state); if (state != null && state == UserInfo.STATE_FORBIDDEN) currentInfo.setStateDesc("管理员封禁"); } if (hasChange) { userInfoService.updateByPrimaryKeySelective(currentInfo); UserInfo nowUser = userInfoService.selectByPKey(id); if (state != null && state == UserInfo.STATE_FORBIDDEN) { // 加入封禁的账号列表 ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId); forbiddenUserIdentifyCode.setIdentifyCode(nowUser.getWxUnionId()); forbiddenUserIdentifyCode.setBeiZhu(nowUser.getWxName()); try { forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode); } catch (ForbiddenUserIdentifyCodeException e) { e.printStackTrace(); } // 电话号码 forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.phone); forbiddenUserIdentifyCode.setIdentifyCode(nowUser.getPhone()); try { forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode); } catch (ForbiddenUserIdentifyCodeException e) { e.printStackTrace(); } // 淘宝 UserExtraTaoBaoInfo taoBao = userExtraTaoBaoInfoService.getByUid(nowUser.getId()); if (taoBao != null && !StringUtil.isNullOrEmpty(taoBao.getTaoBaoUid())) { forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid); forbiddenUserIdentifyCode.setIdentifyCode(taoBao.getTaoBaoUid()); try { forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode); } catch (ForbiddenUserIdentifyCodeException e) { e.printStackTrace(); } } // 查询支付宝绑定 List<BindingAccount> list = bindingAccountService.getBindingAccountByUid(nowUser.getId()); if (list != null) for (BindingAccount ba : list) { forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount); forbiddenUserIdentifyCode.setIdentifyCode(ba.getAccount()); forbiddenUserIdentifyCode.setBeiZhu(ba.getName()); try { forbiddenUserIdentifyCodeService.addIdentifyCode(forbiddenUserIdentifyCode); } catch (ForbiddenUserIdentifyCodeException e) { e.printStackTrace(); } } } else if (state != null && state == UserInfo.STATE_NORMAL) { // 解封微信 ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, nowUser.getWxUnionId()); if (forbiddenUserIdentifyCode != null) forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode); // 解封手机 forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, nowUser.getPhone()); if (forbiddenUserIdentifyCode != null) forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode); // 解封淘宝 UserExtraTaoBaoInfo taoBao = userExtraTaoBaoInfoService.getByUid(nowUser.getId()); if (taoBao != null && !StringUtil.isNullOrEmpty(taoBao.getTaoBaoUid())) { forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBao.getTaoBaoUid()); if (forbiddenUserIdentifyCode != null) forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode); } // 解封支付宝 List<BindingAccount> list = bindingAccountService.getBindingAccountByUid(nowUser.getId()); if (list != null) for (BindingAccount ba : list) { forbiddenUserIdentifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( ForbiddenUserIdentifyCodeTypeEnum.alipayAccount, ba.getAccount()); if (forbiddenUserIdentifyCode != null) forbiddenUserIdentifyCodeService.delete(forbiddenUserIdentifyCode); } } JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("修改成功")); } else { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("无可修改内容")); } } catch (Exception e) { } catch ( Exception e) { e.printStackTrace(); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("修改失败")); } } /** * 删除绑定的账户信息: 支付宝 微信 * 删除绑定的账户信息: 支付宝 微信 * * @param callback * @param bindId * @param out @@ -827,7 +932,7 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } /** * * @param data @@ -839,19 +944,17 @@ @RequestMapping("unBindUserInfo") public void unBindUserInfo(String callback, Long id, Integer type, PrintWriter out) { try { if (id == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该用户!")); return; } if (type == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("账户类型不可为空!")); return; } UserInfo find = userInfoService.getUserById(id); if (find == null) { @@ -885,48 +988,45 @@ userInfoService.deleteBindInfo(find, type); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("解绑成功")); } catch (Exception e) { e.printStackTrace(); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } @RequestMapping(value = "queryMyFirstTeams") public void queryMyFirstTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId, PrintWriter out) { public void queryMyFirstTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId, PrintWriter out) { try { if (bossId == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据")); return; } if (pageIndex == null) pageIndex = 1; if (pageSize == null) pageSize = Constant.PAGE_SIZE; List<ThreeSale> firstTeamList = threeSaleService.queryMyFirstTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId); List<ThreeSale> firstTeamList = threeSaleService.queryMyFirstTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId); if (firstTeamList == null || firstTeamList.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无一度队员")); return; } /* 获取邀请用户头像 、昵称 */ for (ThreeSale threeSale: firstTeamList) { for (ThreeSale threeSale : firstTeamList) { UserInfo worker = threeSale.getWorker(); if (worker == null) { worker = new UserInfo(); threeSale.setWorker(worker); } else{ } else { Long id = worker.getId(); UserInfo currentInfo = userInfoService.selectByPKey(id); if (currentInfo != null) { worker.setNickName(currentInfo.getNickName()); @@ -934,7 +1034,7 @@ } } } long count = threeSaleService.queryCountMyFirstTeamList(key, bossId); int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); @@ -947,49 +1047,47 @@ JSONObject data = new JSONObject(); data.put("pe", pe); data.put("list", gson.toJson(firstTeamList)); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { e.printStackTrace(); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } @RequestMapping(value = "queryMySecondTeams") public void queryMySecondTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId, PrintWriter out) { public void queryMySecondTeams(String callback, Integer pageIndex, Integer pageSize, String key, Long bossId, PrintWriter out) { try { if (bossId == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据")); return; } if (pageIndex == null) pageIndex = 1; if (pageSize == null) pageSize = Constant.PAGE_SIZE; List<ThreeSale> firstTeamList = threeSaleService.queryMySecondTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId); List<ThreeSale> firstTeamList = threeSaleService.queryMySecondTeamList((pageIndex - 1) * pageSize, pageSize, key, bossId); if (firstTeamList == null || firstTeamList.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无二度队员")); return; } /* 获取邀请用户头像 、昵称 */ for (ThreeSale threeSale: firstTeamList) { for (ThreeSale threeSale : firstTeamList) { UserInfo worker = threeSale.getWorker(); if (worker == null) { worker = new UserInfo(); threeSale.setWorker(worker); } else{ } else { Long id = worker.getId(); UserInfo currentInfo = userInfoService.selectByPKey(id); if (currentInfo != null) { worker.setNickName(currentInfo.getNickName()); @@ -997,7 +1095,7 @@ } } } long count = threeSaleService.queryCountMySecondTeamList(key, bossId); int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); @@ -1010,43 +1108,41 @@ JSONObject data = new JSONObject(); data.put("pe", pe); data.put("list", gson.toJson(firstTeamList)); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { e.printStackTrace(); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } @RequestMapping(value = "deleteThreeSale") public void deleteThreeSale(String callback, Long id, PrintWriter out) { try { if (id == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请传递正确数据")); return; } int count = threeSaleService.deleteByPrimaryKey(id); if (count > 0) { JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("删除成功")); } else{ } else { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败")); } } catch (Exception e) { e.printStackTrace(); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } /** * 队员关系 * * @param pageIndex * @param key * @param state @@ -1057,7 +1153,7 @@ @RequestMapping(value = "getRelationList") public void getRelationList(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer type, Integer state, String startTime, String endTime, PrintWriter out) { if (pageIndex == null || pageIndex < 1) { pageIndex = 1; } @@ -1065,9 +1161,9 @@ 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); @@ -1076,7 +1172,7 @@ c.add(Calendar.DAY_OF_MONTH, 1);// 今天+1天 endTime = sdf.format(c.getTime()); } List<ThreeSale> listQuery = null; if (type == 0) { // 上级用户 @@ -1087,20 +1183,20 @@ listQuery = threeSaleService.listSuperiorQuery((pageIndex - 1) * pageSize, pageSize, state, uid); } else if (type == 1) { // 一级用户 listQuery = threeSaleService.listFirstTeamQuery((pageIndex - 1) * pageSize, pageSize, uid, state, startTime, endTime); 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); 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) { for (ThreeSale threeSale : listQuery) { Integer expire = threeSale.getExpire(); if (threeSale.getState()) { threeSale.setExpire(1); // 邀请成功 @@ -1112,7 +1208,7 @@ } } } long count = 0; if (type == 0) { // 上级用户 @@ -1124,25 +1220,25 @@ // 二级用户 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 @@ -1150,7 +1246,7 @@ * @param out */ @RequestMapping(value = "getAccountDetails") public void getAccountDetails(String callback, Integer pageIndex,Integer pageSize, Long uid, PrintWriter out) { public void getAccountDetails(String callback, Integer pageIndex, Integer pageSize, Long uid, PrintWriter out) { if (pageIndex == null || pageIndex < 1) { pageIndex = 1; } @@ -1158,67 +1254,72 @@ 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 channelArray * 名字数组 * @param dateType * 类型 1日 2月 3年 * @param year * 2018 * @param startTime * 2018-12-01 * @param endTime * 2018-12-01 * @param out */ @RequestMapping(value = "getNewUserCharts") public void getNewUserCharts(String callback, String channelArray, Integer dateType, String year, String startTime, String endTime, PrintWriter out) { public void getNewUserCharts(String callback, String channelArray, Integer dateType, 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)); return; } if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { startTime = null; endTime = null; } List<String> channelList = null; if (channelArray != null && channelArray.trim().length() > 0) { Gson gson = new Gson(); channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType()); channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() { }.getType()); } if (channelList == null || channelList.size() == 0) { @@ -1226,44 +1327,42 @@ channelList.add("all"); } if (dateType == 1 && year != null) { year = null; // 设置为空 } else if (dateType == 2) { if (startTime != null) startTime = null; if (endTime != null) endTime = null; if (startTime != null) startTime = null; if (endTime != null) endTime = null; } else if (dateType == 3) { if (year != null) year = null; if (startTime != null) startTime = null; if (endTime != null) endTime = null; year = null; if (startTime != null) startTime = null; if (endTime != null) endTime = null; } try { Gson gson = new Gson(); Object objectDate = null; List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); JSONArray line_list = new JSONArray(); for (String channel : channelList) { List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel, dateType, year, startTime, endTime); List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel, dateType, year, startTime, endTime); if ("all".equalsIgnoreCase(channel)) { channel = "总计"; } JSONObject innerList = new JSONObject(); innerList.put("name", channel); @@ -1278,10 +1377,9 @@ } innerList.put("data", gson.toJson(map.get("value"))); } line_list.add(innerList); } JSONObject data = new JSONObject(); if (objectDate != null) { @@ -1289,9 +1387,9 @@ } else { data.put("xAxis_list", gson.toJson(dateList)); } data.put("line_list", line_list); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { @@ -1299,41 +1397,47 @@ e.printStackTrace(); } } /** * 根据渠道 统计当日新增用户数量 * @param channelArray 名字数组 * @param dateType 类型 1日 2月 3年 * @param year 2018 * @param startTime 2018-12-01 * @param endTime 2018-12-01 * 根据渠道 统计当日新增用户数量 * * @param channelArray * 名字数组 * @param dateType * 类型 1日 2月 3年 * @param year * 2018 * @param startTime * 2018-12-01 * @param endTime * 2018-12-01 * @param out */ @RequestMapping(value = "getTodayBuyRate") public void getTodayBuyRate(String callback, String channelArray, Integer dateType, String year, String startTime, String endTime, Integer orderNum, PrintWriter out) { public void getTodayBuyRate(String callback, String channelArray, Integer dateType, String year, String startTime, String endTime, Integer orderNum, PrintWriter out) { String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime); if (validateMsg != null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg)); return; } if (dateType == 2 && StringUtil.isNullOrEmpty(year)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请输入年份")); return; } if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { startTime = null; endTime = null; } List<String> channelList = null; if (channelArray != null && channelArray.trim().length() > 0) { Gson gson = new Gson(); channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType()); channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() { }.getType()); } if (channelList == null || channelList.size() == 0) { @@ -1341,44 +1445,42 @@ channelList.add("all"); } if (dateType == 1 && year != null) { year = null; // 设置为空 } else if (dateType == 2) { if (startTime != null) startTime = null; if (endTime != null) endTime = null; if (startTime != null) startTime = null; if (endTime != null) endTime = null; } else if (dateType == 3) { if (year != null) year = null; if (startTime != null) startTime = null; if (endTime != null) endTime = null; year = null; if (startTime != null) startTime = null; if (endTime != null) endTime = null; } try { Gson gson = new Gson(); Object objectDate = null; List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); JSONArray line_list = new JSONArray(); for (String channel : channelList) { List<Map<String, Object>> list = userInfoCountService.getTodayBuyRate(channel, dateType, year, startTime, endTime); List<Map<String, Object>> list = userInfoCountService.getTodayBuyRate(channel, dateType, year, startTime, endTime); if ("all".equalsIgnoreCase(channel)) { channel = "总计"; } JSONObject innerList = new JSONObject(); innerList.put("name", channel); @@ -1393,10 +1495,9 @@ } innerList.put("data", gson.toJson(map.get("value"))); } line_list.add(innerList); } JSONObject data = new JSONObject(); if (objectDate != null) { @@ -1404,78 +1505,80 @@ } else { data.put("xAxis_list", gson.toJson(dateList)); } data.put("line_list", line_list); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); e.printStackTrace(); } } /** * 当周产生3单的新增用户概率 * 当周产生3单的新增用户概率 * * @param callback * @param channelArray 渠道名称 * @param startTime * @param channelArray * 渠道名称 * @param startTime * @param endTime * @param orderNum 订单数量 * @param orderNum * 订单数量 * @param out */ @RequestMapping(value = "getWeekBuyRate") public void getWeekBuyRate(String callback, String channelArray, String startTime, String endTime, Integer orderNum, PrintWriter out) { public void getWeekBuyRate(String callback, String channelArray, String startTime, String endTime, Integer orderNum, PrintWriter out) { if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当周订单统计对应时间区域不能为空")); return; } List<String> channelList = null; if (channelArray != null && channelArray.trim().length() > 0) { Gson gson = new Gson(); channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType()); channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() { }.getType()); } if (channelList == null || channelList.size() == 0) { channelList = new ArrayList<String>(); channelList.add("all"); } if (orderNum < 1) { orderNum = 1; } try { Gson gson = new Gson(); List<String> dateList = AdminUtils.getDateList(1, startTime, endTime, null); JSONArray line_list = new JSONArray(); for (String channel : channelList) { List<Object> list = userInfoCountService.getWeekBuyRate(channel, startTime, endTime, orderNum, dateList); List<Object> list = userInfoCountService.getWeekBuyRate(channel, startTime, endTime, orderNum, dateList); if ("all".equalsIgnoreCase(channel)) { channel = "总计"; } JSONObject innerList = new JSONObject(); innerList.put("name", channel); innerList.put("data", gson.toJson(list)); line_list.add(innerList); } JSONObject data = new JSONObject(); data.put("xAxis_list", gson.toJson(dateList)); data.put("line_list", line_list); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { @@ -1483,5 +1586,5 @@ e.printStackTrace(); } } } fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java
@@ -11,6 +11,7 @@ import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.taobao.ClientTBPid; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.TBPid; @@ -23,6 +24,7 @@ import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.user.TBPidService; import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.MonitorFactory; @@ -49,6 +51,9 @@ @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @Resource private UserInfoService userInfoService; /** * 获取淘宝的分享链接 * @@ -66,6 +71,12 @@ return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } if (auctionId == null || auctionId <= 0) { out.print(JsonUtil.loadFalseResult(2, "商品ID不能为空")); return; fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java
@@ -32,6 +32,7 @@ import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.monitor.MonitorService; import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService; import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService; import com.yeshi.fanli.util.AESUtil; @@ -71,6 +72,9 @@ @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @Resource private UserInfoService userInfoService; // 获取商品分享链接 @RequestMapping(value = "getGoodsShareUrl") public void getGoodsShareUrl(AcceptData acceptData, long id, PrintWriter out) { @@ -95,6 +99,12 @@ return; } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } if (auctionId == null || auctionId <= 0) { out.print(JsonUtil.loadFalseResult(2, "商品ID不能为空")); return; fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java
@@ -15,6 +15,8 @@ import com.alipay.api.AlipayApiException; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.BindingAccount; import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; import com.yeshi.fanli.entity.bus.user.LoginResult; import com.yeshi.fanli.entity.bus.user.SMSHistory; import com.yeshi.fanli.entity.bus.user.UserInfo; @@ -44,6 +46,7 @@ import com.yeshi.fanli.service.inter.user.AccountMessageService; import com.yeshi.fanli.service.inter.user.BindingAccountService; import com.yeshi.fanli.service.inter.user.ExtractService; import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; import com.yeshi.fanli.service.inter.user.ShamUserService; import com.yeshi.fanli.service.inter.user.SpreadUserImgService; import com.yeshi.fanli.service.inter.user.TBPidService; @@ -138,6 +141,9 @@ @Resource private UserShareGoodsRecordService userShareGoodsRecordService; @Resource private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; private static final String PASSWORD_MAX_ERROR = "password_max_error"; private static final String EXTRACT_MIN_MONEY = "extract_min_money"; private static final String EXTRACT_MAX_MONEY = "extract_max_money"; @@ -176,6 +182,7 @@ redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); } UserInfo tbUserInfo = new UserInfo(); if (!StringUtil.isNullOrEmpty(tbSession)) { try { tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"), @@ -187,12 +194,14 @@ tbOpenid = tbs.optString("openId"); tbNickName = tbs.optString("nick"); tbPortrait = tbs.optString("avatarUrl"); // 淘宝ID tbUserInfo.setTaoBaoUid(tbs.optString("taobao_user_id")); } UserInfo tbUserInfo = new UserInfo(); tbUserInfo.setOpenid(tbOpenid); tbUserInfo.setTbName(tbNickName); tbUserInfo.setTbPic(tbPortrait); try { LoginResult result = userAccountService.login(request, first, system.getAppid(), code, phone, tbUserInfo, wxinstall, loginType); @@ -412,15 +421,32 @@ String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN); if (!vcode.equalsIgnoreCase(oldVCode)) { out.print(JsonUtil.loadFalseResult(90001, "验证码错误")); return; if (Constant.IS_OUTNET) { if (!vcode.equalsIgnoreCase(oldVCode)) { out.print(JsonUtil.loadFalseResult(90001, "验证码错误")); return; } redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); } redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); try { userAccountService.bindPhone(uid, phone); UserInfo user = userInfoService.getUserByIdWithMybatis(uid); // 判断电话号码是否已经封禁 ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone); if (ic != null && ic.getEffective() != null && ic.getEffective()) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); // 封禁用户 // 封禁绑定的正常用户 if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) { UserInfo update = new UserInfo(uid); update.setState(UserInfo.STATE_FORBIDDEN); update.setStateDesc("绑定被封禁的电话号码被封禁"); userInfoService.updateByPrimaryKeySelective(update); } return; } JSONObject data = new JSONObject(); data.put("user", UserUtil.filterForClientUser(user)); out.print(JsonUtil.loadTrueResult(data)); @@ -482,6 +508,8 @@ return; } String taoBaoUid = ""; if (!StringUtil.isNullOrEmpty(tbSession)) { try { tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"), @@ -493,11 +521,32 @@ tbOpenid = session.optString("openId"); tbNickName = session.optString("nick"); tbPortrait = session.optString("avatarUrl"); taoBaoUid = session.optString("taobao_user_id"); } try { userAccountService.bindTaoBao(uid, tbOpenid, tbNickName, tbPortrait); UserInfo user = userInfoService.getUserByIdWithMybatis(uid); // 判断taoBaoUid是否已经封禁 if (!StringUtil.isNullOrEmpty(taoBaoUid)) { ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid); if (ic != null && ic.getEffective() != null && ic.getEffective()) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); // 封禁用户 // 封禁绑定的正常用户 if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) { UserInfo update = new UserInfo(uid); update.setState(UserInfo.STATE_FORBIDDEN); update.setStateDesc("绑定被封禁的淘宝号被封禁"); userInfoService.updateByPrimaryKeySelective(update); } return; } } JSONObject data = new JSONObject(); data.put("user", UserUtil.filterForClientUser(user)); out.print(JsonUtil.loadTrueResult(data)); @@ -553,6 +602,22 @@ try { userAccountService.changeWXBind(uid, code); UserInfo user = userInfoService.getUserByIdWithMybatis(uid); // 判断taoBaoUid是否已经封禁 ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, user.getWxUnionId()); if (ic != null && ic.getEffective() != null && ic.getEffective()) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); // 封禁用户 // 封禁绑定的正常用户 if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) { UserInfo update = new UserInfo(uid); update.setState(UserInfo.STATE_FORBIDDEN); update.setStateDesc("绑定被封禁的微信号被封禁"); userInfoService.updateByPrimaryKeySelective(update); } return; } JSONObject data = new JSONObject(); data.put("user", UserUtil.filterForClientUser(user)); out.print(JsonUtil.loadTrueResult(data)); @@ -816,6 +881,23 @@ return; } redisManager.cacheCommonString(key, "1", 120); // 支付宝绑定 ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount, account); if (ic != null && ic.getEffective() != null && ic.getEffective()) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); // 封禁用户 // 封禁绑定的正常用户 if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) { UserInfo update = new UserInfo(uid); update.setState(UserInfo.STATE_FORBIDDEN); update.setStateDesc("绑定被封禁的支付宝被封禁"); userInfoService.updateByPrimaryKeySelective(update); } return; } // 可以展示给用户看的错误码 String[] ALIPAY_CODES = new String[] { "SYSTEM_ERROR", "PERMIT_CHECK_PERM_LIMITED", "PERM_AML_NOT_REALNAME_REV", "PERM_AML_NOT_REALNAME_REV", "PAYEE_USER_INFO_ERROR", "PAYEE_ACC_OCUPIED", fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
@@ -248,6 +248,12 @@ // } // }); if (find != null) { if (find.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } // 邀请关系生效 threeSaleSerivce.effective(find); // 重新计算用户等级 @@ -590,15 +596,14 @@ final UserInfo uuser = user; ThreadUtil.run(new Runnable() { public void run() { try { // 获取邀请码:若无邀请码且存在有效的队员关系 则自动生成邀请码 userInfoExtraService.getUserInviteCode(uuser.getId()); } catch (UserInfoExtraException e) { e.printStackTrace(); } LogHelper.userInfo(GsonUtil.toJsonExpose(uuser)); uuser.setLastLoginIp(remotIP); uuser.setLastLoginTime(java.lang.System.currentTimeMillis()); @@ -1292,6 +1297,12 @@ HttpServletRequest request, int type, PrintWriter out) { UserInfo user = userInfoService.getUserById(uid); if (user == null) { user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); return; } out.print(JsonUtil.loadFalseResult("用户不存在")); return; } fanli/src/main/java/com/yeshi/fanli/dao/mybatis/UserInfoMapper.java
@@ -39,13 +39,13 @@ BigDecimal getMyHB(Long id); // 根据AppId与微信unionID获取用户 UserInfo getUserInfoByAppIdAndWXUnionId(@Param("appId") String appId, @Param("unionId") String unionId); List<UserInfo> listByAppIdAndWXUnionId(@Param("appId") String appId, @Param("unionId") String unionId); // 根据AppId与淘宝OpenId获取用户 UserInfo getUserInfoByAppIdAndTaoBaoOpenId(@Param("appId") String appId, @Param("openId") String openId); List<UserInfo> listByAppIdAndTaoBaoOpenId(@Param("appId") String appId, @Param("openId") String openId); // 根据AppId与电话号码获取用户 UserInfo getUserInfoByAppIdAndPhone(@Param("appId") String appId, @Param("phone") String phone); List<UserInfo> listByAppIdAndPhone(@Param("appId") String appId, @Param("phone") String phone); Long getMaxUid(); fanli/src/main/java/com/yeshi/fanli/entity/bus/user/UserInfo.java
@@ -26,6 +26,7 @@ public static int STATE_NORMAL = 0;// 正常状态 public static int STATE_DELETE = 1;// 删除状态 public static int STATE_FORBIDDEN = 2;// 封禁状态 public static int STATE_DELETE_OUT_OF_DATE = 4;// 用户长期不活跃被删除 @Id // @GeneratedValue(strategy = GenerationType.SEQUENCE) @@ -152,6 +153,16 @@ @Transient @Expose private String rankNamePicture;// 等级名称图片 @Transient private String taoBaoUid;// 淘宝的用户ID public String getTaoBaoUid() { return taoBaoUid; } public void setTaoBaoUid(String taoBaoUid) { this.taoBaoUid = taoBaoUid; } public Integer getState() { return state; fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoMapper.xml
@@ -186,24 +186,22 @@ `yeshi_ec_hongbao` hb WHERE hb.`uid` = #{id}; </select> <!-- 根据AppId与微信unionID获取用户 --> <select id="getUserInfoByAppIdAndWXUnionId" resultMap="BaseResultMap"> <select id="listByAppIdAndWXUnionId" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from yeshi_ec_user where appid=#{appId} and wx_union_id=#{unionId} limit 1 </select> <!-- 根据AppId与淘宝OpenId获取用户 --> <select id="getUserInfoByAppIdAndTaoBaoOpenId" resultMap="BaseResultMap"> <select id="listByAppIdAndTaoBaoOpenId" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from yeshi_ec_user where appid=#{appId} and identifycode=#{openId} limit 1 </select> <!-- 根据AppId与电话号码获取用户 --> <select id="getUserInfoByAppIdAndPhone" resultMap="BaseResultMap"> <select id="listByAppIdAndPhone" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from yeshi_ec_user where appid=#{appId} and phone=#{phone} limit 1 from yeshi_ec_user where appid=#{appId} and phone=#{phone} </select> <select id="getMaxUid" resultType="java.lang.Long">select max(id) from yeshi_ec_user fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
@@ -13,6 +13,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.tencentcloud.COSManager; import com.google.gson.Gson; import com.qcloud.cos.model.COSObjectSummary; @@ -31,6 +33,8 @@ import com.yeshi.fanli.entity.bus.user.AccountDetails; import com.yeshi.fanli.entity.bus.user.AccountMessage; import com.yeshi.fanli.entity.bus.user.BindingAccount; import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; import com.yeshi.fanli.entity.bus.user.HongBao; import com.yeshi.fanli.entity.bus.user.LoginResult; import com.yeshi.fanli.entity.bus.user.MoneyRecord; @@ -45,6 +49,7 @@ import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.hongbao.HongBaoService; import com.yeshi.fanli.service.inter.msg.UserAccountMsgNotificationService; import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; import com.yeshi.fanli.service.inter.user.SpreadUserImgService; import com.yeshi.fanli.service.inter.user.UserAccountService; import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; @@ -57,9 +62,6 @@ import com.yeshi.fanli.util.wx.WXLoginUtil; import net.sf.json.JSONObject; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.tencentcloud.COSManager; @Service public class UserAccountServiceImpl implements UserAccountService { @@ -104,9 +106,12 @@ @Resource private UserAccountMsgNotificationService userAccountMsgNotificationService; @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @Resource private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; @Transactional @Override @@ -132,7 +137,20 @@ WeiXinUser weiXinUser = null; switch (loginType) { case 1:// 淘宝 // 判断淘宝是否被封禁 if (!StringUtil.isNullOrEmpty(tbUserInfo.getTaoBaoUid())) { ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, tbUserInfo.getTaoBaoUid()); if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); } userInfo = getUserInfoByTaoBaoOpenId(appId, tbUserInfo.getOpenid()); // 判断用户是否被删除 if (userInfo != null && userInfo.getState() != null && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE || userInfo.getState() == UserInfo.STATE_DELETE)) userInfo = null; if (userInfo == null) {// 原先的账号不存在 userInfo = new UserInfo(); userInfo.setAppId(appId); @@ -164,7 +182,18 @@ if (weiXinUser == null) throw new UserAccountException(1001, "无法获取到微信个人信息"); LogHelper.test("微信授权用户信息:" + new Gson().toJson(weiXinUser)); // 判断微信unionid是否被封禁 ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, weiXinUser.getUnionid()); if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); userInfo = getUserInfoByWXUnionId(appId, weiXinUser.getUnionid()); // 判断用户是否被删除 if (userInfo != null && userInfo.getState() != null && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE || userInfo.getState() == UserInfo.STATE_DELETE)) userInfo = null; // 直接用的微信登录 if (lastUser == null) { if (userInfo != null) { @@ -290,7 +319,19 @@ } } case 3:// 手机号码 // 判断手机号码是否被封禁 ForbiddenUserIdentifyCode identifyCode1 = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone); if (identifyCode1 != null && identifyCode1.getEffective() != null && identifyCode1.getEffective()) throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); userInfo = getUserInfoByPhone(appId, phone); // 判断用户是否被删除 if (userInfo != null && userInfo.getState() != null && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE || userInfo.getState() == UserInfo.STATE_DELETE)) userInfo = null; if (userInfo == null) {// 原先的账号不存在 userInfo = new UserInfo(); userInfo.setAppId(appId); @@ -342,6 +383,12 @@ WeiXinUser weiXinUser = null; switch (loginType) { case 1:// 淘宝 if (!StringUtil.isNullOrEmpty(tbUserInfo.getTaoBaoUid())) { ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, tbUserInfo.getTaoBaoUid()); if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); } userInfo = getUserInfoByTaoBaoOpenId(appId, tbUserInfo.getOpenid()); break; case 2:// 微信 @@ -349,12 +396,29 @@ weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code); if (weiXinUser == null) throw new UserAccountException(1001, "无法获取到微信个人信息"); // 判断是否被封禁 ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone); if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); userInfo = getUserInfoByWXUnionId(appId, weiXinUser.getUnionid()); break; case 3:// 手机号码 // 判断是否被封禁 ForbiddenUserIdentifyCode identifyCode1 = forbiddenUserIdentifyCodeService .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone); if (identifyCode1 != null && identifyCode1.getEffective() != null && identifyCode1.getEffective()) throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); userInfo = getUserInfoByPhone(appId, phone); break; } // 判断用户是否被删除 if (userInfo != null && userInfo.getState() != null && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE || userInfo.getState() == UserInfo.STATE_DELETE)) userInfo = null; if (userInfo != null) { UserInfo updateUserInfo = new UserInfo(userInfo.getId()); @@ -561,7 +625,19 @@ if (StringUtil.isNullOrEmpty(unionId)) throw new UserAccountException(2, "unionId为空"); return userInfoMapper.getUserInfoByAppIdAndWXUnionId(appId, unionId); List<UserInfo> list = userInfoMapper.listByAppIdAndWXUnionId(appId, unionId); // 剔除被删除掉的用户 for (int i = 0; i < list.size(); i++) { if (list.get(i).getState() == UserInfo.STATE_DELETE || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) { list.remove(i); i--; } } if (list.size() > 0) return list.get(list.size() - 1); else return null; } /** @@ -576,7 +652,21 @@ throw new UserAccountException(1, "appId为空"); if (StringUtil.isNullOrEmpty(openId)) throw new UserAccountException(2, "openId为空"); return userInfoMapper.getUserInfoByAppIdAndTaoBaoOpenId(appId, openId); List<UserInfo> list = userInfoMapper.listByAppIdAndTaoBaoOpenId(appId, openId); // 剔除被删除掉的用户 for (int i = 0; i < list.size(); i++) { if (list.get(i).getState() == UserInfo.STATE_DELETE || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) { list.remove(i); i--; } } if (list.size() > 0) return list.get(list.size() - 1); else return null; } /** @@ -591,7 +681,21 @@ throw new UserAccountException(1, "appId为空"); if (StringUtil.isNullOrEmpty(phone)) throw new UserAccountException(2, "phone为空"); return userInfoMapper.getUserInfoByAppIdAndPhone(appId, phone); List<UserInfo> list = userInfoMapper.listByAppIdAndPhone(appId, phone); // 剔除被删除掉的用户 for (int i = 0; i < list.size(); i++) { if (list.get(i).getState() == UserInfo.STATE_DELETE || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) { list.remove(i); i--; } } if (list.size() > 0) return list.get(list.size() - 1); else return null; } private void updateLatestLoginTime(Long uid) { @@ -705,7 +809,7 @@ if (!StringUtil.isNullOrEmpty(user.getOpenid()) && !user.getOpenid().equalsIgnoreCase(tbOpenId)) throw new UserAccountException(5, "当前账号已经绑定了淘宝,请先解绑"); //绑定同一个淘宝号 // 绑定同一个淘宝号 if (!StringUtil.isNullOrEmpty(user.getOpenid()) && user.getOpenid().equalsIgnoreCase(tbOpenId)) return; @@ -748,7 +852,7 @@ } userInfoMapper.updateByPrimaryKeySelective(update); userExtraTaoBaoInfoService.unBindUid(uid); userAccountMsgNotificationService.unBindingSuccess(uid, MsgAccountDetailFactory.TYPE_TB); fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoServiceImpl.java
@@ -622,7 +622,7 @@ @Override public UserInfo getUserByIdWithMybatis(long uid) { UserInfo user = userInfoMapper.selectByPrimaryKey(uid); UserInfo user = userInfoMapper.selectByPKey(uid); return UserUtil.filterForClientUser(user); } fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -25,6 +25,7 @@ import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.log.TaoKeLogHelper; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; @@ -1595,6 +1596,7 @@ .optString("relation_id"); } catch (TaoKeApiException e) { e.printStackTrace(); LogHelper.error("渠道ID申请出错:" + resultJSON); } return null; @@ -1617,6 +1619,7 @@ .optString("special_id"); } catch (TaoKeApiException e) { e.printStackTrace(); LogHelper.error("会员运营ID申请出错:" + resultJSON); } return null; @@ -1797,6 +1800,26 @@ return null; } public static void punish() { Map<String, String> map = new HashMap<>(); map.put("method", "taobao.tbk.dg.punish.order.get"); map.put("span", "3600"); map.put("page_no", "1"); map.put("page_size", "20"); map.put("start_time", "2019-01-01 00:00:00"); // map.put("start_time", "2019-01-01 00:00:00"); TaoKeAppInfo app = new TaoKeAppInfo(); app.setAppKey(Constant.TAOBAO_AUTH_APPKEY); app.setAppSecret(Constant.TAOBAO_AUTH_APPSECRET); try { JSONObject json = TaoKeBaseUtil.baseRequest(map, app); } catch (TaoKeApiException e) { e.printStackTrace(); } } private static List<TaoBaoOrder> parseTaoBaoOrder(String response) { @@ -1937,6 +1960,26 @@ return null; } public static void juHuaSuan() { Map<String, String> map = new HashMap<>(); map.put("method", "taobao.ju.items.search"); map.put("current_page", 1 + ""); map.put("page_size", 100+""); map.put("pid", "mm_124933865_43788020_381938426"); TaoKeAppInfo app = new TaoKeAppInfo(); app.setAppKey("24838852"); app.setAppSecret("bc8265e2bf8d8115329d652f9d3d4cd8"); try { JSONObject json = TaoKeBaseUtil.baseRequest(map, app); System.out.println(json); } catch (TaoKeApiException e) { e.printStackTrace(); } } // AA5ISJ private static TaoBaoGoodsBrief parseWuLiaoItemFromMaterialId(JSONObject item) {