package project.project.web.admin;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.providers.encoding.PasswordEncoder;
|
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.Page;
|
import kernel.web.PageActionSupport;
|
import project.Constants;
|
import project.finance.AdminFinanceService;
|
import project.finance.Finance;
|
import project.finance.FinanceService;
|
import project.log.Log;
|
import project.log.LogService;
|
import project.party.PartyService;
|
import security.internal.SecUserService;
|
|
/**
|
* 理财配置
|
*/
|
@RestController
|
public class AdminFinanceController extends PageActionSupport {
|
|
@Autowired
|
protected LogService logService;
|
|
@Autowired
|
protected PartyService partyService;
|
|
@Autowired
|
protected FinanceService financeService;
|
|
@Autowired
|
protected SecUserService secUserService;
|
|
@Autowired
|
protected PasswordEncoder passwordEncoder;
|
|
@Autowired
|
protected AdminFinanceService adminFinanceService;
|
|
private final String action = "/normal/adminFinanceAction!";
|
|
private static final Logger logger = LoggerFactory.getLogger(AdminFinanceController.class);
|
|
/**
|
* 获取 理财配置 列表
|
*/
|
@RequestMapping(action + "list.action")
|
public ModelAndView list(HttpServletRequest request) {
|
String pageNoStr = request.getParameter("pageNo");
|
String message = request.getParameter("message");
|
String error = request.getParameter("error");
|
String name_para = request.getParameter("name_para");
|
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("finance_list");
|
|
int pageNo=1;
|
Page page=null;
|
int pageSize=300;
|
try {
|
pageNo=checkAndSetPageNo(pageNoStr);
|
page = this.adminFinanceService.pagedQuery(pageNo, pageSize, name_para);
|
} catch (BusinessException e) {
|
modelAndView.addObject("error", e.getMessage());
|
return modelAndView;
|
} catch (Throwable t) {
|
logger.error(" error ", t);
|
modelAndView.addObject("error", "[ERROR] " + t.getMessage());
|
return modelAndView;
|
}
|
|
modelAndView.addObject("pageNo", pageNo);
|
modelAndView.addObject("pageSize", pageSize);
|
modelAndView.addObject("page", page);
|
modelAndView.addObject("message", message);
|
modelAndView.addObject("error", error);
|
modelAndView.addObject("name_para", name_para);
|
return modelAndView;
|
}
|
|
/**
|
* 新增 理财配置 页面
|
*/
|
@RequestMapping(action + "toAdd.action")
|
public ModelAndView toAdd() {
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("finance_add");
|
return modelAndView;
|
}
|
|
/**
|
* 新增 理财配置
|
*/
|
@RequestMapping(action + "add.action")
|
public ModelAndView add(HttpServletRequest request) {
|
// 产品名称
|
String name = request.getParameter("name");
|
// 产品图片
|
String img = request.getParameter("img");
|
// 周期
|
String cycle = request.getParameter("cycle");
|
// 日利率
|
String daily_rate = request.getParameter("daily_rate");
|
String daily_rate_max = request.getParameter("daily_rate_max");
|
// 今日利率
|
String today_rate = request.getParameter("today_rate");
|
// 违约结算比例
|
String default_ratio = request.getParameter("default_ratio");
|
// 投资金额区间min
|
String investment_min = request.getParameter("investment_min");
|
// 投资金额区间max
|
String investment_max = request.getParameter("investment_max");
|
// 资金密码
|
String login_safeword = request.getParameter("login_safeword");
|
String name_en = request.getParameter("name_en");
|
String name_cn = request.getParameter("name_cn");
|
String name_kn = request.getParameter("name_kn");
|
String name_jn = request.getParameter("name_jn");
|
String state = request.getParameter("state");
|
|
ModelAndView model = new ModelAndView();
|
model.addObject("name", name);
|
model.addObject("img", img);
|
model.addObject("cycle", cycle);
|
model.addObject("daily_rate", daily_rate);
|
model.addObject("daily_rate_max", daily_rate_max);
|
model.addObject("today_rate", today_rate);
|
model.addObject("default_ratio", default_ratio);
|
model.addObject("investment_min", investment_min);
|
model.addObject("investment_max", investment_max);
|
model.addObject("name_en", name_en);
|
model.addObject("name_cn", name_cn);
|
model.addObject("name_kn", name_kn);
|
model.addObject("name_jn", name_jn);
|
model.addObject("state", state);
|
|
try {
|
|
String error = this.verification(name, img, cycle, daily_rate, daily_rate_max, today_rate,
|
default_ratio, investment_min, investment_max, login_safeword);
|
if (!StringUtils.isNullOrEmpty(error)) {
|
throw new BusinessException(error);
|
}
|
|
Finance finance = new Finance();
|
finance.setName(name);
|
finance.setName_en(name_en);
|
finance.setName_cn(name_cn);
|
finance.setName_kn(name_kn);
|
finance.setName_jn(name_jn);
|
finance.setImg(img);
|
finance.setCycle(Integer.valueOf(cycle));
|
finance.setDaily_rate(Double.valueOf(daily_rate));
|
finance.setDaily_rate_max(Double.valueOf(daily_rate_max));
|
finance.setToday_rate(Double.valueOf(today_rate));
|
finance.setDefault_ratio(Double.valueOf(default_ratio));
|
finance.setInvestment_min(Double.valueOf(investment_min));
|
finance.setInvestment_max(Double.valueOf(investment_max));
|
finance.setState(state);
|
|
this.financeService.save(finance, login_safeword, this.getUsername_login());
|
|
Log log = new Log();
|
log.setCategory(Constants.LOG_CATEGORY_OPERATION);
|
log.setUsername(this.getUsername_login());
|
log.setOperator(this.getUsername_login());
|
log.setLog("管理员手动添加理财配置,ip:["+this.getIp(request)+"]");
|
logService.saveSync(log);
|
|
} catch (BusinessException e) {
|
model.addObject("error", e.getMessage());
|
model.setViewName("finance_add");
|
return model;
|
} catch (Throwable t) {
|
logger.error("UserAction.register error ", t);
|
model.addObject("error", error);
|
model.setViewName("finance_add");
|
return model;
|
}
|
|
model.addObject("message", "操作成功");
|
model.setViewName("redirect:/" + action + "list.action");
|
return model;
|
}
|
|
/**
|
* 修改 理财配置 页面
|
*/
|
@RequestMapping(action + "toUpdate.action")
|
public ModelAndView toUpdate(HttpServletRequest request) {
|
String id = request.getParameter("id");
|
ModelAndView modelAndView = new ModelAndView();
|
|
try {
|
Finance finance = this.financeService.findById(id);
|
|
modelAndView.addObject("id", id);
|
modelAndView.addObject("name", finance.getName());
|
modelAndView.addObject("img", finance.getImg());
|
modelAndView.addObject("cycle", finance.getCycle());
|
modelAndView.addObject("daily_rate", finance.getDaily_rate());
|
modelAndView.addObject("daily_rate_max", finance.getDaily_rate_max());
|
modelAndView.addObject("today_rate", finance.getToday_rate());
|
modelAndView.addObject("default_ratio", finance.getDefault_ratio());
|
modelAndView.addObject("investment_min", finance.getInvestment_min());
|
modelAndView.addObject("investment_max", finance.getInvestment_max());
|
modelAndView.addObject("name_en", finance.getName_en());
|
modelAndView.addObject("name_cn", finance.getName_cn());
|
modelAndView.addObject("name_kn", finance.getName_kn());
|
modelAndView.addObject("name_jn", finance.getName_jn());
|
modelAndView.addObject("state", finance.getState());
|
|
} catch (BusinessException e) {
|
modelAndView.addObject("error", e.getMessage());
|
modelAndView.setViewName("redirect:/" + action + "list.action");
|
return modelAndView;
|
} catch (Throwable t) {
|
logger.error(" error ", t);
|
modelAndView.addObject("error", "[ERROR] " + t.getMessage());
|
modelAndView.setViewName("redirect:/" + action + "list.action");
|
return modelAndView;
|
}
|
|
modelAndView.setViewName("finance_update");
|
return modelAndView;
|
}
|
|
/**
|
* 修改 理财配置
|
*/
|
@RequestMapping(action + "update.action")
|
public ModelAndView update(HttpServletRequest request) {
|
String id = request.getParameter("id");
|
// 产品名称
|
String name = request.getParameter("name");
|
// 产品图片
|
String img = request.getParameter("img");
|
// 周期
|
String cycle = request.getParameter("cycle");
|
// 日利率
|
String daily_rate = request.getParameter("daily_rate");
|
String daily_rate_max = request.getParameter("daily_rate_max");
|
// 今日利率
|
String today_rate = request.getParameter("today_rate");
|
// 违约结算比例
|
String default_ratio = request.getParameter("default_ratio");
|
// 投资金额区间min
|
String investment_min = request.getParameter("investment_min");
|
// 投资金额区间max
|
String investment_max = request.getParameter("investment_max");
|
String name_en = request.getParameter("name_en");
|
String name_cn = request.getParameter("name_cn");
|
String name_kn = request.getParameter("name_kn");
|
String name_jn = request.getParameter("name_jn");
|
String state = request.getParameter("state");
|
// 资金密码
|
String login_safeword = request.getParameter("login_safeword");
|
|
ModelAndView model = new ModelAndView();
|
model.addObject("id", id);
|
model.addObject("name", name);
|
model.addObject("img", img);
|
model.addObject("cycle", cycle);
|
model.addObject("daily_rate", daily_rate);
|
model.addObject("daily_rate_max", daily_rate_max);
|
model.addObject("today_rate", today_rate);
|
model.addObject("default_ratio", default_ratio);
|
model.addObject("investment_min", investment_min);
|
model.addObject("investment_max", investment_max);
|
model.addObject("name_en", name_en);
|
model.addObject("name_cn", name_cn);
|
model.addObject("name_kn", name_kn);
|
model.addObject("name_jn", name_jn);
|
model.addObject("state", state);
|
|
try {
|
|
String error = this.verification(name, img, cycle, daily_rate, daily_rate_max, today_rate,
|
default_ratio, investment_min, investment_max, login_safeword);
|
if (!StringUtils.isNullOrEmpty(error)) {
|
throw new BusinessException(error);
|
}
|
|
Finance finance = this.financeService.findById(id);
|
|
finance.setName(name);
|
finance.setName_en(name_en);
|
finance.setName_cn(name_cn);
|
finance.setName_kn(name_kn);
|
finance.setName_jn(name_jn);
|
finance.setImg(img);
|
finance.setCycle(Integer.valueOf(cycle));
|
finance.setDaily_rate(Double.valueOf(daily_rate));
|
finance.setDaily_rate_max(Double.valueOf(daily_rate_max));
|
finance.setToday_rate(Double.valueOf(today_rate));
|
finance.setDefault_ratio(Double.valueOf(default_ratio));
|
finance.setInvestment_min(Double.valueOf(investment_min));
|
finance.setInvestment_max(Double.valueOf(investment_max));
|
finance.setState(state);
|
|
this.financeService.update(finance, login_safeword, this.getUsername_login());
|
|
Log log = new Log();
|
log.setCategory(Constants.LOG_CATEGORY_OPERATION);
|
log.setUsername(this.getUsername_login());
|
log.setOperator(this.getUsername_login());
|
log.setLog("管理员手动修改理财配置,ip:["+this.getIp(getRequest())+"]");
|
logService.saveSync(log);
|
|
} catch (BusinessException e) {
|
model.addObject("error", e.getMessage());
|
model.setViewName("finance_update");
|
return model;
|
} catch (Throwable t) {
|
logger.error("update error ", t);
|
model.addObject("error", "程序错误");
|
model.setViewName("finance_update");
|
return model;
|
}
|
|
model.addObject("message", "操作成功");
|
model.setViewName("redirect:/" + action + "list.action");
|
return model;
|
}
|
|
/**
|
* 删除 理财配置
|
*/
|
@RequestMapping(action + "toDelete.action")
|
public ModelAndView toDelete(HttpServletRequest request) {
|
String id = request.getParameter("id");
|
String login_safeword = request.getParameter("login_safeword");
|
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("redirect:/" + action + "list.action");
|
|
try {
|
|
if (StringUtils.isNullOrEmpty(login_safeword)) {
|
throw new BusinessException("请输入登录人资金密码");
|
}
|
|
this.financeService.delete(id, login_safeword, this.getUsername_login());
|
|
Log log = new Log();
|
log.setCategory(Constants.LOG_CATEGORY_OPERATION);
|
log.setUsername(this.getUsername_login());
|
log.setOperator(this.getUsername_login());
|
log.setLog("管理员手动删除理财配置,ip:["+this.getIp(getRequest())+"]");
|
logService.saveSync(log);
|
|
} 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", "操作成功");
|
return modelAndView;
|
}
|
|
protected String verification(String name, String img, String cycle, String daily_rate, String daily_rate_max, String today_rate,
|
String default_ratio, String investment_min, String investment_max, String login_safeword) {
|
if (StringUtils.isEmptyString(name)) {
|
return "请输入产品名称";
|
}
|
if (StringUtils.isEmptyString(img)) {
|
return "请上传产品图片";
|
}
|
if (StringUtils.isEmptyString(login_safeword)) {
|
return "请输入登录人资金密码";
|
}
|
if (StringUtils.isNullOrEmpty(cycle)
|
|| !StringUtils.isInteger(cycle)
|
|| Integer.valueOf(cycle) <= 0) {
|
return "周期不能小于等于0天";
|
}
|
if (StringUtils.isNullOrEmpty(daily_rate)
|
|| !StringUtils.isDouble(daily_rate)
|
|| Double.valueOf(daily_rate) < 0) {
|
return "日利率不能小于0";
|
}
|
if (StringUtils.isNullOrEmpty(daily_rate_max)
|
|| !StringUtils.isDouble(daily_rate_max)
|
|| Double.valueOf(daily_rate_max) < 0) {
|
return "日利率不能小于0";
|
}
|
if (StringUtils.isNullOrEmpty(today_rate)
|
|| !StringUtils.isDouble(today_rate)
|
|| Double.valueOf(today_rate) < 0) {
|
return "今日利率不能小于0";
|
}
|
if (StringUtils.isNullOrEmpty(default_ratio)
|
|| !StringUtils.isDouble(default_ratio)
|
|| Double.valueOf(default_ratio) < 0) {
|
return "违约结算比例不能小于0";
|
}
|
if (StringUtils.isNullOrEmpty(investment_min)
|
|| !StringUtils.isDouble(investment_min)
|
|| Double.valueOf(investment_min) < 0) {
|
return "投资金额区间不能小于0";
|
}
|
if (StringUtils.isNullOrEmpty(investment_max)
|
|| !StringUtils.isDouble(investment_max)
|
|| Double.valueOf(investment_max) < 0) {
|
return "投资金额区间不能小于0";
|
}
|
if (Double.valueOf(investment_max) <= Double.valueOf(investment_min)) {
|
return "投资金额区间错误";
|
}
|
return null;
|
}
|
|
}
|