admin
2019-02-21 d8fc7a24f8a2be1bc62aa38083a9f3dd3fbb3dc4
封禁用户相关操作
12个文件已修改
591 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/UserInfoMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/UserInfo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
@@ -113,6 +120,11 @@
    @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 {
@@ -649,9 +667,8 @@
                }
            }
            
            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("暂无相关数据"));
@@ -682,6 +699,7 @@
    
    /**
     * 统计今日用户总情况
     *
     * @param callback
     * @param out
     */
@@ -706,18 +724,16 @@
            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);
            */
            
            // 累计用户数量
@@ -746,9 +762,9 @@
        }
    }
    
    /**
     * 修改用户的状态、等级信息
     *
     * @param callback
     * @param userInfo
     * @param out
@@ -770,6 +786,8 @@
                return;
            }
            
            currentInfo = new UserInfo(id);
            boolean hasChange = false;
            
            // 等级修改
@@ -784,16 +802,102 @@
            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("修改失败"));
        }
@@ -801,6 +905,7 @@
    
    /**
     * 删除绑定的账户信息: 支付宝  微信
     *
     * @param callback
     * @param bindId
     * @param out
@@ -845,12 +950,10 @@
                return;
            }
            if (type == null) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("账户类型不可为空!"));
                return;
            }
            
            UserInfo find = userInfoService.getUserById(id);
@@ -892,11 +995,9 @@
        }
    }
    
    @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) {
@@ -910,9 +1011,8 @@
            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;
@@ -956,10 +1056,9 @@
        }
    }
    
    @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) {
@@ -973,9 +1072,8 @@
            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;
@@ -1019,7 +1117,6 @@
        }
    }
    
    @RequestMapping(value = "deleteThreeSale")
    public void deleteThreeSale(String callback, Long id, PrintWriter out) {
        try {
@@ -1043,10 +1140,9 @@
        }
    }
    
    /**
     * 队员关系
     *
     * @param pageIndex
     * @param key
     * @param state
@@ -1087,12 +1183,12 @@
                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) {
@@ -1140,9 +1236,9 @@
        }        
    }
    
    /**
     * 用户账户明细
     *
     * @param callback
     * @param pageIndex
     * @param pageSize
@@ -1177,7 +1273,6 @@
            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));
@@ -1192,17 +1287,22 @@
    
    /**
     * 根据渠道   统计当日新增用户数量
     * @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) {
@@ -1218,14 +1318,14 @@
        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 (dateType == 1 && year != null) {
            year = null; // 设置为空
@@ -1247,7 +1347,6 @@
                endTime = null; 
        }
        
        try {
            Gson gson = new Gson();
@@ -1257,8 +1356,8 @@
            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 = "总计";
@@ -1282,7 +1381,6 @@
                line_list.add(innerList);
            }
            JSONObject data = new JSONObject();
            if (objectDate != null) {
                data.put("xAxis_list", gson.toJson(objectDate));
@@ -1300,19 +1398,24 @@
        }
    }
    
    /**
     * 根据渠道   统计当日新增用户数量
     * @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) {
@@ -1333,14 +1436,14 @@
        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 (dateType == 1 && year != null) {
            year = null; // 设置为空
@@ -1362,7 +1465,6 @@
                endTime = null; 
        }
        
        try {
            Gson gson = new Gson();
@@ -1372,8 +1474,8 @@
            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 = "总计";
@@ -1397,7 +1499,6 @@
                line_list.add(innerList);
            }
            JSONObject data = new JSONObject();
            if (objectDate != null) {
                data.put("xAxis_list", gson.toJson(objectDate));
@@ -1416,19 +1517,21 @@
        
    }
    
    /**
     * 当周产生3单的新增用户概率 
     *
     * @param callback
     * @param channelArray 渠道名称
     * @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("当周订单统计对应时间区域不能为空"));
@@ -1438,7 +1541,8 @@
        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) {
@@ -1458,8 +1562,8 @@
            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 = "总计";
@@ -1470,7 +1574,6 @@
                innerList.put("data", gson.toJson(list));
                line_list.add(innerList);
            }
            JSONObject data = new JSONObject();
            data.put("xAxis_list", gson.toJson(dateList));
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 (Constant.IS_OUTNET) {
        if (!vcode.equalsIgnoreCase(oldVCode)) {
            out.print(JsonUtil.loadFalseResult(90001, "验证码错误"));
            return;
        }
        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);
                // 重新计算用户等级
@@ -597,7 +603,6 @@
                } catch (UserInfoExtraException e) {
                    e.printStackTrace();
                }
                
                LogHelper.userInfo(GsonUtil.toJsonExpose(uuser));
                uuser.setLastLoginIp(remotIP);
@@ -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 {
@@ -108,6 +110,9 @@
    @Resource
    private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
    @Resource
    private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
    @Transactional
    @Override
    public LoginResult login(HttpServletRequest request, Boolean first, String appId, String code, String phone,
@@ -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) {
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;
@@ -1798,6 +1801,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) {
        List<TaoBaoOrder> orderList = new ArrayList<>();
@@ -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) {