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();
|
}
|
}
|
|
}
|