Commit 3bed3cc7 by Java-聂换换

汇率

parent 369e1982
...@@ -17,5 +17,8 @@ import java.util.Map; ...@@ -17,5 +17,8 @@ import java.util.Map;
@MyBatisDao @MyBatisDao
public interface YoukaRateDao extends CrudDao<YoukaRate> { 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; ...@@ -8,6 +8,8 @@ import java.util.List;
public class YoukaRate extends DataEntity<YoukaRate> { public class YoukaRate extends DataEntity<YoukaRate> {
private String userLevel; // 用户等级 private String userLevel; // 用户等级
private String payMethod; // 支付方式 private String payMethod; // 支付方式
private String payChannel; // 支付方式
private String payChannelName;
private String rate; // 费率 private String rate; // 费率
private String balance; // 结算 private String balance; // 结算
private String singleLimit; // 单笔限额 private String singleLimit; // 单笔限额
...@@ -17,6 +19,10 @@ public class YoukaRate extends DataEntity<YoukaRate> { ...@@ -17,6 +19,10 @@ public class YoukaRate extends DataEntity<YoukaRate> {
private String code; private String code;
private String rateType;
private String siglePrice;
private List<YoukaRate> list; private List<YoukaRate> list;
public YoukaRate() { public YoukaRate() {
...@@ -98,4 +104,36 @@ public class YoukaRate extends DataEntity<YoukaRate> { ...@@ -98,4 +104,36 @@ public class YoukaRate extends DataEntity<YoukaRate> {
public void setCode(String code) { public void setCode(String code) {
this.code = 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; ...@@ -24,16 +24,16 @@ import java.util.Map;
@Transactional(readOnly = true) @Transactional(readOnly = true)
public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> { public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> {
public List<YoukaRate> getRateByUserLevel(YoukaRate entity) { public Map<String,YoukaRate> getRateByUserLevel(YoukaRate entity) {
List<YoukaRate> list = dao.getRateByUserLevel(entity); Map<String,YoukaRate> map = dao.getRateByUserLevel(entity);
return list; return map;
} }
@Transactional(readOnly = false) @Transactional(readOnly = false)
public void saveRate(YoukaRate entity){ public void saveRate(YoukaRate youkaRate){
List<YoukaRate> list = entity.getList(); // List<YoukaRate> list = entity.getList();
for(YoukaRate youkaRate:list){ // for(YoukaRate youkaRate:list){
youkaRate.setUserLevel(entity.getUserLevel()); // youkaRate.setUserLevel(entity.getUserLevel());
if(youkaRate.getId() == null || "".equals(youkaRate.getId())){ if(youkaRate.getId() == null || "".equals(youkaRate.getId())){
youkaRate.setCode(IdGen.randomBase62(64)); youkaRate.setCode(IdGen.randomBase62(64));
youkaRate.preInsert(); youkaRate.preInsert();
...@@ -42,6 +42,12 @@ public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> { ...@@ -42,6 +42,12 @@ public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> {
youkaRate.preUpdate(); youkaRate.preUpdate();
dao.update(youkaRate); 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; ...@@ -2,6 +2,8 @@ package com.thinkgem.jeesite.modules.youka.web;
import com.thinkgem.jeesite.common.utils.StringUtils; import com.thinkgem.jeesite.common.utils.StringUtils;
import com.thinkgem.jeesite.common.web.BaseController; 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.entity.YoukaRate;
import com.thinkgem.jeesite.modules.youka.service.YoukaRateService; import com.thinkgem.jeesite.modules.youka.service.YoukaRateService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
...@@ -11,7 +13,9 @@ import org.springframework.ui.Model; ...@@ -11,7 +13,9 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author niehh * @author niehh
...@@ -26,36 +30,71 @@ public class YoukaRateController extends BaseController { ...@@ -26,36 +30,71 @@ public class YoukaRateController extends BaseController {
@Autowired @Autowired
private YoukaRateService youkaRateService; 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") @RequiresPermissions("youka:rate:view")
@RequestMapping(value = "form") @RequestMapping(value = "list")
public String form(YoukaRate youkaRate, Model model){ public String list(YoukaRate youkaRate, Model model){
if(youkaRate==null){ if(youkaRate==null){
youkaRate = new YoukaRate(); 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){ 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, "信息为空"); addMessage(model, "信息为空");
return form(youkaRate, model); return list(youkaRate, model);
} }
try{ try{
youkaRateService.saveRate(youkaRate); youkaRateService.saveRate(youkaRate);
}catch (Exception e){ }catch (Exception e){
addMessage(model, "保存失败"); addMessage(model, "保存失败");
e.printStackTrace(); e.printStackTrace();
return form(youkaRate, model); return list(youkaRate, model);
} }
return ""; return list(youkaRate, model);
} }
} }
...@@ -126,7 +126,7 @@ public class YoukaUserController extends BaseController { ...@@ -126,7 +126,7 @@ public class YoukaUserController extends BaseController {
* @param model * @param model
* @return * @return
*/ */
@RequiresPermissions("youka:user:view") @RequiresPermissions("youka:user:save")
@RequestMapping(value = "save") @RequestMapping(value = "save")
public String save(YoukaUser youkaUser, Model model, RedirectAttributes redirectAttributes){ public String save(YoukaUser youkaUser, Model model, RedirectAttributes redirectAttributes){
// 判断业务入参是否为空 // 判断业务入参是否为空
......
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
yr.id AS "id", yr.id AS "id",
yr.code AS "code", yr.code AS "code",
yr.user_level AS userLevel, yr.user_level AS userLevel,
yr.pay_method AS payMethod,
yr.rate, yr.rate,
yr.balance, yr.balance,
yr.rate_type,
yr.sigle_price,
yr.single_limit AS singleLimit, yr.single_limit AS singleLimit,
yr.day_limit AS dayLimit, yr.day_limit AS dayLimit,
yr.create_date AS created, yr.create_date AS created,
...@@ -30,31 +31,68 @@ ...@@ -30,31 +31,68 @@
SELECT SELECT
sd.value AS payMethod, sd.value AS payMethod,
sd.label AS payMethodName, sd.label AS payMethodName,
sdc.value AS payChannel,
sdc.label AS payChannelName,
yr.id AS "id", yr.id AS "id",
yr.code AS "code", yr.code AS "code",
yr.user_level AS userLevel, yr.user_level AS userLevel,
yr.rate, yr.rate,
yr.balance, yr.balance,
yr.rate_type,
yr.sigle_price,
yr.single_limit AS singleLimit, yr.single_limit AS singleLimit,
yr.day_limit AS dayLimit, yr.day_limit AS dayLimit,
yr.create_date AS created, yr.create_date AS created,
yr.update_date AS updateDate yr.update_date AS updateDate
FROM FROM
sys_dict sd sys_dict sdc
LEFT JOIN youka_rate yr ON sd.value = yr.pay_method LEFT JOIN youka_rate yr ON sdc.value = yr.pay_channel
LEFT JOIN sys_dict sd ON sd.value = yr.pay_method
WHERE WHERE
sd.type = 'pay_method' sd.type = 'pay_method'
AND (yr.user_level = #{userLevel} OR ISNULL(yr.id)) AND sdc.TYPE = 'pay_channel'
ORDER BY sd.sort AND yr.pay_method = #{payMethod}
AND yr.pay_channel = #{payChannel}
ORDER BY yr.user_level
</select> </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 id="insert">
INSERT INTO youka_rate( INSERT INTO youka_rate(
code, code,
user_level, user_level,
pay_method , pay_method ,
pay_channel,
rate, rate,
rate_type,
sigle_price,
balance, balance,
single_limit, single_limit,
day_limit, day_limit,
...@@ -66,7 +104,10 @@ ...@@ -66,7 +104,10 @@
#{code}, #{code},
#{userLevel}, #{userLevel},
#{payMethod}, #{payMethod},
#{payChannel},
#{rate} , #{rate} ,
#{rateType} ,
#{siglePrice},
#{balance} , #{balance} ,
#{singleLimit}, #{singleLimit},
#{dayLimit}, #{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 @@ ...@@ -40,7 +40,7 @@
<%--</div>--%> <%--</div>--%>
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/youka/user/list">用户列表</a></li> <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> </ul>
<form:form id="searchForm" modelAttribute="youkaUser" action="${ctx}/youka/user/list" method="post" class="breadcrumb form-search "> <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}"/> <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
<c:if test="${user.belongTo eq 'S'}">盛世互通</c:if> <c:if test="${user.belongTo eq 'S'}">盛世互通</c:if>
</td><%-- </td><%--
<td>${user.roleNames}</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/modify?id=${user.id}">查看</a>
<a href="${ctx}/youka/user/real/name/audit?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> <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