Commit f27714bc by tang

增加查询,汇总等功能

parent 4bc3df1e
......@@ -22,4 +22,6 @@ public interface YoukaBenefitDao extends CrudDao<YoukaBenefit>{
//按照条件获取分润之和(用户部分)
YoukaBenefit getBenefitSumUser(YoukaBenefit youkaBenefit);
}
......@@ -11,4 +11,6 @@ import java.util.List;
@MyBatisDao
public interface YoukaOrderDao extends CrudDao<OrderEntity>{
public List<OrderEntity> findList(OrderEntity orderEntity);
Double getSum(OrderEntity orderEntity);
}
......@@ -25,9 +25,9 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
private Date createDate;
private String startTime;
private Date startTime;
private String endTime;
private Date endTime;
private String code;
......@@ -44,14 +44,14 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
public OrderEntity() {
}
@ExcelField(title="创建时间", align=2, sort=25)
public Date getCreateDate(){
@ExcelField(title = "创建时间", align = 2, sort = 25)
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate){
this.createDate= createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public String getUserCode() {
......@@ -69,7 +69,8 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
public void setPayNo(String payNo) {
this.payNo = payNo;
}
@ExcelField(title="订单号", align=2, sort=20)
@ExcelField(title = "订单号", align = 2, sort = 20)
public String getPayCode() {
return payCode;
}
......@@ -85,7 +86,8 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
@ExcelField(title="支付状态", align=2, sort=50, dictType = "pay_status")
@ExcelField(title = "支付状态", align = 2, sort = 50, dictType = "pay_status")
public String getPayStatus() {
return payStatus;
}
......@@ -93,7 +95,8 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
public void setPayStatus(String payStatus) {
this.payStatus = payStatus;
}
@ExcelField(title="订单金额", align=2, sort=55)
@ExcelField(title = "订单金额", align = 2, sort = 55)
public String getAmount() {
return amount;
}
......@@ -134,7 +137,7 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
this.cardCode = cardCode;
}
@ExcelField(title="支付渠道", align=2, sort=45)
@ExcelField(title = "支付渠道", align = 2, sort = 45)
public String getPayChannelName() {
return payChannelName;
}
......@@ -150,7 +153,8 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
public void setPayMethod(String payMethod) {
this.payMethod = payMethod;
}
@ExcelField(title="支付方式", align=2, sort=40 )
@ExcelField(title = "支付方式", align = 2, sort = 40)
public String getPayMethodName() {
return payMethodName;
}
......@@ -159,19 +163,19 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
this.payMethodName = payMethodName;
}
public String getStartTime() {
public Date getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public String getEndTime() {
public Date getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
......@@ -182,7 +186,8 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
public void setCode(String code) {
this.code = code;
}
@ExcelField(title="产生分润", align=2, sort=60)
@ExcelField(title = "产生分润", align = 2, sort = 60)
public String getBenefitAmount() {
return benefitAmount;
}
......@@ -202,11 +207,13 @@ public class OrderEntity extends DataEntity<OrderEntity> implements Serializable
public String getBenefitDescribe() {
return benefitDescribe;
}
@ExcelField(title="分润去向", align=2, sort=65)
@ExcelField(title = "分润去向", align = 2, sort = 65)
public void setBenefitDescribe(String benefitDescribe) {
this.benefitDescribe = benefitDescribe;
}
@ExcelField(title="交易人", align=2, sort=30)
@ExcelField(title = "交易人", align = 2, sort = 30)
public String getNickname() {
return nickname;
}
......
package com.thinkgem.jeesite.modules.youka.service;
import com.thinkgem.jeesite.common.persistence.Page;
import com.thinkgem.jeesite.common.service.BaseService;
import com.thinkgem.jeesite.common.service.CrudService;
import com.thinkgem.jeesite.common.utils.DateUtils;
import com.thinkgem.jeesite.modules.sys.entity.User;
import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
import com.thinkgem.jeesite.modules.youka.dao.YoukaBenefitDao;
......@@ -17,14 +15,13 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Transactional(readOnly = true)
public class YoukaBenefitService extends CrudService<YoukaBenefitDao ,YoukaBenefit> {
public class YoukaBenefitService extends CrudService<YoukaBenefitDao, YoukaBenefit> {
@Autowired
private YoukaUserDao youkaUserDao;
......@@ -60,12 +57,14 @@ public class YoukaBenefitService extends CrudService<YoukaBenefitDao ,YoukaBenef
public String getBalance(YoukaBenefit entity) {
// 总收益
entity.setBenefitType("A");
YoukaBenefit benefitEntityA = dao.getBenefitSum(entity);
YoukaBenefit youkaBenefit = new YoukaBenefit();
youkaBenefit.setUserCode(entity.getUserCode());
youkaBenefit.setBenefitType("A");
YoukaBenefit benefitEntityA = dao.getBenefitSum(youkaBenefit);
// 总提现
entity.setBenefitType("M");
YoukaBenefit benefitEntityM = dao.getBenefitSum(entity);
youkaBenefit.setBenefitType("M");
YoukaBenefit benefitEntityM = dao.getBenefitSum(youkaBenefit);
// 余额 = 总收益-总提现
if (benefitEntityA == null) {
......@@ -74,15 +73,8 @@ public class YoukaBenefitService extends CrudService<YoukaBenefitDao ,YoukaBenef
if (benefitEntityA.getAmount() == null) {
benefitEntityA.setAmount("0.00");
}
if (benefitEntityM == null) {
return "0.00";
} else {
if (benefitEntityM.getAmount() == null) {
benefitEntityM.setAmount("0.00");
}
DecimalFormat df = new DecimalFormat("######0.00");
return (df.format(Double.valueOf(benefitEntityA.getAmount()) - Double.valueOf(benefitEntityM.getAmount())));
}
DecimalFormat df = new DecimalFormat("######0.00000");
return (df.format(Double.valueOf(benefitEntityA.getAmount()) - Double.valueOf(benefitEntityM==null?"0":benefitEntityM.getAmount())));
}
}
......@@ -100,16 +92,18 @@ public class YoukaBenefitService extends CrudService<YoukaBenefitDao ,YoukaBenef
youkaBenefit.setCode("B");
}
Page<YoukaBenefit> pages = super.findPage(page,youkaBenefit);
Map<String,String> map = new HashMap<>();
if(page != null && pages.getList() != null && pages.getList().size()>0){
for(YoukaBenefit youkaBenefit1:pages.getList()){
if(StringUtils.isNotBlank(map.get(youkaBenefit1.getUserCode()))){
youkaBenefit.setCardCode("c");
Page<YoukaBenefit> pages = super.findPage(page, youkaBenefit);
Map<String, String> map = new HashMap<>();
if (page != null && pages.getList() != null && pages.getList().size() > 0) {
for (YoukaBenefit youkaBenefit1 : pages.getList()) {
if (StringUtils.isNotBlank(map.get(youkaBenefit1.getUserCode()))) {
youkaBenefit1.setBalance(map.get(youkaBenefit1.getUserCode()));
}else{
} else {
//设置余额
youkaBenefit1.setBalance(this.getBalance(youkaBenefit1));
map.put(youkaBenefit1.getUserCode(),youkaBenefit1.getBalance());
String balance = this.getBalance(youkaBenefit1);
youkaBenefit1.setBalance(balance);
map.put(youkaBenefit1.getUserCode(), youkaBenefit1.getBalance());
}
}
......@@ -117,27 +111,27 @@ public class YoukaBenefitService extends CrudService<YoukaBenefitDao ,YoukaBenef
return pages;
}
public Page<YoukaBenefit> findPageUser(Page<YoukaBenefit> page, YoukaBenefit youkaBenefit){
public Page<YoukaBenefit> findPageUser(Page<YoukaBenefit> page, YoukaBenefit youkaBenefit) {
//不同类型用户所看到分润不同
// 管理员看到的是所有的,王者看到的是旗下所有钻石收益,钻石看到的是下一级推荐的收益
// youkaUserDao
User user = UserUtils.getUser();
if(!StringUtils.isBlank(user.getOffice().getName()) ){
if (!StringUtils.isBlank(user.getOffice().getName())) {
if (user.getOffice().getName().equals("王者用户")){
if (user.getOffice().getName().equals("王者用户")) {
youkaBenefit.setUserCode(user.getPhone());
}
if (user.getOffice().getName().equals("钻石用户")){
if (user.getOffice().getName().equals("钻石用户")) {
youkaBenefit.setUserCode(user.getPhone());
}
}
Page<YoukaBenefit> pages = super.findPage(page,youkaBenefit);
Page<YoukaBenefit> pages = super.findPage(page, youkaBenefit);
List<YoukaBenefit> list = page.getList();
if (list.size()>0){
for (YoukaBenefit entity:list) {
if (list.size() > 0) {
for (YoukaBenefit entity : list) {
YoukaUser youkaUser = youkaUserDao.getUserByOrderCode(entity.getOrderEntity().getPayCode());
if (youkaUser!= null){
if (youkaUser != null) {
OrderEntity orderEntity = entity.getOrderEntity();
orderEntity.setNickname(youkaUser.getMobile());
entity.setOrderEntity(orderEntity);
......
......@@ -79,4 +79,9 @@ public class YoukaOrderService extends CrudService<YoukaOrderDao, OrderEntity> {
return page;
}
public Double getSum(OrderEntity orderEntity) {
Double sum = dao.getSum(orderEntity);
return sum;
}
}
......@@ -52,8 +52,10 @@ public class YoukaOrderController extends BaseController {
@RequestMapping(value = {"list", ""})
public String list(OrderEntity orderEntity, HttpServletRequest request, HttpServletResponse response, Model model) {
Page<OrderEntity> page = youkaOrderService.findPage(new Page<OrderEntity>(request, response), orderEntity);
Double allMoney = youkaOrderService.getSum(orderEntity);
model.addAttribute("page", page);
model.addAttribute("orderEntity", orderEntity);
request.setAttribute("allMoney",allMoney);
return "modules/youka/order/orderList";
}
......
......@@ -26,26 +26,14 @@
LEFT JOIN sys_dict sd ON sd.`VALUE` = o.pay_channel
LEFT JOIN youka_users yu ON yu.code = yb.user_code
WHERE o.del_flag = 0
-- AND o.pay_status = 2
<!--<if test="userCode != null and userCode != '' and code == 'A'">-->
<!--AND yb.user_code IN (SELECT `code` FROM `youka_users` WHERE FIND_IN_SET(( SELECT a.id FROM youka_users a WHERE a.mobile = #{userCode} ), recommended_path );)-->
<!--</if>-->
<if test="cardCode != null and cardCode !='' ">
AND o.pay_status = 2
</if>
<if test="userCode != null and userCode != ''">
AND yb.user_code = (SELECT code FROM youka_users y1 WHERE y1.mobile = #{userCode})
<!--王者用户 获取的是钻石级别用户的所有收益百分比2% -->
<!--<if test='code != null and code != "" and code == "A"'>-->
<!--AND yb.user_code IN (SELECT `code` FROM `youka_users` y1 WHERE y1.recommended_mobile IN (SELECT y2.mobile FROM `youka_users` y2 WHERE y2.recommended_mobile = #{userCode} AND y2.`level` = "B"))-->
<!--</if>-->
<!--&lt;!&ndash;钻石用户 获取的是所有下一级用户的收益的百分比2% &ndash;&gt;-->
<!--<if test='code != null and code != "" and code == "B"'>-->
<!--AND yb.user_code IN (SELECT y.code FROM youka_users y WHERE y.recommended_mobile = #{userCode})-->
<!--</if>-->
<!--AND yb.benefit_type = "A"-->
</if>
<!--<if test="userCode != null and userCode != '' and code == 'B'">-->
<!--AND yb.user_code IN (SELECT y.code FROM youka_users y WHERE y.recommended_mobile = #{userCode})-->
<!--</if>-->
<if test="orderEntity!=null and orderEntity.payChannel != null and orderEntity.payChannel != ''">
AND o.pay_channel = #{payChannel}
</if>
......@@ -103,38 +91,42 @@
<select id="getBenefitSum" resultType="com.thinkgem.jeesite.modules.youka.entity.YoukaBenefit">
SELECT
SUM(amount) AS amount
FROM youka_benefit
WHERE user_code = #{userCode}
AND del_flag = 0
SUM(b.amount) AS amount
FROM youka_benefit b
LEFT JOIN `youka_orders` o ON b.order_code = o.`code`
WHERE b.user_code = #{userCode}
AND o.pay_status = 2
AND b.del_flag = 0
AND benefit_type = #{benefitType}
<if test="benefitStatus != null and benefitStatus != ''">
AND benefit_status = #{benefitStatus}
AND b.benefit_status = #{benefitStatus}
</if>
<if test="startTime != null and startTime != ''">
AND create_date >= #{startTime}
AND b.create_date >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND create_date &lt;= #{endTime}
AND b.create_date &lt;= #{endTime}
</if>
</select>
<select id="getBenefitSumUser" resultType="com.thinkgem.jeesite.modules.youka.entity.YoukaBenefit">
SELECT
SUM(amount) AS amount
FROM youka_benefit
WHERE user_code = #{userCode}
AND del_flag = 0
AND benefit_type = #{benefitType}
SUM(b.amount) AS amount
FROM youka_benefit b
LEFT JOIN `youka_orders` o ON b.order_code = o.`code`
WHERE b.user_code = #{userCode}
AND o.pay_status = 2
AND b.del_flag = 0
AND b.benefit_type = #{benefitType}
<if test="benefitStatus != null and benefitStatus != ''">
AND benefit_status = #{benefitStatus}
AND b.benefit_status = #{benefitStatus}
</if>
<if test="startTime != null and startTime != ''">
AND create_date >= #{startTime}
AND b.create_date >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND create_date &lt;= #{endTime}
AND b.create_date &lt;= #{endTime}
</if>
</select>
......
......@@ -4,7 +4,7 @@
<select id="findList" resultType="com.thinkgem.jeesite.modules.youka.entity.OrderEntity">
SELECT
o.pay_code,
DISTINCT o.pay_code,
o.pay_no,
o.pay_status,
o.pay_type,
......@@ -46,4 +46,42 @@
</if>
ORDER BY o.create_date DESC
</select>
<select id="getSum" resultType="java.lang.Double">
SELECT
sum(d.amount) amount
FROM
(SELECT
DISTINCT o.pay_code,
o.amount amount
FROM
`youka_orders` o
LEFT JOIN sys_dict sd ON sd.value = o.pay_method
LEFT JOIN sys_dict sdc ON sdc.value = o.pay_channel
LEFT JOIN youka_users yu ON yu.code = o.user_code
WHERE o.del_flag = 0
<if test="nickname != null and nickname != ''">
AND yu.nickname like concat("%",#{nickname},"%")
</if>
<if test="keywords != null and keywords != ''">
AND yu.nickname like concat("%",#{nickname},"%")
AND yu.mobile like concat("%",#{mobile},"%")
</if>
<if test="payChannel != null and payChannel != ''">
AND o.pay_channel = #{payChannel}
</if>
<if test="payMethod != null and payMethod != ''">
AND o.pay_method = #{payMethod}
</if>
<if test="payStatus != null and payStatus != ''">
AND o.pay_status = #{payStatus}
</if>
<if test="startTime != null and startTime != ''">
AND o.create_date &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND o.create_date &lt;= #{endTime}
</if>
) d
</select>
</mapper>
\ No newline at end of file
......@@ -53,7 +53,7 @@
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<ul class="ul-form">
<li><label>利润类型:</label><form:select id="benefitType" path="benefitType" class="input-medium"><form:option value="" label=""/><form:options itemValue="value" itemLabel="label" items="${fns:getDictList('benefit_type')}" htmlEscape="false"/></form:select></li>
<li><label>时间:</label>
<li><label> 间:</label>
<input id="startTime" name="startTime" type="text" readonly="readonly" maxlength="20" class="input-small Wdate"
value="<fmt:formatDate value="${youkaBenefit.startTime}" pattern="yyyy-MM-dd"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/>
......@@ -86,7 +86,7 @@
<td>
<c:if test="${benefit.benefitType eq 'A'}">+</c:if>
<c:if test="${benefit.benefitType eq 'M'}">-</c:if>
${benefit.amount}
${benefit.orderEntity.benefitAmount}
</td>
<th>${benefit.balance}</th>
<td>
......
......@@ -112,27 +112,15 @@
</li>
<li><label>交易状态:</label>
<form:select id="payStatus" path="payStatus" class="input-medium"><form:option value="" label=""/><form:options itemValue="value" itemLabel="label" items="${fns:getDictList('pay_status')}" htmlEscape="false"/></form:select>
<%--<form:select path="payStatus" cssStyle="width: 100px">
<form:option value="">
全部状态
</form:option>
<form:option value="0">
待支付
</form:option>
<form:option value="1">
支付中
</form:option>
<form:option value="2">
已支付
</form:option>
<form:option value="3">
逾期取消
</form:option>
<form:option value="4">
支付失败
</form:option>
</form:select>
--%>
</li>
<li><label>时间:</label>
<input id="startTime" name="startTime" type="text" readonly="readonly" maxlength="20" class="input-small Wdate"
value="<fmt:formatDate value="${orderEntity.startTime}" pattern="yyyy-MM-dd HH:mm:ss"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
<input id="endTime" name="endTime" type="text" readonly="readonly" maxlength="20" class="input-small Wdate"
value="<fmt:formatDate value="${orderEntity.endTime}" pattern="yyyy-MM-dd HH:mm:ss"/>"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</li>
<li class="btns"><input id="btnSubmit" class="btn btn-primary" type="submit" value="查询" onclick="return page();"/>
......@@ -143,8 +131,9 @@
</ul>
</form:form>
<sys:message content="${message}"/>
<font color="blue" size="3">当前条件订单总额为:</font> <font color="#a52a2a" size="3">${allMoney} </font>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<thead><tr><th>序号</th><th>订单号</th><th class="sort-column login_name">交易时间</th><th class="sort-column name">交易人</th><th>交易平台</th><th>状态</th><th>订单金额</th><th>产生分润</th><th>分润去向</th></tr></thead>
<thead><tr><th>序号</th><th>订单号</th><th class="sort-column login_name">交易时间</th><th class="sort-column name">交易人</th><th>交易平台</th><th>状态</th><th>订单金额</th></tr></thead>
<tbody>
<c:forEach items="${page.list}" var="order" varStatus="indexs">
<tr>
......@@ -165,9 +154,6 @@
<c:if test="${order.payStatus eq '4'}">支付失败</c:if>
</td>
<td>${order.amount}</td>
<td>${order.benefitAmount}</td>
<td>${order.benefitDescribe}</td>
</tr>
</c:forEach>
</tbody>
......
......@@ -142,7 +142,7 @@
</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>
<thead><tr><th>序号</th><th class="sort-column login_name">用户类型</th><th class="sort-column name">汇率</th><th>单笔价格</th><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>
......@@ -157,23 +157,23 @@
<span>${userLevel.name}</span>
</td>
<td><input class="input_border input_m" id="rate${indexs.index}" name="rate" value="${rateEntity.rate}"></td>
<td>
<select id="rateType${indexs.index}" 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>
<%--<td>--%>
<%--<select id="rateType${indexs.index}" 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>--%>
<td>
<input id="siglePrice${indexs.index}" class="input_border input_m" name="siglePrice" value="${rateEntity.siglePrice}">
</td>
<td><input id="balance${indexs.index}" class="input_border input_m" name="balance" value="${rateEntity.balance}"></td>
<%--<td><input id="balance${indexs.index}" class="input_border input_m" name="balance" value="${rateEntity.balance}"></td>--%>
<td>
<input id="singleLimit${indexs.index}" class="input_border input_m" name="singleLimit" value="${rateEntity.singleLimit}">
</td>
......
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