记得上下班打卡 | git大法好,push需谨慎

Commit 17e83734 authored by zhoujianping's avatar zhoujianping

Merge branch 'zjp_20241015_daili' into jxl_20240313_prod

parents f3094aac 76d1eb1d
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.service.admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.kylin.dao.*;
import com.liquidnet.service.kylin.dao.report.KylinPerformanceSubscribeTicketStatisticalDao;
import com.liquidnet.service.kylin.dto.param.PerformanceAdminListParam;
import com.liquidnet.service.kylin.dto.param.PerformanceMemberAuditParam;
import com.liquidnet.service.kylin.dto.param.SysDamaiParam;
......@@ -310,4 +311,13 @@ public interface IKylinPerformancesAdminService {
List<PerformanceOrderStatisticalDao> getPerformanceOrderStatisticalList(String performancesId);
List<PerformanceSponsorDao> getPerformanceSponsorList(String sponsorType);
/*
* @description: 获取预约信息
* @author: zjp
* @date: 2024/9/11 17:11
* @param: [performancesId]
* @return: com.liquidnet.service.kylin.dto.vo.admin.KylinPerformanceAgentVo
**/
List<KylinPerformanceSubscribeTicketStatisticalDao> getPerformanceSubscribe(String performancesId);
}
......@@ -7,13 +7,17 @@ import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.kylin.dto.KylinOrderImportDto;
import com.liquidnet.client.admin.zhengzai.kylin.dto.KylinPerformanceSubscribeTicketStatisticalExportDao;
import com.liquidnet.client.admin.zhengzai.kylin.dto.PerformanceOrderStatisCountResp;
import com.liquidnet.client.admin.zhengzai.stone.service.dto.StoneScoreListExportDto;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.goblin.param.GoblinFrontCubeParam;
import com.liquidnet.service.kylin.dao.PerformanceAdminListDao;
import com.liquidnet.service.kylin.dao.PerformanceMemberAuditDao;
import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao;
import com.liquidnet.service.kylin.dao.report.KylinPerformanceSubscribeTicketStatisticalDao;
import com.liquidnet.service.kylin.dto.param.PerformanceAdminListParam;
import com.liquidnet.service.kylin.dto.param.PerformanceMemberAuditParam;
import com.liquidnet.service.kylin.dto.param.SysDamaiParam;
......@@ -188,7 +192,38 @@ public class KylinPerformancesController extends BaseController {
mmap.put("kylinPerformancePayTxtVo", result);
return prefix + "/payTxt";
}
/*
* @description: 预约统计
* @author: zjp
* @date: 2024/9/11 17:03
* @param: [performancesId, mmap]
* @return: java.lang.String
**/
@GetMapping(value = "/subscribe/{performancesId}")
public String subscribe(@PathVariable("performancesId") String performancesId, ModelMap mmap) {
List<KylinPerformanceSubscribeTicketStatisticalDao> result = kylinPerformancesService.getPerformanceSubscribe(performancesId);
mmap.put("subscribeStaticList", result);
mmap.put("performancesId",performancesId);
return prefix + "/subscribe";
}
@Log(title = "预约统计:导出列表")
@PostMapping("/subscribe/export")
@ResponseBody
public AjaxResult subscribeExport(@RequestParam("performancesId") String performancesId) {
List<KylinPerformanceSubscribeTicketStatisticalDao> list = kylinPerformancesService.getPerformanceSubscribe(performancesId);
ArrayList<KylinPerformanceSubscribeTicketStatisticalExportDao> listExport = new ArrayList<>();
for (KylinPerformanceSubscribeTicketStatisticalDao kylinPerformanceSubscribeTicketStatisticalDao : list) {
KylinPerformanceSubscribeTicketStatisticalExportDao kylinPerformanceSubscribeTicketStatisticalExportDao = new KylinPerformanceSubscribeTicketStatisticalExportDao();
kylinPerformanceSubscribeTicketStatisticalExportDao.setTimeTitle(kylinPerformanceSubscribeTicketStatisticalDao.getTimeTitle());
kylinPerformanceSubscribeTicketStatisticalExportDao.setTicketTimesTitle(kylinPerformanceSubscribeTicketStatisticalDao.getTicketTimesTitle());
kylinPerformanceSubscribeTicketStatisticalExportDao.setSubscribeTotal(kylinPerformanceSubscribeTicketStatisticalDao.getSubscribeTotal());
listExport.add(kylinPerformanceSubscribeTicketStatisticalExportDao);
}
ExcelUtil<KylinPerformanceSubscribeTicketStatisticalExportDao> util = new ExcelUtil(KylinPerformanceSubscribeTicketStatisticalExportDao.class);
return util.exportExcel(listExport, "预约统计");
}
//@RequiresPermissions("kylin:performances:view")
@PostMapping(value = "/agent/change")
@ResponseBody
......
......@@ -41,6 +41,8 @@
</li>
<li id="li-tab-9"><a data-toggle="tab" href="#tab-9" aria-expanded="false" onclick="payTxtInfo()">支付文案</a>
</li>
<li id="li-tab-11"><a data-toggle="tab" href="#tab-11" aria-expanded="false" onclick="subscribeInfo()">预约统计</a>
</li>
</ul>
<div class="tab-content">
<div id="tab-1" class="tab-pane">
......@@ -343,6 +345,13 @@
height=800px frameborder=0></iframe>
</div>
</div>
<div id="tab-11" class="tab-pane">
<div class="panel-body">
<iframe id="subscribe_iframe" name="subscribe_iframe" marginwidth=0 marginheight=0
width=100%
height=800px frameborder=0></iframe>
</div>
</div>
</div>
</div>
</div>
......@@ -420,7 +429,11 @@
if (payTxt == "hidden") {
document.getElementById("li-tab-9").style.display = "none";
}
//预约演出
var subscribe = [[${@permission.hasPermi('kylin:performances:subscribe')}]];
if (subscribe == "hidden") {
document.getElementById("li-tab-11").style.display = "none";
}
if (auditStatus == 1 || fieldStatus == 1 || fieldStatus == 2 || auditStatus == 2) {
document.getElementsByName("auditBtn")[0].style.display = "none";
}
......@@ -533,6 +546,10 @@
function payTxtInfo() {
document.getElementById("pay_txt_iframe").src = "../payTxt/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", "");
}
//预约统计
function subscribeInfo() {
document.getElementById("subscribe_iframe").src = "../subscribe/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", "");
}
$("#tab-nav-1").bind("click", function () {
$("#tab_iframe_1").attr("src", prefix + "/performanceStatic/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", ""));
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('预约统计')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<button id="fun1" type="button" class="btn btn-w-m btn-success" href="javascript:void(0)"
onclick="searchExport()">导出
</button>
<table class="col-sm-12 select-table table-bordered table table-stripped small m-t-md">
<thead>
<tr>
<th>
<div class="cell">场次</div>
</th>
<th>
<div class="cell">票种</div>
</th>
<th>
<div class="cell">预约人数</div>
</th>
</tr>
</thead>
<tbody>
<tr th:each="respBean,respBeanStat:${subscribeStaticList}">
<td>
<div class="cell" th:text="${respBean.ticketTimesTitle}">-</div>
</td>
<td>
<div class="cell" th:text="${respBean.timeTitle}">-</div>
</td>
<td>
<div class="cell" th:text="${respBean.subscribeTotal}">-</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var performancesId=[[${performancesId}]];
var prefix = ctx + "kylin/performances";
function searchExport(){
$.modal.loading("正在导出数据,请稍后...");
$.post(prefix+'/subscribe/export', {performancesId: performancesId}, function(result) {
if (result.code == web_status.SUCCESS) {
window.location.href = ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true;
} else {
$.modal.alertError(result.msg);
}
$.modal.closeLoading();
});
}
</script>
</body>
</html>
......@@ -56,6 +56,8 @@
</div>
<td>总销售张数</td>
<td>总销售金额</td>
<td>实际销售金额</td>
<td>优惠券金额</td>
<td>总销售佣金</td>
<td>打款状态</td>
<td>是否黑名单</td>
......@@ -76,6 +78,8 @@
<td th:each="itemAgent : ${item.dataAgentVos}" th:text="${itemAgent.number}"></td>
<td th:text="${#aggregates.sum(item.dataAgentVos.![number])}"></td>
<td th:text="${#aggregates.sum(item.dataAgentVos.![priceReal])}"></td>
<td th:text="${#aggregates.sum(item.dataAgentVos.![realTotalPrice])}"></td>
<td th:text="${#aggregates.sum(item.dataAgentVos.![voucherPrice])}"></td>
<td th:text="${item.totalCommission}"></td>
<td th:if="${item.priceStatus!=0}" th:text="待打款"></td>
<td th:if="${item.priceStatus==0}" th:text="已打款"></td>
......
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
@Data
public class KylinPerformanceSubscribeTicketStatisticalExportDao implements Serializable, Cloneable {
@Excel(name = "场次", cellType = Excel.ColumnType.STRING)
private String ticketTimesTitle;
@Excel(name = "票种", cellType = Excel.ColumnType.STRING)
private String timeTitle;
@Excel(name = "预约人数", cellType = Excel.ColumnType.NUMERIC)
private Integer subscribeTotal;
}
......@@ -19,6 +19,7 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.vo.SmileAgentVo;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.*;
import com.liquidnet.service.kylin.dao.report.KylinPerformanceSubscribeTicketStatisticalDao;
import com.liquidnet.service.kylin.dto.param.*;
import com.liquidnet.service.kylin.dto.vo.admin.*;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
......@@ -971,6 +972,11 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
return performancesMapper.getPerformanceSponsorList(sponsorType);
}
@Override
public List<KylinPerformanceSubscribeTicketStatisticalDao> getPerformanceSubscribe(String performancesId) {
return performancesMapper.getSubscribeTicketStatisticalByPerformancesId(performancesId);
}
//删除演出下所有订单缓存(订单详情,订单列表)
public void delOrderTicketsRedis(KylinPerformanceMisVo vo) {
//找到所有ticketId
......
......@@ -53,6 +53,20 @@ public class UserDataAgentVo implements Serializable, Cloneable{
@ApiModelProperty(value = "提成", example = "")
private BigDecimal commission;
/**
* 实际销售金额 实际支付金额-快递费=提成基数
*/
@ApiModelProperty(value = "实际销售金额", example = "")
private BigDecimal realTotalPrice;
/**
* 优惠券金额
*/
@ApiModelProperty(value = "优惠券金额", example = "")
private BigDecimal voucherPrice;
private static final UserDataAgentVo obj = new UserDataAgentVo();
public static UserDataAgentVo getNew() {
......
......@@ -447,6 +447,8 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
userDataAgentVo.setPriceReal(new BigDecimal(showBaseVoDto.getPriceReal().stripTrailingZeros().toPlainString()));
// userDataAgentVo.setAgent(showBaseVoDto.getUse());
userDataAgentVo.setCommission(new BigDecimal(showBaseVoDto.getTotalPrice().stripTrailingZeros().toPlainString()));
userDataAgentVo.setRealTotalPrice(new BigDecimal(showBaseVoDto.getRealTotalPrice().stripTrailingZeros().toPlainString()));
userDataAgentVo.setVoucherPrice(new BigDecimal(showBaseVoDto.getVoucherPrice().stripTrailingZeros().toPlainString()));
} else {
//没有买过
userDataAgentVo.setTicketsId(smileAgent.getTicketsId());
......@@ -456,6 +458,8 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
userDataAgentVo.setPriceReal(BigDecimal.ZERO);
// userDataAgentVo.setAgent(showBaseVoDto.getType() == 1 ? tidMap.get(smileAgent.getTicketsId()).getTotalCarry() : tidMap.get(smileAgent.getTicketsId()).getOrdCarry());
userDataAgentVo.setCommission(BigDecimal.ZERO);
userDataAgentVo.setRealTotalPrice(BigDecimal.ZERO);
userDataAgentVo.setVoucherPrice(BigDecimal.ZERO);
}
totalCommission = totalCommission.add(userDataAgentVo.getCommission());
userDataAgentVos.add(userDataAgentVo);
......@@ -503,6 +507,8 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
userDataAgentVo.setNumber(BigDecimal.ZERO);
userDataAgentVo.setPrice(BigDecimal.ZERO);
userDataAgentVo.setPriceReal(BigDecimal.ZERO);
userDataAgentVo.setRealTotalPrice(BigDecimal.ZERO);
userDataAgentVo.setVoucherPrice(BigDecimal.ZERO);
userDataAgentVo.setCommission(BigDecimal.ZERO);
userDataAgentVos.add(userDataAgentVo);
}
......@@ -692,7 +698,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
//做表
ticketList.forEach(title -> headTitles.add(Lists.newArrayList(ticket, ticket, title)));
ArrayList<String> dataList = Lists.newArrayList("总销售张数", "总销售金额", "总销售佣金", "打款状态");
ArrayList<String> dataList = Lists.newArrayList("总销售张数", "总销售金额","实际销售金额","优惠券金额", "总销售佣金","打款状态");
//做表
dataList.forEach(dataStr -> headTitles.add(Lists.newArrayList(saleData, saleData, dataStr)));
......@@ -707,6 +713,10 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
BigDecimal num = new BigDecimal("0");
//总销售金额
BigDecimal price = new BigDecimal("0");
//实际销售金额
BigDecimal realTotalPrice=new BigDecimal("0");
//优惠券金额
BigDecimal voucherPrice=new BigDecimal("0");
ArrayList<Object> arrayList = Lists.newArrayList();
arrayList.add(userData.getUid());
......@@ -743,6 +753,8 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
if (userDataAgentVo != null) {
num = num.add(new BigDecimal(userDataAgentVo.getNumber().toString()));
price = price.add(userDataAgentVo.getPriceReal());
realTotalPrice=realTotalPrice.add(userDataAgentVo.getRealTotalPrice());
voucherPrice=voucherPrice.add(userDataAgentVo.getVoucherPrice());
arrayList.add(userDataAgentVo.getNumber());
} else {
arrayList.add(0);
......@@ -750,6 +762,8 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
}
arrayList.add(num);
arrayList.add(price);
arrayList.add(realTotalPrice);
arrayList.add(voucherPrice);
arrayList.add(userData.getTotalCommission());
arrayList.add(userData.getPriceStatus() != null && userData.getPriceStatus() == 0 ? "已打款" : "待打款");
contentList.add(arrayList);
......
......@@ -741,8 +741,8 @@ GROUP BY user_mobile,tickets_id;
LEFT JOIN (
SELECT
kk.performance_id,
sum( kot.number - kot.refund_number ) AS `open`,
sum( kot.price_actual - kot.price_refund ) AS price
sum(kot.number) AS `open`,
sum(kot.price_actual) AS price
FROM
kylin_order_tickets AS kot
LEFT JOIN (
......@@ -759,7 +759,7 @@ GROUP BY user_mobile,tickets_id;
LEFT JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id
INNER JOIN smile_user AS su ON su.uid = kotr.agent_id
WHERE
kots.STATUS IN ( 1, 6 ,3 )
kots.STATUS IN (1)
) AS kk ON kot.order_tickets_id = kk.order_id
WHERE
kk.agent_id != 0
......
......@@ -80,6 +80,15 @@ public class ShowBaseVoDto implements Serializable, Cloneable{
*/
private BigDecimal totalPrice;
/**
* 实际销售金额
*/
private BigDecimal realTotalPrice;
/**
* 优惠券金额
*/
private BigDecimal voucherPrice;
private static final ShowBaseVoDto obj = new ShowBaseVoDto();
public static ShowBaseVoDto getNew() {
......
......@@ -83,10 +83,12 @@
sukotr.state,
sukotr.agentName,
kot.price,
SUM(kot.price_actual - kot.price_refund) price_real,
SUM(kot.price_actual) price_real,
sukotr.agent_distributions AS `use`,
SUM( kot.number - kot.refund_number ) number,
SUM( ( kot.price_actual - kot.price_refund ) * sukotr.agent_distributions ) totalPrice
SUM( kot.number ) number,
SUM( (kot.price_actual - kot.price_express) * sukotr.agent_distributions ) totalPrice,
SUM( (kot.price_actual - kot.price_express) ) realTotalPrice,
SUM( kot.price_voucher ) voucherPrice
FROM
kylin_order_tickets AS kot
INNER JOIN (
......@@ -114,7 +116,7 @@
FROM kylin_order_ticket_relations as kotr
LEFT JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id
INNER JOIN smile_user AS su ON su.uid = kotr.agent_id
WHERE kots.status IN (1,6,3)
WHERE kots.status IN (1)
AND kotr.agent_id != 0
AND (kotr.agent_distributions_master !=0 or kotr.agent_distributions!=0)
AND kotr.performance_id = #{performancesId}
......@@ -122,7 +124,7 @@
)
AND kotr.performance_id = #{performancesId}
AND (kotr.agent_distributions_master !=0 or kotr.agent_distributions!=0)
AND kots.`status` IN ( 1, 6 ,3)
AND kots.`status` IN (1)
) AS sukotr ON sukotr.order_id = kot.order_tickets_id
GROUP BY
sukotr.uid,
......
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