Commit 3bed3cc7 by Java-聂换换

汇率

parent 369e1982
......@@ -17,5 +17,8 @@ import java.util.Map;
@MyBatisDao
public interface YoukaRateDao extends CrudDao<YoukaRate> {
public List<YoukaRate> getRateByUserLevel(YoukaRate youkaRate);
@MapKey("userLevel")
public Map<String,YoukaRate> getRateByUserLevel(YoukaRate youkaRate);
public YoukaRate getRateByCode(YoukaRate youkaRate);
}
package com.thinkgem.jeesite.modules.youka.entity;
import java.util.ArrayList;
import java.util.List;
public class UserLevel {
private String name;
private String level;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public static List<UserLevel> getList(){
List<UserLevel> list = new ArrayList<>();
UserLevel userLevelS = new UserLevel();
userLevelS.setLevel("S");
userLevelS.setName("管理员");
UserLevel userLevelA = new UserLevel();
userLevelA.setLevel("A");
userLevelA.setName("王者");
UserLevel userLevelB = new UserLevel();
userLevelB.setLevel("B");
userLevelB.setName("钻石");
UserLevel userLevelC = new UserLevel();
userLevelC.setLevel("C");
userLevelC.setName("黄金");
UserLevel userLevelD = new UserLevel();
userLevelD.setLevel("D");
userLevelD.setName("白银");
UserLevel userLevelE = new UserLevel();
userLevelE.setLevel("E");
userLevelE.setName("青铜");
list.add(userLevelA);
list.add(userLevelB);
list.add(userLevelC);
list.add(userLevelD);
list.add(userLevelE);
list.add(userLevelS);
return list;
}
}
......@@ -8,6 +8,8 @@ import java.util.List;
public class YoukaRate extends DataEntity<YoukaRate> {
private String userLevel; // 用户等级
private String payMethod; // 支付方式
private String payChannel; // 支付方式
private String payChannelName;
private String rate; // 费率
private String balance; // 结算
private String singleLimit; // 单笔限额
......@@ -17,6 +19,10 @@ public class YoukaRate extends DataEntity<YoukaRate> {
private String code;
private String rateType;
private String siglePrice;
private List<YoukaRate> list;
public YoukaRate() {
......@@ -98,4 +104,36 @@ public class YoukaRate extends DataEntity<YoukaRate> {
public void setCode(String code) {
this.code = code;
}
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
public String getPayChannelName() {
return payChannelName;
}
public void setPayChannelName(String payChannelName) {
this.payChannelName = payChannelName;
}
public String getRateType() {
return rateType;
}
public void setRateType(String rateType) {
this.rateType = rateType;
}
public String getSiglePrice() {
return siglePrice;
}
public void setSiglePrice(String siglePrice) {
this.siglePrice = siglePrice;
}
}
......@@ -24,16 +24,16 @@ import java.util.Map;
@Transactional(readOnly = true)
public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> {
public List<YoukaRate> getRateByUserLevel(YoukaRate entity) {
List<YoukaRate> list = dao.getRateByUserLevel(entity);
return list;
public Map<String,YoukaRate> getRateByUserLevel(YoukaRate entity) {
Map<String,YoukaRate> map = dao.getRateByUserLevel(entity);
return map;
}
@Transactional(readOnly = false)
public void saveRate(YoukaRate entity){
List<YoukaRate> list = entity.getList();
for(YoukaRate youkaRate:list){
youkaRate.setUserLevel(entity.getUserLevel());
public void saveRate(YoukaRate youkaRate){
// List<YoukaRate> list = entity.getList();
// for(YoukaRate youkaRate:list){
// youkaRate.setUserLevel(entity.getUserLevel());
if(youkaRate.getId() == null || "".equals(youkaRate.getId())){
youkaRate.setCode(IdGen.randomBase62(64));
youkaRate.preInsert();
......@@ -42,6 +42,12 @@ public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> {
youkaRate.preUpdate();
dao.update(youkaRate);
}
}
// }
}
public YoukaRate getRateByCode(String code){
YoukaRate youkaRate = new YoukaRate();
youkaRate.setCode(code);
return dao.getRateByCode(youkaRate);
}
}
......@@ -2,6 +2,8 @@ package com.thinkgem.jeesite.modules.youka.web;
import com.thinkgem.jeesite.common.utils.StringUtils;
import com.thinkgem.jeesite.common.web.BaseController;
import com.thinkgem.jeesite.modules.sys.utils.DictUtils;
import com.thinkgem.jeesite.modules.youka.entity.UserLevel;
import com.thinkgem.jeesite.modules.youka.entity.YoukaRate;
import com.thinkgem.jeesite.modules.youka.service.YoukaRateService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
......@@ -11,7 +13,9 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author niehh
......@@ -26,36 +30,71 @@ public class YoukaRateController extends BaseController {
@Autowired
private YoukaRateService youkaRateService;
// @RequiresPermissions("youka:rate:view")
// @RequestMapping(value = "form")
// public String form(YoukaRate youkaRate, Model model){
//
// if(youkaRate==null){
// youkaRate = new YoukaRate();
// }
// if(StringUtils.isBlank(youkaRate.getUserLevel()) ){
// youkaRate.setUserLevel("S");
// }
// if(StringUtils.isBlank(youkaRate.getPayMethod())){
// youkaRate.setPayMethod("quick");
// }
// if(StringUtils.isBlank(youkaRate.getPayChannel())){
// youkaRate.setPayChannel("quick_no_integral");
// }
// List<YoukaRate> list = youkaRateService.getRateByUserLevel(youkaRate);
//
// model.addAttribute("list",list);
//
// return "";
// }
@RequiresPermissions("youka:rate:view")
@RequestMapping(value = "form")
public String form(YoukaRate youkaRate, Model model){
@RequestMapping(value = "list")
public String list(YoukaRate youkaRate, Model model){
if(youkaRate==null){
youkaRate = new YoukaRate();
}
if(StringUtils.isBlank(youkaRate.getUserLevel()) ){
youkaRate.setUserLevel("S");
if(StringUtils.isBlank(youkaRate.getPayMethod())){
youkaRate.setPayMethod("quick");
}
if(StringUtils.isBlank(youkaRate.getPayChannel())){
youkaRate.setPayChannel("quick_no_integral");
}
List<YoukaRate> list = youkaRateService.getRateByUserLevel(youkaRate);
Map<String,YoukaRate> map = youkaRateService.getRateByUserLevel(youkaRate);
model.addAttribute("",list);
model.addAttribute("map",map);
return "";
}
List<UserLevel> list = new ArrayList<>();
model.addAttribute("userLevels",UserLevel.getList());
model.addAttribute("youkaRate",youkaRate);
model.addAttribute("HL3rates", DictUtils.getDictList("HL3_rate"));
return "modules/youka/rate/rateList";
}
@RequiresPermissions("youka:rate:save")
@RequestMapping(value = "save")
public String save(YoukaRate youkaRate, Model model, RedirectAttributes redirectAttributes){
if(youkaRate ==null || StringUtils.isBlank(youkaRate.getUserLevel()) || youkaRate.getList() == null || youkaRate.getList().size() == 0){
if(youkaRate ==null || StringUtils.isBlank(youkaRate.getUserLevel()) ){
addMessage(model, "信息为空");
return form(youkaRate, model);
return list(youkaRate, model);
}
try{
youkaRateService.saveRate(youkaRate);
}catch (Exception e){
addMessage(model, "保存失败");
e.printStackTrace();
return form(youkaRate, model);
return list(youkaRate, model);
}
return "";
return list(youkaRate, model);
}
}
......@@ -126,7 +126,7 @@ public class YoukaUserController extends BaseController {
* @param model
* @return
*/
@RequiresPermissions("youka:user:view")
@RequiresPermissions("youka:user:save")
@RequestMapping(value = "save")
public String save(YoukaUser youkaUser, Model model, RedirectAttributes redirectAttributes){
// 判断业务入参是否为空
......
......@@ -6,9 +6,10 @@
yr.id AS "id",
yr.code AS "code",
yr.user_level AS userLevel,
yr.pay_method AS payMethod,
yr.rate,
yr.balance,
yr.rate_type,
yr.sigle_price,
yr.single_limit AS singleLimit,
yr.day_limit AS dayLimit,
yr.create_date AS created,
......@@ -30,31 +31,68 @@
SELECT
sd.value AS payMethod,
sd.label AS payMethodName,
sdc.value AS payChannel,
sdc.label AS payChannelName,
yr.id AS "id",
yr.code AS "code",
yr.user_level AS userLevel,
yr.rate,
yr.balance,
yr.rate_type,
yr.sigle_price,
yr.single_limit AS singleLimit,
yr.day_limit AS dayLimit,
yr.create_date AS created,
yr.update_date AS updateDate
FROM
sys_dict sd
LEFT JOIN youka_rate yr ON sd.value = yr.pay_method
sys_dict sdc
LEFT JOIN youka_rate yr ON sdc.value = yr.pay_channel
LEFT JOIN sys_dict sd ON sd.value = yr.pay_method
WHERE
sd.type = 'pay_method'
AND (yr.user_level = #{userLevel} OR ISNULL(yr.id))
ORDER BY sd.sort
AND sdc.TYPE = 'pay_channel'
AND yr.pay_method = #{payMethod}
AND yr.pay_channel = #{payChannel}
ORDER BY yr.user_level
</select>
<select id="getRateByCode" resultType="com.thinkgem.jeesite.modules.youka.entity.YoukaRate">
SELECT
sd.value AS payMethod,
sd.label AS payMethodName,
sdc.value AS payChannel,
sdc.label AS payChannelName,
yr.id AS "id",
yr.code AS "code",
yr.user_level AS userLevel,
yr.rate,
yr.balance,
yr.rate_type,
yr.sigle_price,
yr.single_limit AS singleLimit,
yr.day_limit AS dayLimit,
yr.create_date AS created,
yr.update_date AS updateDate
FROM
youka_rate yr
LEFT JOIN sys_dict sd ON sd.value = yr.pay_method
LEFT JOIN sys_dict sdc ON sdc.value = yr.pay_channel
WHERE
sd.type = 'pay_method'
AND sdc.TYPE = 'pay_channel'
AND code = #{code}
</select>
<insert id="insert">
INSERT INTO youka_rate(
code,
user_level,
pay_method ,
pay_channel,
rate,
rate_type,
sigle_price,
balance,
single_limit,
day_limit,
......@@ -66,7 +104,10 @@
#{code},
#{userLevel},
#{payMethod},
#{payChannel},
#{rate} ,
#{rateType} ,
#{siglePrice},
#{balance} ,
#{singleLimit},
#{dayLimit},
......
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
<head>
<title>费率管理</title>
<meta name="decorator" content="default"/>
<style>
.input_border{
border-radius:4px;
border:1px solid #c3c3c3;
height: 25px;
}
.input_border:focus{
border:1px solid #0bbbee;
}
.input_s{
width: 50px;
}
.input_m{
width: 100px;
}
.input_l{
width: 150px;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$(".save").click(function () {
console.log(",,,,,")
$this = $(this);
var id = $this.attr("id");
$("#form-save"+id).submit();
console.log( $("#form-save"+id))
})
});
function page(n,s){
$("#searchForm").attr("action","${ctx}/youka/rate/list");
$("#searchForm").submit();
return false;
}
</script>
</head>
<body>
<%--<div id="importBox" class="hide">--%>
<%--<form id="importForm" action="${ctx}/youka/user/import" method="post" enctype="multipart/form-data"--%>
<%--class="form-search" style="padding-left:20px;text-align:center;" onsubmit="loading('正在导入,请稍等...');"><br/>--%>
<%--<input id="uploadFile" name="file" type="file" style="width:330px"/><br/><br/>  --%>
<%--<input id="btnImportSubmit" class="btn btn-primary" type="submit" value=" 导 入 "/>--%>
<%--<a href="${ctx}/youka/user/import/template">下载模板</a>--%>
<%--</form>--%>
<%--</div>--%>
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/youka/rate/list">费率列表</a></li>
</ul>
<form:form id="searchForm" modelAttribute="youkaRate" action="${ctx}/youka/rate/list" method="post" class="breadcrumb form-search ">
<ul class="ul-form">
<%--<li>--%>
<%--<form:select path="level" cssStyle="width: 100px">--%>
<%--<form:option value="">--%>
<%--全部--%>
<%--</form:option>--%>
<%--<form:option value="S">--%>
<%--管理员--%>
<%--</form:option>--%>
<%--<form:option value="A">--%>
<%--王者会员--%>
<%--</form:option>--%>
<%--<form:option value="B">--%>
<%--钻石会员--%>
<%--</form:option>--%>
<%--<form:option value="C">--%>
<%--黄金会员--%>
<%--</form:option>--%>
<%--<form:option value="D">--%>
<%--白银会员--%>
<%--</form:option>--%>
<%--<form:option value="E">--%>
<%--青铜会员--%>
<%--</form:option>--%>
<%--</form:select></li>--%>
<%--<li class="clearfix"></li>--%>
<li><label>支付方式:</label><form:select cssStyle="width: 100px;" path="payMethod" items="${fns:getDictList('pay_method')}" itemLabel="label" itemValue="value" htmlEscape="false" />
</li>
<li><label>支付渠道:</label><form:select cssStyle="width: 150px;" path="payChannel" items="${fns:getDictList('pay_channel')}" itemLabel="label" itemValue="value" htmlEscape="false" />
</li>
<li class="btns"><input id="btnSubmit" class="btn btn-primary" type="submit" value="查询" onclick="return page();"/>
<%--<input id="btnExport" class="btn btn-primary" type="button" value="导出"/>--%>
<%--<input id="btnImport" class="btn btn-primary" type="button" value="导入"/>--%>
</li>
<li class="clearfix"></li>
</ul>
</form:form>
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<thead><tr><th>序号</th><th class="sort-column login_name">用户类型</th><th class="sort-column name">汇率</th><th>汇率类型</th><th>单笔价格</th><td>结算</td><td>单笔限额</td><td>当天额度</td><shiro:hasPermission name="sys:user:edit"><th>操作</th></shiro:hasPermission></tr></thead>
<tbody>
<c:forEach items="${userLevels}" var="userLevel" varStatus="indexs">
<tr>
<form action="${ctx}/youka/rate/save" id="form-save${indexs.index}" method="post" class="breadcrumb form-save">
<c:set var="rateEntity" value="${map[userLevel.level]}"></c:set>
<td>${indexs.index}</td>
<td>
<input name="payMethod" value="${youkaRate.payMethod}" style="display: none"/>
<input name="code" value="${youkaRate.code}" style="display: none"/>
<input name="payChannel" value="${youkaRate.payChannel}" style="display: none"/>
<input name="userLevel" value="${userLevel.level}" style="display: none"/>
<span>${userLevel.name}</span>
</td>
<td><input class="input_border input_m" name="rate" value="${rateEntity.rate}"></td>
<td>
<select name="rateType" style="width: 120px;">
<c:forEach items="${HL3rates}" var="HL3rate">
<c:if test="${HL3rate.value eq rateEntity.rateType}">
<option selected="selected" value="${HL3rate.value}">${HL3rate.label}</option>
</c:if>
<c:if test="${HL3rate.value ne rateEntity.rateType}">
<option value="${HL3rate.value}">${HL3rate.label}</option>
</c:if>
</c:forEach>
</select>
<%--<input class="input_border input_m" name="rateType" value="${rateEntity.rateType}">--%>
</td>
<td>
<input class="input_border input_m" name="siglePrice" value="${rateEntity.siglePrice}">
</td>
<td><input class="input_border input_m" name="balance" value="${rateEntity.balance}"></td>
<td>
<input class="input_border input_m" name="singleLimit" value="${rateEntity.singleLimit}">
</td>
<td>
<input class="input_border input_m" name="dayLimit" value="${rateEntity.dayLimit}">
</td>
<%--
<td>${user.roleNames}</td> --%>
<td>
<shiro:hasPermission name="youka:rate:save">
<input id="${indexs.index}" type="button" class="save btn" value="保存">
</shiro:hasPermission>
</td>
</form>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
\ No newline at end of file
......@@ -40,7 +40,7 @@
<%--</div>--%>
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/youka/user/list">用户列表</a></li>
<shiro:hasPermission name="sys:user:edit"><li><a href="${ctx}/youka/user/form">用户添加</a></li></shiro:hasPermission>
<shiro:hasPermission name="youka:user:view"><li><a href="${ctx}/youka/user/form">用户添加</a></li></shiro:hasPermission>
</ul>
<form:form id="searchForm" modelAttribute="youkaUser" action="${ctx}/youka/user/list" method="post" class="breadcrumb form-search ">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
......@@ -128,7 +128,7 @@
<c:if test="${user.belongTo eq 'S'}">盛世互通</c:if>
</td><%--
<td>${user.roleNames}</td> --%>
<shiro:hasPermission name="sys:user:edit"><td>
<shiro:hasPermission name="youka:rate:save"><td>
<a href="${ctx}/youka/user/modify?id=${user.id}">查看</a>
<a href="${ctx}/youka/user/real/name/audit?id=${user.id}" >审核</a>
<a href="${ctx}/youka/user/form?id=${user.id}">禁用</a>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment