package project.web.admin.monitor;
|
|
import java.math.BigDecimal;
|
import java.text.MessageFormat;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import kernel.exception.BusinessException;
|
import kernel.util.StringUtils;
|
import kernel.web.PageActionSupport;
|
import project.monitor.AdminAutoMonitorPoolDataService;
|
import project.monitor.AutoMonitorPoolDataService;
|
import project.monitor.model.AutoMonitorPoolData;
|
|
/**
|
* 矿池产出数据
|
*/
|
@RestController
|
public class AdminAutoMonitorPoolDataController extends PageActionSupport {
|
|
private Logger logger = LoggerFactory.getLogger(AdminAutoMonitorPoolDataController.class);
|
|
@Autowired
|
private AdminAutoMonitorPoolDataService adminAutoMonitorPoolDataService;
|
|
@Autowired
|
private AutoMonitorPoolDataService autoMonitorPoolDataService;
|
|
private final String action = "normal/adminAutoMonitorPoolDataAction!";
|
|
|
/**
|
* 修改 矿池产出数据 页面
|
*/
|
@RequestMapping(action + "toUpdate.action")
|
public ModelAndView toUpdate(HttpServletRequest request) {
|
String message = request.getParameter("message");
|
String error = request.getParameter("error");
|
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("auto_monitor_pool_data_update");
|
|
try {
|
|
AutoMonitorPoolData entity = this.autoMonitorPoolDataService.findDefault();
|
|
modelAndView.addObject("rate", entity.getRate());
|
modelAndView.addObject("total_output", new BigDecimal(entity.getTotal_output()).toPlainString());
|
modelAndView.addObject("user_revenue", new BigDecimal(entity.getUser_revenue()).toPlainString());
|
modelAndView.addObject("verifier", new BigDecimal(entity.getVerifier()).toPlainString());
|
modelAndView.addObject("notice_logs", entity.getNotice_logs());
|
|
modelAndView.addObject("miningName", entity.getMiningName());
|
modelAndView.addObject("tradingSum", new BigDecimal(entity.getTradingSum()).toPlainString());
|
modelAndView.addObject("dayRateMin", entity.getDayRateMin());
|
modelAndView.addObject("dayRateMax", entity.getDayRateMax());
|
modelAndView.addObject("miningAmountMin", entity.getMiningAmountMin());
|
modelAndView.addObject("miningAmountMax", entity.getMiningAmountMax());
|
modelAndView.addObject("node_num", entity.getNode_num());
|
modelAndView.addObject("mining_total", new BigDecimal(entity.getMining_total()).toPlainString());
|
|
} catch (BusinessException e) {
|
modelAndView.addObject("error", e.getMessage());
|
return modelAndView;
|
} catch (Throwable t) {
|
logger.error("update error ", t);
|
modelAndView.addObject("error", "程序错误");
|
return modelAndView;
|
}
|
|
modelAndView.addObject("message", message);
|
modelAndView.addObject("error", error);
|
return modelAndView;
|
}
|
|
/**
|
* 修改 矿池产出数据
|
*/
|
@RequestMapping(action + "update.action")
|
public ModelAndView update(HttpServletRequest request) {
|
String total_output = request.getParameter("total_output");
|
String user_revenue = request.getParameter("user_revenue");
|
String verifier = request.getParameter("verifier");
|
String rate = request.getParameter("rate");
|
String notice_logs = request.getParameter("notice_logs");
|
|
String miningName = request.getParameter("miningName");
|
String tradingSum_temp = request.getParameter("tradingSum");
|
String dayRateMin_temp = request.getParameter("dayRateMin");
|
String dayRateMax_temp = request.getParameter("dayRateMax");
|
String miningAmountMin_temp = request.getParameter("miningAmountMin");
|
String miningAmountMax_temp = request.getParameter("miningAmountMax");
|
String node_num_temp = request.getParameter("node_num");
|
String mining_total_temp = request.getParameter("mining_total");
|
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.addObject("total_output", new BigDecimal(total_output).toPlainString());
|
modelAndView.addObject("user_revenue", new BigDecimal(user_revenue).toPlainString());
|
modelAndView.addObject("verifier", new BigDecimal(verifier).toPlainString());
|
modelAndView.addObject("rate", rate);
|
modelAndView.addObject("notice_logs", notice_logs);
|
|
modelAndView.addObject("miningName", miningName);
|
modelAndView.addObject("tradingSum", new BigDecimal(tradingSum_temp).toPlainString());
|
modelAndView.addObject("dayRateMin", dayRateMin_temp);
|
modelAndView.addObject("dayRateMax", dayRateMax_temp);
|
modelAndView.addObject("miningAmountMin", miningAmountMin_temp);
|
modelAndView.addObject("miningAmountMax", miningAmountMax_temp);
|
modelAndView.addObject("node_num", node_num_temp);
|
modelAndView.addObject("mining_total", new BigDecimal(mining_total_temp).toPlainString());
|
|
try {
|
|
String error = this.verification(total_output, user_revenue, verifier, rate,
|
dayRateMin_temp, dayRateMax_temp, miningAmountMin_temp, miningAmountMax_temp, node_num_temp,mining_total_temp,tradingSum_temp, miningName);
|
if (!StringUtils.isNullOrEmpty(error)) {
|
throw new BusinessException(error);
|
}
|
|
double total_output_double = Double.valueOf(request.getParameter("total_output"));
|
double user_revenue_double = Double.valueOf(request.getParameter("user_revenue"));
|
double verifier_double = Double.valueOf(request.getParameter("verifier"));
|
double rate_double = Double.valueOf(request.getParameter("rate"));
|
|
double tradingSum = Double.valueOf(tradingSum_temp);
|
//检测总交易量是否超过100亿
|
if(tradingSum > 10000000000.00001) {
|
throw new BusinessException("总交易量超过100亿");
|
}
|
|
double dayRateMin = Double.valueOf(dayRateMin_temp);
|
double dayRateMax = Double.valueOf(dayRateMax_temp);
|
double miningAmountMin = Double.valueOf(miningAmountMin_temp);
|
double miningAmountMax = Double.valueOf(miningAmountMax_temp);
|
double node_num = Double.valueOf(node_num_temp);
|
double mining_total = Double.valueOf(mining_total_temp);
|
|
AutoMonitorPoolData entity = autoMonitorPoolDataService.findDefault();
|
|
String log = MessageFormat.format(
|
"管理员修改矿池产出数据配置,原total_output:{0},原user_revenue:{1}," + "原verifier:{2},原rate:{3},原notice_logs{4}",
|
entity.getTotal_output(), entity.getUser_revenue(), entity.getVerifier(), entity.getRate(),
|
entity.getNotice_logs());
|
|
entity.setTotal_output(total_output_double);
|
entity.setUser_revenue(user_revenue_double);
|
entity.setVerifier(verifier_double);
|
entity.setRate(rate_double);
|
entity.setNotice_logs(notice_logs);
|
entity.setMiningName(miningName);
|
entity.setTradingSum(tradingSum);
|
entity.setDayRateMin(dayRateMin);
|
entity.setDayRateMax(dayRateMax);
|
entity.setMiningAmountMin(miningAmountMin);
|
entity.setMiningAmountMax(miningAmountMax);
|
entity.setNode_num(node_num);
|
entity.setMining_total(mining_total);
|
|
log += MessageFormat.format(
|
",新total_output:{0},新user_revenue:{1}," + "新verifier:{2},新rate:{3},新notice_logs{4}",
|
entity.getTotal_output(), entity.getUser_revenue(), entity.getVerifier(), entity.getRate(),
|
entity.getNotice_logs());
|
|
this.adminAutoMonitorPoolDataService.update(entity, this.getUsername_login(), this.getIp(), log);
|
|
} catch (BusinessException e) {
|
modelAndView.addObject("error", e.getMessage());
|
modelAndView.setViewName("auto_monitor_pool_data_update");
|
return modelAndView;
|
} catch (Throwable t) {
|
logger.error("update error ", t);
|
modelAndView.addObject("error", "程序错误");
|
modelAndView.setViewName("auto_monitor_pool_data_update");
|
return modelAndView;
|
}
|
|
modelAndView.addObject("message", "操作成功");
|
modelAndView.setViewName("redirect:/" + action + "toUpdate.action");
|
return modelAndView;
|
}
|
|
protected String verification(String total_output, String user_revenue, String verifier, String rate,
|
String dayRateMin_temp, String dayRateMax_temp, String miningAmountMin_temp,
|
String miningAmountMax_temp,String node_num_temp, String mining_total_temp, String tradingSum_temp, String miningName) {
|
|
if (StringUtils.isNullOrEmpty(total_output)) {
|
return "总产量必填";
|
}
|
if (!StringUtils.isDouble(total_output)) {
|
return "总产量输入错误,请输入浮点数";
|
}
|
if (Double.valueOf(total_output).doubleValue() < 0) {
|
return "总产量不能小于0";
|
}
|
|
if (StringUtils.isNullOrEmpty(verifier)) {
|
return "参与者必填";
|
}
|
if (!StringUtils.isDouble(verifier)) {
|
return "参与者输入错误,请输入浮点数";
|
}
|
if (Double.valueOf(verifier).doubleValue() < 0) {
|
return "参与者不能小于0";
|
}
|
|
if (StringUtils.isNullOrEmpty(user_revenue)) {
|
return "用户收益必填";
|
}
|
if (!StringUtils.isDouble(user_revenue)) {
|
return "用户收益输入错误,请输入浮点数";
|
}
|
if (Double.valueOf(user_revenue).doubleValue() < 0) {
|
return "用户收益不能小于0";
|
}
|
|
if (StringUtils.isNullOrEmpty(rate)) {
|
return "参与者增加倍率必填";
|
}
|
if (!StringUtils.isDouble(rate)) {
|
return "参与者增加倍率输入错误,请输入浮点数";
|
}
|
if (Double.valueOf(rate).doubleValue() < 0) {
|
return "参与者增加倍率不能小于0";
|
}
|
if (Double.valueOf(node_num_temp).doubleValue() < 0) {
|
return "节点数量不能小于0";
|
}
|
if (StringUtils.isNullOrEmpty(miningName)) {
|
return "挖矿项目名称必填";
|
}
|
if (!StringUtils.isDouble(mining_total_temp) || Double.valueOf(mining_total_temp).doubleValue() < 0) {
|
return "请输入正确的总流动性挖矿合约资金";
|
}
|
if (!StringUtils.isDouble(tradingSum_temp) || Double.valueOf(tradingSum_temp).doubleValue() < 0) {
|
return "请输入正确的总交易量";
|
}
|
if (!StringUtils.isDouble(dayRateMin_temp) || Double.valueOf(dayRateMin_temp).doubleValue() < 0) {
|
return "请输入正确的日收益率下限";
|
}
|
if (!StringUtils.isDouble(dayRateMax_temp) || Double.valueOf(dayRateMax_temp).doubleValue() < 0) {
|
return "请输入正确的日收益率上限";
|
}
|
if (!StringUtils.isDouble(miningAmountMin_temp) || Double.valueOf(miningAmountMin_temp).doubleValue() < 0) {
|
return "请输入正确的挖矿金额下限";
|
}
|
if (!StringUtils.isDouble(miningAmountMax_temp) || Double.valueOf(miningAmountMax_temp).doubleValue() < 0) {
|
return "请输入正确的挖矿金额上限";
|
}
|
|
return null;
|
}
|
}
|