yujian
2019-10-17 51f1f94856c9401543f89660f7e178d50a2632be
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -9,6 +9,7 @@
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -18,30 +19,33 @@
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.controller.admin.utils.AdminUtils;
import com.yeshi.fanli.dto.money.AccountDetails;
import com.yeshi.fanli.dto.ChartTDO;
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.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserRank;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
import com.yeshi.fanli.service.inter.count.UserInfoCountService;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.BindingAccountService;
import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
import com.yeshi.fanli.service.inter.user.UserInfoDeleteRecordService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.user.UserRankService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.GsonUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.AccountDetailsFactory;
import com.yeshi.fanli.vo.user.UserGoldCoinVO;
import com.yeshi.fanli.vo.user.UserInfoVO;
import net.sf.json.JSONArray;
@@ -76,6 +80,12 @@
   @Resource
   private UserMoneyDetailService userMoneyDetailService;
   @Resource
   private UserInfoDeleteRecordService userInfoDeleteRecordService;
   @Resource
   private UserAccountService userAccountService;
   /**
    * 查询用户信息列表 正常用户/异常用户
@@ -292,7 +302,7 @@
         UserInfo find = userInfoService.getUserById(uid);
         if (find == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该用户!"));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户被封禁或不存在"));
            return;
         }
@@ -338,13 +348,81 @@
         }
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("解绑成功"));
      } catch (Exception e) {
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
      }
   }
   /**
    * 修改用户备注
    * @param callback
    * @param uid
    * @param mark
    * @param out
    */
   @RequestMapping("addUserMark")
   public void addUserMark(String callback, Long uid, String mark, PrintWriter out) {
      try {
         if (uid == null || uid <= 0 || StringUtil.isNullOrEmpty(mark))
            return;
         UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
         if (userInfoExtra == null)
            return;
         UserInfoExtra updateExtra = new UserInfoExtra();
         updateExtra.setId(userInfoExtra.getId());
         updateExtra.setMark(mark);
         userInfoExtraService.saveUserInfoExtra(updateExtra);
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   /**
    * 删除用户-改变其状态
    * @param callback
    * @param idArray
    * @param out
    */
   @RequestMapping(value = "deleteUser")
   public void delete(String callback, String idArray, HttpServletRequest request,  PrintWriter out) {
      try {
         AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
         if (admin == null) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。")));
            return;
         }
         if (StringUtil.isNullOrEmpty(idArray)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择操作的数据"));
            return;
         }
         Gson gson = new Gson();
         List<Long> list = gson.fromJson(idArray, new TypeToken<ArrayList<Long>>() {}.getType());
         if (list == null || list.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未检测到删除的数据"));
            return;
         }
         for (Long id: list) {
            UserInfo user = new UserInfo(id);
            user.setState(UserInfo.STATE_DELETE);
            user.setStateDesc(admin.getId()+" " + admin.getName()+ "后台手动删除");
            userInfoService.updateByPrimaryKeySelective(user);
         }
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("成功删除"));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
         e.printStackTrace();
      }
   }
   /**
    * 封禁用户ID
    * 
@@ -353,7 +431,7 @@
    * @param out
    */
   @RequestMapping(value = "forbiddenUser")
   public void forbiddenUser(String callback, Long uid, PrintWriter out) {
   public void forbiddenUser(String callback, Long uid, HttpServletRequest request, PrintWriter out) {
      try {
         if (uid == null) {
@@ -367,7 +445,14 @@
            return;
         }
         userInfoService.forbiddenUser(uid, "管理员封禁");
         AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
         if (admin == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("登录失效,请登录"));
            return;
         }
         String reason = "后台封禁,操作人:" + admin.getId() + "-" + admin.getName();
         userAccountService.forbiddenUserAll(uid, reason);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("用户封禁成功"));
@@ -746,7 +831,6 @@
      }
      try {
         List<UserMoneyDetail> userMoneyDetailsList = userMoneyDetailService.listByUidWithState(uid, pageIndex,
               pageSize);
         if (userMoneyDetailsList == null || userMoneyDetailsList.size() == 0) {
@@ -754,18 +838,15 @@
            return;
         }
         List<AccountDetails> detailList = new ArrayList<>();
         for (UserMoneyDetail detail : userMoneyDetailsList)
            detailList.add(AccountDetailsFactory.create(detail));
         long count = userMoneyDetailService.countByUidWithState(uid);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("result_list", GsonUtil.toJsonExpose(detailList));
         data.put("result_list", gson.toJson(userMoneyDetailsList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
@@ -846,7 +927,7 @@
         JSONArray line_list = new JSONArray();
         for (String channel : channelList) {
            List<Map<String, Object>> list = userInfoCountService.countNewUserByDate(channel, dateType, year,
            List<ChartTDO> list = userInfoCountService.countNewUserByDate(channel, dateType, year,
                  startTime, endTime);
            if ("all".equalsIgnoreCase(channel)) {
@@ -964,7 +1045,7 @@
         JSONArray line_list = new JSONArray();
         for (String channel : channelList) {
            List<Map<String, Object>> list = userInfoCountService.getTodayBuyRate(channel, dateType, year,
            List<ChartTDO> list = userInfoCountService.getTodayBuyRate(channel, dateType, year,
                  startTime, endTime);
            if ("all".equalsIgnoreCase(channel)) {
@@ -1077,4 +1158,50 @@
      }
   }
   /**
    * 获取金币排行榜
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param type
    * @param out
    */
   @RequestMapping(value = "getGoldTop")
   public void getGoldTop(String callback, Integer pageIndex, Integer pageSize, Integer type, String key,
         PrintWriter out) {
      if (type == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("type不能为空"));
         return;
      }
      if (pageIndex == null)
         pageIndex = 1;
      if (pageSize == null)
         pageSize = 50;
      long count = 0;
      List<UserGoldCoinVO> list = null;
      if (type == 0) {
         count = userInfoCountService.countByHasGoldCoin(key);
         list = userInfoCountService.listByHasGoldCoin((pageIndex - 1) * pageSize, pageSize, key);
      } else if (type == 1 || type == 2) {
         count = userInfoCountService.countByUserGoldCoin(type, key);
         list = userInfoCountService.listByUserGoldCoin((pageIndex - 1) * pageSize, pageSize, type, key);
      }
      if(list == null)
         list = new ArrayList<>();
      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("list", list);
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
}