admin
2021-05-19 a1be6075c6b1365a7abc66bf559d6058039248ab
fanli/src/main/java/com/yeshi/fanli/controller/admin/redpack/RedPackAdminController.java
@@ -1,220 +1,241 @@
package com.yeshi.fanli.controller.admin.redpack;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.redpack.RedPackExchange;
import com.yeshi.fanli.exception.redpack.RedPackExchangeException;
import com.yeshi.fanli.service.AdminUserService;
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackExchangeService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/redpack")
public class RedPackAdminController {
   @Resource
   private RedPackExchangeService redPackExchangeService;
   @Resource
   private RedPackBalanceService redPackBalanceService;
   @Resource
   private UserInfoService userInfoService;
   @Resource
   private AdminUserService adminUserService;
   /**
    *
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param key 搜索:暂只提供uid
    * @param state 状态:
    * @param out
    */
   @RequestMapping(value = "query")
   public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer state, PrintWriter out) {
      if (pageIndex == null || pageIndex < 1) {
         pageIndex = 1;
      }
      if (pageSize == null || pageSize < 1) {
         pageSize = Constant.PAGE_SIZE;
      }
      try {
         List<RedPackExchange> list = redPackExchangeService.query((pageIndex - 1) * pageSize, pageSize, key, state);
         if (list == null || list.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
            return;
         }
         for (RedPackExchange redPackExchange: list) {
            UserInfo userInfo = userInfoService.selectByPKey(redPackExchange.getUid());
            redPackExchange.setPortrait(userInfo.getPortrait());
            redPackExchange.setNickName(userInfo.getNickName());
            Long auditId = redPackExchange.getAuditId();
            if(auditId != null) {
               AdminUser adminUser = adminUserService.selectByPrimaryKey(auditId);
               if (adminUser != null) {
                  redPackExchange.setAuditName(adminUser.getName());
               }
            }
         }
         long count = redPackExchangeService.count(key, state);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("result_list", gson.toJson(list));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
   /**
    * 获取申请信息
    * @param callback
    * @param id
    * @param out
    */
   @RequestMapping(value = "getApplyInfo")
   public void getAuditInfo(String callback, Long id, PrintWriter out) {
      RedPackExchange exchange = redPackExchangeService.selectByPrimaryKey(id);
      if (exchange == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("申请记录不存在"));
         return;
      }
      Long uid = exchange.getUid();
      BigDecimal balance = redPackBalanceService.getBalance(uid);
      UserInfo userInfo = userInfoService.selectByPKey(uid);
      JSONObject data = new JSONObject();
      data.put("exchange", exchange);
      data.put("userInfo", userInfo);
      data.put("countInit", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_INIT));
      data.put("countSucceed", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_SUCCESS));
      data.put("countReject", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_REJECT));
      data.put("balance", balance);
      data.put("moneyInit", redPackExchangeService.countMoneyByUidAndState(uid,RedPackExchange.STATE_INIT));
      data.put("moneySucceed", redPackExchangeService.countMoneyByUidAndState(uid,RedPackExchange.STATE_SUCCESS));
      data.put("moneyReject",  redPackExchangeService.countMoneyByUidAndState(uid,RedPackExchange.STATE_REJECT));
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
   /**
    * 允许提现
    * @param callback
    * @param id
    * @param code
    * @param out
    * @param request
    */
   @RequestMapping(value = "passExchange")
   public void passExchange(String callback, Long id, String code, PrintWriter out, HttpServletRequest request) {
      try {
         /* 检验是否登陆 */
         AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
         if (admin == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。"));
            return;
         }
         /* 检验是否通过验证 */
         String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT);
         if (!"1".equals(codeType)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过"));
            return;
         }
         /* 允许提现 操作 */
         redPackExchangeService.passExchange(id, admin);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
      } catch (RedPackExchangeException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
         return;
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
         return;
      }
   }
   /**
    * 拒绝提现
    * @param callback
    * @param id
    * @param code
    * @param reason
    * @param out
    * @param request
    */
   @RequestMapping(value = "rejectExchange")
   public void rejectExchange(String callback, Long id, String code, String reason, PrintWriter out,
         HttpServletRequest request) {
      try {
         /* 检验是否登陆 */
         AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
         if (admin == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆"));
            return;
         }
         /* 检验是否通过验证 */
         String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT);
         if (!"1".equals(codeType)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过"));
            return;
         }
         // 编码转换
         reason = URLDecoder.decode(reason, "UTF-8");
         redPackExchangeService.rejectExchange(id, reason, admin);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("拒绝成功"));
      } catch (RedPackExchangeException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
         return;
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
         return;
      }
   }
}
package com.yeshi.fanli.controller.admin.redpack;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.yeshi.fanli.entity.accept.AdminAcceptData;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.redpack.RedPackExchange;
import com.yeshi.fanli.exception.redpack.RedPackExchangeException;
import com.yeshi.fanli.service.AdminUserService;
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackExchangeService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.common.entity.PageEntity;
import com.yeshi.fanli.util.Constant;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/redpack")
public class RedPackAdminController {
   @Resource
   private RedPackExchangeService redPackExchangeService;
   @Resource
   private RedPackBalanceService redPackBalanceService;
   @Resource
   private UserInfoService userInfoService;
   @Resource
   private AdminUserService adminUserService;
   /**
    *
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param key 搜索:暂只提供uid
    * @param state 状态:
    * @param out
    */
   @RequestMapping(value = "query")
   public void query(AdminAcceptData acceptData, String callback, Integer pageIndex, Integer pageSize, String key, Integer state, PrintWriter out) {
      if (pageIndex == null || pageIndex < 1) {
         pageIndex = 1;
      }
      if (pageSize == null || pageSize < 1) {
         pageSize = Constant.PAGE_SIZE;
      }
      try {
         List<RedPackExchange> list = redPackExchangeService.query((pageIndex - 1) * pageSize, pageSize, key, state);
         if (list == null || list.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
            return;
         }
         for (RedPackExchange redPackExchange: list) {
            UserInfo userInfo = userInfoService.selectByPKey(redPackExchange.getUid());
            redPackExchange.setPortrait(userInfo.getPortrait());
            redPackExchange.setNickName(userInfo.getNickName());
            Long auditId = redPackExchange.getAuditId();
            if(auditId != null) {
               AdminUser adminUser = adminUserService.selectByPrimaryKey(auditId);
               if (adminUser != null) {
                  redPackExchange.setAuditName(adminUser.getName());
               }
            }
         }
         long count = redPackExchangeService.count(key, state);
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("result_list", gson.toJson(list));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
   /**
    * 获取申请信息
    * @param callback
    * @param id
    * @param out
    */
   @RequestMapping(value = "getApplyInfo")
   public void getAuditInfo(AdminAcceptData acceptData,String callback, Long id, PrintWriter out) {
      RedPackExchange exchange = redPackExchangeService.selectByPrimaryKey(id);
      if (exchange == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("申请记录不存在"));
         return;
      }
      Long uid = exchange.getUid();
      BigDecimal balance = redPackBalanceService.getBalance(uid);
      UserInfo userInfo = userInfoService.selectByPKey(uid);
      JSONObject data = new JSONObject();
      data.put("exchange", exchange);
      data.put("userInfo", userInfo);
      data.put("countInit", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_INIT));
      data.put("countSucceed", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_SUCCESS));
      data.put("countReject", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_REJECT));
      data.put("balance", balance);
      data.put("moneyInit", redPackExchangeService.countMoneyByUidAndState(uid,RedPackExchange.STATE_INIT));
      data.put("moneySucceed", redPackExchangeService.countMoneyByUidAndState(uid,RedPackExchange.STATE_SUCCESS));
      data.put("moneyReject",  redPackExchangeService.countMoneyByUidAndState(uid,RedPackExchange.STATE_REJECT));
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
   /**
    * 允许提现
    * @param callback
    * @param id
    * @param code
    * @param out
    * @param request
    */
   @RequestMapping(value = "passExchange")
   public void passExchange(AdminAcceptData acceptData,String callback, Long id, String code, PrintWriter out, HttpServletRequest request) {
      try {
         /* 检验是否登陆 */
         AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
         if (admin == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆。"));
            return;
         }
         /* 检验是否通过验证 */
         String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT);
         if (!"1".equals(codeType)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过"));
            return;
         }
         /* 允许提现 操作 */
         redPackExchangeService.passExchange(id, admin);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
      } catch (RedPackExchangeException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
         return;
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
         return;
      }
   }
   /**
    * 拒绝提现
    * @param callback
    * @param id
    * @param code
    * @param reason
    * @param out
    * @param request
    */
   @RequestMapping(value = "rejectExchange")
   public void rejectExchange(AdminAcceptData acceptData,String callback, Long id, String code, String reason, PrintWriter out,
         HttpServletRequest request) {
      try {
         /* 检验是否登陆 */
         AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
         if (admin == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("当前账户失效,请重新登陆"));
            return;
         }
         /* 检验是否通过验证 */
         String codeType = (String) request.getSession().getAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT);
         if (!"1".equals(codeType)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(3, "邮箱验证未通过"));
            return;
         }
         // 编码转换
         reason = URLDecoder.decode(reason, "UTF-8");
         redPackExchangeService.rejectExchange(id, reason, admin);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("拒绝成功"));
      } catch (RedPackExchangeException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
         return;
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
         return;
      }
   }
   /**
    * 红包统计
    * @param callback
    * @param uid
    * @param out
    */
   @RequestMapping(value = "statisticsRedPack")
   public void statisticsRedPack(AdminAcceptData acceptData,String callback, Long uid, PrintWriter out) {
      try {
         JSONObject data = new JSONObject();
         data.put("balance", redPackBalanceService.getBalance(uid));
         data.put("exchanging", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_INIT));
         data.put("exchangeSucceed", redPackExchangeService.countByUidAndState(uid, RedPackExchange.STATE_SUCCESS));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
}