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

Commit 78be7351 authored by 胡佳晨's avatar 胡佳晨

Merge branch 'dev_export_' into dev_member_voucher_social

# Conflicts:
#	liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamUserInfoVo.java
#	liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/vo/AdamUserMemberVo.java
#	liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/admin/IKylinPerformancesAdminService.java
#	liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinPerformancesAdminServiceImpl.java
#	liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/utils/DataUtils.java
#	liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/IDGenerator.java
parents 1cb182fe 32cfc71a
drop table if exists kylin_order_import;
create table kylin_order_import
(
mid bigint unsigned auto_increment primary key,
import_id varchar(64) default '' comment 'id',
performance_id varchar(64) default '' comment '演出id',
title varchar(64) default '' comment '文件名称',
status int(3) default 0 comment '状态[0-处理中|1处理完成|2处理失败]',
error_count int default 0 comment '失败条数',
success_count int default 0 comment '成功条数',
all_count int default 0 comment '总条数',
created_at datetime ,
updated_at datetime ,
comment text
) engine = InnoDB comment '订单导入表';
\ No newline at end of file
......@@ -150,4 +150,4 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
}
return this;
}
}
}
\ No newline at end of file
......@@ -83,4 +83,4 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
// 创建时间在`指定时间`之前,且(更新时间为空或更新时间在`指定时间`之前)
return createdAt.isBefore(oldMemberSpotTime) && (null == updatedAt || (updatedAt.isBefore(oldMemberSpotTime)));
}
}
}
\ No newline at end of file
......@@ -27,6 +27,8 @@ public class KylinRedisConst {
public static final String ORDER_REFUND = "kylin:order:refund:orderRefundsId:";
public static final String ORDER_TRANSFER = "kylin:order:transfer:uid:";
//订单导入失败key
public static final String ORDER_IMPORT_FAIL = "kylin:order:import:fail:";
public static final String ORDER_COUPON = "kylin:order:coupon:id:";
......
package com.liquidnet.service.kylin.service;
/**
* <p>
* 票 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
public interface IKylinOrderImportService {
}
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.dto.param.PerformanceAdminListParam;
......@@ -10,6 +11,8 @@ import com.liquidnet.service.kylin.dto.vo.admin.KylinPerformanceDamaiVo;
import com.liquidnet.service.kylin.dto.vo.admin.PerformanceRefundConfigVo;
import com.liquidnet.service.kylin.dto.vo.admin.PerformanceTransferConfigVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo;
import com.liquidnet.service.kylin.entity.KylinOrderImport;
import com.liquidnet.service.kylin.entity.KylinPerformances;
import java.util.List;
......@@ -205,6 +208,13 @@ public interface IKylinPerformancesAdminService {
*/
PerformanceTransferConfigVo getTransferConfig(String performanceId);
/**
* 获取 演出转赠配置
* @param performanceId
* @return
*/
List<KylinOrderImport> getOrderImport(String performanceId);
/**
* 修改 演出转赠配置
* @return
......
......@@ -4,8 +4,6 @@ import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.liquidnet.service.kylin.entity.KylinTickets;
public interface DamaiService {
//同步场地
Boolean sycField(String fieldId);
//同步演出
Boolean sycPerformance(String performanceId);
//同步场次
......
package com.liquidnet.client.admin.web.controller.zhengzai.kylin;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.annotation.Log;
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.ShiroUtils;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IImportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Controller
@RequestMapping("/import")
public class ImportController {
private String prefix = "zhengzai/kylin/performances/orderImport";
@Autowired
IImportService iImportService;
/**
* 下载模板
*/
@GetMapping("/template/OrderOutLine")
@ResponseBody
public AjaxResult importTemplateOrderOutLine() {
ExcelUtil<OrderOutLineVo> util = new ExcelUtil(OrderOutLineVo.class);
return util.importTemplateExcel("订单导入数据");
}
/**
* 导入
*/
@PostMapping("/OrderOutLine/{performancesId}")
@ResponseBody
public AjaxResult importOrderOutLine(@PathVariable("performancesId") String performancesId, MultipartFile file, boolean updateSupport) throws Exception {
ExcelUtil<OrderOutLineVo> util = new ExcelUtil(OrderOutLineVo.class);
List<OrderOutLineVo> orderOutLineVoList = util.importExcel(file.getInputStream());
// String operName = ShiroUtils.getSysUser().getLoginName();
String message = iImportService.importOrderOutLine(performancesId, orderOutLineVoList, updateSupport, file.getName());
return AjaxResult.success(message);
}
/**
* 跳转导入详情
*/
@GetMapping("OrderOutLine/detailsList/{id}")
@ResponseBody
public String detailsList(@PathVariable("id") String importId, ModelMap mmap) {
mmap.put("importId", importId);
return prefix + "/details";
}
/**
* 导入纪录
*/
@GetMapping("/OrderOutLine/details/{importId}")
@ResponseBody
public TableDataInfo importOrderOutLine(@PathVariable("importId") String importId) {
PageInfo<OrderOutLineVo> result = iImportService.getImportDetails(importId);
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(result.getList());
rspData.setTotal(result.getTotal());
return rspData;
}
}
......@@ -7,6 +7,7 @@ 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.zhengzai.kylin.dto.KylinOrderImportDto;
import com.liquidnet.client.admin.zhengzai.kylin.dto.PerformanceOrderStatisCountResp;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.dao.PerformanceAdminListDao;
......@@ -20,6 +21,7 @@ import com.liquidnet.service.kylin.dto.vo.admin.KylinPerformanceDamaiVo;
import com.liquidnet.service.kylin.dto.vo.admin.PerformanceRefundConfigVo;
import com.liquidnet.service.kylin.dto.vo.admin.PerformanceTransferConfigVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo;
import com.liquidnet.service.kylin.entity.KylinOrderImport;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import com.liquidnet.service.kylin.service.other.DamaiService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -212,6 +214,27 @@ public class KylinPerformancesController extends BaseController {
return prefix + "/transferConfig";
}
@GetMapping(value = "/orderImport/{performancesId}")
public String getOrderImport(@PathVariable("performancesId") String performancesId, ModelMap mmap) {
// List<KylinOrderImport> result = kylinPerformancesService.getOrderImport(performancesId);
// KylinOrderImportDto vo = new KylinOrderImportDto();
// vo.setKylinOrderImportList(result);
// vo.setPerformancesId(performancesId);
mmap.put("performancesId", performancesId);
return prefix + "/orderImport";
}
@PostMapping(value = "/orderImport/list/{performancesId}")
@ResponseBody
public TableDataInfo getOrderImportList(@PathVariable("performancesId") String performancesId, ModelMap mmap) {
List<KylinOrderImport> result = kylinPerformancesService.getOrderImport(performancesId);
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(result);
rspData.setTotal(result.size());
return rspData;
}
//@RequiresPermissions("kylin:performances:view")
@PostMapping(value = "/transferConfig/change")
@ResponseBody
......
......@@ -13,13 +13,8 @@
</li>
<li id="li-tab-1"><a data-toggle="tab" href="#tab-1" aria-expanded="true" id="tab-nav-1"> 演出数据</a>
</li>
<!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">校园分销</a>-->
<!-- </li>-->
<!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">社会分销</a>-->
<!-- </li>-->
<!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">状态管理</a>-->
<!-- </li>-->
<li id="li-tab-6"><a data-toggle="tab" href="#tab-6" aria-expanded="false" onclick="refundConfigInfo()">退款管理</a>
<li id="li-tab-6"><a data-toggle="tab" href="#tab-6" aria-expanded="false"
onclick="refundConfigInfo()">退款管理</a>
</li>
<li id="li-tab-7"><a data-toggle="tab" href="#tab-7" aria-expanded="false" onclick="transferInfo()">转赠配置</a>
</li>
......@@ -29,12 +24,13 @@
</li>
<li id="li-tab-5"><a data-toggle="tab" href="#tab-5" aria-expanded="false" onclick="damaiInfo()">大麦配置</a>
</li>
<li id="li-tab-8"><a data-toggle="tab" href="#tab-8" aria-expanded="false" onclick="importInfo()">订单导入</a>
</li>
</ul>
<div class="tab-content">
<div id="tab-1" class="tab-pane">
<div class="panel-body">
<div id="tab-1" class="tab-pane">
<!-- <th:block th:include="../templates/zhengzai/kylin/performances/performancesStatic :: performancesStatic"/>-->
<iframe id="tab_iframe_1" name="tab_iframe_1" marginwidth=0 marginheight=0 width=100%
height=800px frameborder=0></iframe>
</div>
......@@ -163,17 +159,6 @@
<span>库存总量:</span>
<span th:text="${dict2.totalGeneral}"></span>
</div>
<!-- <div>-->
<!-- <span>售票状态:</span>-->
<!-- <span th:if="${dict2.status == 1}">审核中</span>-->
<!-- <span th:if="${dict2.status == 3}">审核通过</span>-->
<!-- <span th:if="${dict2.status == 4}">未通过</span>-->
<!-- <span th:if="${dict2.status == 6}">在售</span>-->
<!-- <span th:if="${dict2.status == 7}">下架</span>-->
<!-- <span th:if="${dict2.status == 8}">售罄</span>-->
<!-- <span th:if="${dict2.status == 9}">未开始</span>-->
<!-- <span th:if="${dict2.status == 10}">已结束</span>-->
<!-- </div>-->
<div>
<span>开始售票时间:</span>
<span th:text="${dict2.timeStart}"></span>
......@@ -239,7 +224,8 @@
</div>
<div id="tab-6" class="tab-pane">
<div class="panel-body">
<iframe id="refundConfig_iframe" name="refundConfig_iframe" marginwidth=0 marginheight=0 width=100%
<iframe id="refundConfig_iframe" name="refundConfig_iframe" marginwidth=0 marginheight=0
width=100%
height=800px frameborder=0></iframe>
</div>
</div>
......@@ -249,6 +235,16 @@
height=800px frameborder=0></iframe>
</div>
</div>
<div id="tab-8" class="tab-pane">
<div class="panel-body">
<form class="form-horizontal m" th:object="${kylinPerformanceMisVo}">
<input name="title" th:field="*{title}" class="form-control" type="text" readonly>
</form>
<iframe id="order_import_iframe" name="order_import_iframe" marginwidth=0 marginheight=0
width=100%
height=800px frameborder=0></iframe>
</div>
</div>
</div>
......@@ -263,41 +259,46 @@
const auditStatus = '[[${kylinPerformanceMisVo.auditStatus}]]';
var agentFlag = [[${@permission.hasPermi('kylin:performances:agent')}]];
if(agentFlag=="hidden"){
if (agentFlag == "hidden") {
document.getElementById("li-tab-4").style.display = "none";
}
var otherFlag = [[${@permission.hasPermi('kylin:performances:audit')}]];
if(otherFlag=="hidden"){
if (otherFlag == "hidden") {
document.getElementById("li-tab-2").style.display = "none";
document.getElementById("tab-2").style.display = "none";
}
var refundFlag = [[${@permission.hasPermi('kylin:performances:refund')}]];
if(refundFlag=="hidden"){
if (refundFlag == "hidden") {
document.getElementById("li-tab-6").style.display = "none";
}
var memberFlag = [[${@permission.hasPermi('kylin:performances:member')}]];
if(memberFlag=="hidden"){
if (memberFlag == "hidden") {
document.getElementById("li-tab-3").style.display = "none";
}
var damaiFlag = [[${@permission.hasPermi('kylin:performances:damai')}]];
if(damaiFlag=="hidden"){
if (damaiFlag == "hidden") {
document.getElementById("li-tab-5").style.display = "none";
}
var dataFlag = [[${@permission.hasPermi('kylin:performances:data')}]];
if(dataFlag=="hidden"){
if (dataFlag == "hidden") {
document.getElementById("li-tab-1").style.display = "none";
}
var transferFlag = [[${@permission.hasPermi('kylin:performances:transfer')}]];
if(transferFlag=="hidden"){
if (transferFlag == "hidden") {
document.getElementById("li-tab-7").style.display = "none";
}
var orderImportFlag = [[${@permission.hasPermi('kylin:performances:orderImport')}]];
if (orderImportFlag == "hidden") {
document.getElementById("li-tab-8").style.display = "none";
}
if (auditStatus != 0) {
document.getElementsByName("auditBtn")[0].style.display = "none";
}
......@@ -367,10 +368,15 @@
}
//转赠配置
function transferInfo(){
function transferInfo() {
document.getElementById("transfer_iframe").src = "../transferConfig/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", "");
}
//订单导入
function importInfo() {
document.getElementById("order_import_iframe").src = "../orderImport/" + '[[${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">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<a class="btn btn-warning" onclick="$.table.importExcel()">
<i class="fa fa-upload"></i>导入
</a>
</div>
</form>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var prefix = ctx + "kylin/performances";
var importfix = ctx + "import/";
var options = {
url: prefix + "/orderImport/list/" + '[[${performancesId}]]'.replaceAll("\"", ""),
importUrl: importfix + "OrderOutLine/"+ '[[${performancesId}]]'.replaceAll("\"", ""),//导入
importTemplateUrl: importfix + "template/OrderOutLine",//导出
detailUrl: importfix + "OrderOutLine/detailsList/{id}",
modalName: "订单",
orderSc: "desc",
orderItem: "created_at",
columns: [{
checkbox: true
},
{
field: 'mid',
title: 'id'
},
{
field: 'title',
title: '文件名称'
},
{
field: 'status',
title: '订单状态'
},
{
field: 'allCount',
title: '总条数'
},
{
field: 'errorCount',
title: '失败条数'
},
{
field: 'successCount',
title: '成功条数'
},
{
field: 'createdAt',
title: '导入时间'
},
{
field: 'updatedAt',
title: '完成时间'
},
{
title: '操作',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.mid + '\')"><i class="fa fa-edit"></i>详情</a> ');
return actions.join('');
}
}]
};
$.table.init(options);
</script>
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
<div class="col-xs-offset-1">
<input type="file" id="file" name="file"/>
<div class="mt10 pt5">
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
&nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i
class="fa fa-file-excel-o"></i> 下载模板</a>
</div>
<font color="red" class="pull-left mt10">
提示:仅允许导入“xls”或“xlsx”格式文件!
</font>
</div>
</form>
</script>
</body>
</html>
<!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">
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var prefix = ctx + "import/";
$(function () {
var options = {
url: prefix + "/OrderOutLine/details/" + '[[${importId}]]'.replaceAll("\"", ""),
modalName: "导入详情",
method: "get",
columns: [{
checkbox: true
},
{
field: 'enterMobile',
title: '手机号'
},
{
field: 'enterName',
title: '姓名'
},
{
field: 'enterIdCode',
title: '身份证'
},
{
field: 'ticketTitle',
title: '票种名称'
},
{
field: 'useStart',
title: '票种适用开始时间'
},
{
field: 'useEnd',
title: '票种适用结束时间'
},
{
field: 'ticketType',
title: '票种类型'
},
{
field: 'address',
title: '收货地址'
}, {
field: 'reason',
title: '错误原因'
}
]
};
$.table.init(options);
})
;
</script>
</body>
</html>
\ No newline at end of file
......@@ -75,23 +75,6 @@
</div>
</form>
</div>
<!-- <div class="btn-group-sm" id="toolbar" role="group">-->
<!-- <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="kylin:performances:add">-->
<!-- <i class="fa fa-plus"></i> 添加-->
<!-- </a>-->
<!-- <a class="btn btn-primary single disabled" onclick="$.operate.edit()"-->
<!-- shiro:hasPermission="kylin:performances:edit">-->
<!-- <i class="fa fa-edit"></i> 修改-->
<!-- </a>-->
<!-- <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()"-->
<!-- shiro:hasPermission="kylin:performances:remove">-->
<!-- <i class="fa fa-remove"></i> 删除-->
<!-- </a>-->
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="kylin:performances:export">-->
<!-- <i class="fa fa-download"></i> 导出-->
<!-- </a>-->
<!-- </div>-->
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
......
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.service.kylin.entity.KylinOrderImport;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class KylinOrderImportDto implements Serializable {
private String performancesId;
private List<KylinOrderImport> kylinOrderImportList;
}
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import lombok.Data;
@Data
public class OrderOutLineVo {
@Excel(name = "手机号",cellType = Excel.ColumnType.STRING)
private String enterMobile;
@Excel(name = "姓名",cellType = Excel.ColumnType.STRING)
private String enterName;
@Excel(name = "身份证",cellType = Excel.ColumnType.STRING)
private String enterIdCode;
// @Excel(name = "购票数量",cellType = Excel.ColumnType.NUMERIC)
// private Integer number;
@Excel(name = "票种名称",cellType = Excel.ColumnType.STRING)
private String ticketTitle;
@Excel(name = "票种适用开始时间",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd HH:mm:ss")
private String useStart;
@Excel(name = "票种适用结束时间",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd HH:mm:ss")
private String useEnd;
@Excel(name = "票种类型(电子票,快递票)",cellType = Excel.ColumnType.STRING)
private String ticketType;
@Excel(name = "快递票地址",cellType = Excel.ColumnType.STRING)
private String address;
private String reason;
}
package com.liquidnet.client.admin.zhengzai.kylin.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import java.util.List;
public interface IImportService {
String importOrderOutLine(String performancesId,List<OrderOutLineVo> orderOutLineVoList, Boolean updateSupport, String fileName);
PageInfo<OrderOutLineVo> getImportDetails(String importId);
}
package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -82,6 +83,9 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
@Autowired
private KylinOrderTicketsMapper kylinOrderTicketsMapper;
@Autowired
private KylinOrderImportMapper orderImportMapper;
@Override
public KylinPerformanceMisVo performanceDetails(String performancesId) {
log.info(" PERFORMANCE mis演出详情");
......@@ -599,17 +603,22 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
return vo;
}
@Override
public List<KylinOrderImport> getOrderImport(String performanceId) {
return orderImportMapper.selectList(Wrappers.lambdaQuery(KylinOrderImport.class).eq(KylinOrderImport::getPerformanceId, performanceId));
}
@Override
public String changeTransferConfig(String performancesId,
Integer isCanTransfer,
String transferStartTime,
String transferEndTime) {
KylinPerformanceStatus kylinPerformanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if(kylinPerformanceStatusData.getIsCanRefund().equals(1) && isCanTransfer.equals(1)){
if (kylinPerformanceStatusData.getIsCanRefund().equals(1) && isCanTransfer.equals(1)) {
return "修改失败,演出已开启退款";
}
KylinPerformances kylinPerformances = performancesMapper.selectOne(new UpdateWrapper<KylinPerformances>().eq("performances_id", performancesId));
if(!(kylinPerformances.getType().equals(1) || kylinPerformances.getType().equals(101))){
if (!(kylinPerformances.getType().equals(1) || kylinPerformances.getType().equals(101))) {
return "修改失败,只支持音乐节类型演出";
}
......@@ -637,7 +646,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
Integer isRefundVoucher,
Integer isRefundExpress) {
KylinPerformanceStatus kylinPerformanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if(kylinPerformanceStatusData.getIsTransfer().equals(1) && isCanRefund.equals(1)){
if (kylinPerformanceStatusData.getIsTransfer().equals(1) && isCanRefund.equals(1)) {
return "修改失败,演出已开启转赠";
}
......
......@@ -2,6 +2,8 @@ package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
......@@ -87,8 +89,8 @@ public class DataUtils {
* @param performanceId
* @param isTrueName
*/
public void setPerformanceIsTrueName(String performanceId,int isTrueName) {
redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId,isTrueName);
public void setPerformanceIsTrueName(String performanceId, int isTrueName) {
redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId, isTrueName);
}
/**
......@@ -119,7 +121,7 @@ public class DataUtils {
List<KylinOrderListVo> voList = mongoTemplate.find(Query.query(Criteria.where("userId").is(userId))
.with(Sort.by(Sort.Direction.DESC, "createdAt")).limit(40),
KylinOrderListVo.class, KylinOrderTicketVo.class.getSimpleName());
for (KylinOrderListVo item : voList){
for (KylinOrderListVo item : voList) {
item.setStatus(item.getStatus());
}
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList);
......@@ -164,6 +166,7 @@ public class DataUtils {
/**
* 删除 验票账号 redis
*
* @param checkUserId
*/
public void delCheckUserRedis(String checkUserId) {
......@@ -172,6 +175,7 @@ public class DataUtils {
/**
* 删除 验票账号关系 vo
*
* @param checkUserId
*/
public void delCheckUserRelationRedis(String checkUserId) {
......@@ -203,7 +207,7 @@ public class DataUtils {
//删除redis
redisUtil.del(KylinRedisConst.PERFORMANCES + performanceIds);
// 大龙相关 演出列表
redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_CITYNAME + vo.getCityName());
redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_CITYNAME + vo.getCityName());
redisUtil.del(KylinRedisConst.PERFORMANCES_ROADLIST + vo.getRoadShowId());
redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_SYSTEM_RECOMMEND);
redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_RECOMMEND);
......@@ -238,11 +242,11 @@ public class DataUtils {
*/
public int getPerformanceIsTrueName(String performanceId) {
Object obj = redisUtil.get(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId);
if (obj!=null) {
return (int)obj;
}else{
if (obj != null) {
return (int) obj;
} else {
int isTrueName = getPerformanceVo(performanceId).getIsTrueName();
redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId,isTrueName);
redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId, isTrueName);
return isTrueName;
}
}
......@@ -287,7 +291,7 @@ public class DataUtils {
if (buyCount > 0) {
redisUtil.incr(ticketIdKey, buyCount);
redisUtil.incr(performanceIdKey, buyCount);
}else{
} else {
redisUtil.decr(ticketIdKey, Math.abs(buyCount));
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
}
......@@ -295,6 +299,7 @@ public class DataUtils {
/**
* 演出订单快递信息
*
* @param orderId
* @param kylinOrderExpressVo
*/
......@@ -302,6 +307,7 @@ public class DataUtils {
String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
redisUtil.set(redisKey, kylinOrderExpressVo);
}
public void delOrderExpressInfo(String orderId) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
redisUtil.del(redisKey);
......@@ -310,19 +316,19 @@ public class DataUtils {
/**
* 退款redis
*/
public void delOrderRefundVo(List<String> orderRefundIds){
public void delOrderRefundVo(List<String> orderRefundIds) {
for (String id : orderRefundIds) {
redisUtil.del(KylinRedisConst.ORDER_REFUND.concat(id));
}
}
public void delOrderRefundVoByOrderId(List<String> orderIds){
public void delOrderRefundVoByOrderId(List<String> orderIds) {
for (String id : orderIds) {
redisUtil.del(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID.concat(id));
}
}
public void delOrderIdUserIdRedis(List<String> orderTicketIdList,List<String> userIdList){
public void delOrderIdUserIdRedis(List<String> orderTicketIdList, List<String> userIdList) {
redisUtil.delList(orderTicketIdList);
redisUtil.delList(userIdList);
}
......@@ -339,7 +345,7 @@ public class DataUtils {
if (value instanceof BigDecimal) {
ret = (BigDecimal) value;
} else if (value instanceof String) {
String str = ((String) value).replace("元","");
String str = ((String) value).replace("元", "");
ret = new BigDecimal(str);
} else if (value instanceof BigInteger) {
ret = new BigDecimal((BigInteger) value);
......@@ -366,4 +372,60 @@ public class DataUtils {
return (OrderRefundAddress)obj;
}
}
// 获取 用户维度 演出购买数量
public int getUserPBuyCount(String userId, String performanceId) {
try {
return (int) redisUtil.get(KylinRedisConst.USERID_BUY_INFO + userId + ":" + KylinRedisConst.PERFORMANCE_ID + ":" + performanceId);
} catch (Exception e) {
return 0;
}
}
// 获取 用户维度 票种购买数量
public int getUserTBuyCount(String userId, String ticketId) {
try {
return (int) redisUtil.get(KylinRedisConst.USERID_BUY_INFO + userId + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId);
} catch (Exception e) {
return 0;
}
}
// 获取 证件维度 演出购买数量
public int getIdCardPBuyCount(String idCard, String performanceId) {
try {
return (int) redisUtil.get(KylinRedisConst.IDCARD_BUY_INFO + idCard + ":" + KylinRedisConst.PERFORMANCE_ID + ":" + performanceId);
} catch (Exception e) {
return 0;
}
}
// 获取 证件维度 票种购买数量
public int getIdCardTBuyCount(String idCard, String ticketId) {
try {
return (int) redisUtil.get(KylinRedisConst.IDCARD_BUY_INFO + idCard + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId);
} catch (Exception e) {
return 0;
}
}
//设置 订单导入错误数据
public void setOrderImportFail(String importId, List<OrderOutLineVo> vos) {
String redisKey = KylinRedisConst.ORDER_IMPORT_FAIL.concat(importId);
PageInfo<OrderOutLineVo> vo = new PageInfo(vos);
vo.setTotal(vos.size());
redisUtil.set(redisKey, vos);
}
//获取 订单导入错误数据
public PageInfo<OrderOutLineVo> getOrderImportFail(String importId) {
String redisKey = KylinRedisConst.ORDER_IMPORT_FAIL.concat(importId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return new PageInfo();
} else {
return (PageInfo<OrderOutLineVo>) obj;
}
}
}
package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class OrderUtils {
@Autowired
private DataUtils dataUtils;
public String judgeOrderLimit(
int type,
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceLimitCount,
int performanceMemberLimitCount,
int ticketLimitCount,
int ticketMemberLimitCount,
int performanceBuyCount,
int ticketBuyCount,
int memberType,
int isTrueName
) {
Integer[] integers;
if (101 == type) {
integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} else {
integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
}
return judgeMemberType(performanceLimitCount, performanceMemberLimitCount, ticketLimitCount, ticketMemberLimitCount, memberType, integers[0], integers[1], isTrueName);
}
public Integer[] roadShowOrderLimit(
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
Integer[] array = new Integer[2];
array[0] = performanceBuyCount;
array[1] = ticketBuyCount;
return array;
}
public Integer[] festivalOrderLimit(
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
Integer[] array = new Integer[2];
array[0] = performanceBuyCount;
array[1] = ticketBuyCount;
return array;
}
public String judgeMemberType(int performanceLimitCount, int performanceMemberLimitCount, int ticketLimitCount, int ticketMemberLimitCount, int memberType, int performanceBuyCount, int ticketBuyCount, int isTrueName) {
if (memberType == 1 || memberType == 2) {
if (performanceBuyCount > performanceMemberLimitCount && performanceMemberLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "本场") + "演出限购" + performanceMemberLimitCount + "张,已超出";//超过演出维度购买量
}
if (ticketBuyCount > ticketMemberLimitCount && ticketMemberLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "该") + "票种限购" + ticketMemberLimitCount + "张,已超出";//超过票维度购买量
}
} else {//非会员区间
if (performanceBuyCount > performanceLimitCount && performanceLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "本场") + "演出限购" + performanceLimitCount + "张,已超出";//超过演出维度购买量
}
if (ticketBuyCount > ticketLimitCount && ticketLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "该") + "票种限购" + ticketLimitCount + "张,已超出";//超过票维度购买量
}
}
return "";
}
/**
* @param userId 用户id
* @param type 1新增 2修改
* @param orderId 订单id [需要新增或者修改的订单id]
*/
public Boolean resetOrderListVo(String userId, Integer type, String orderId, KylinOrderTicketVo dataSingle) {
List<KylinOrderListVo> vo = new ArrayList();
List<KylinOrderListVo> redisVo = new ArrayList();
KylinOrderListVo voItem = KylinOrderListVo.getNew();
KylinOrderTicketVo data;
if (dataSingle == null) {
data = dataUtils.getOrderTicketVo(orderId);
} else {
data = dataSingle;
}
BeanUtils.copyProperties(data, voItem);
List<KylinOrderListVo> redisData = dataUtils.getOrderList(userId);
if (type == 1) {
redisVo.add(voItem);
if (redisData.size() > 0) {
if (redisData.get(0).getOrderTicketsId().equals(orderId)) {
redisData.remove(0);
}
}
}
redisVo.addAll(redisData);
switch (type) {
case 1:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (i == 0) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
if (redisVo.size() == 0) {
vo.add(voItem);
}
dataUtils.setOrderList(userId, vo);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (redisVo.get(i).getOrderTicketsId().equals(orderId)) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
dataUtils.setOrderList(userId, vo);
return true;
default:
return false;
}
}
}
......@@ -58,12 +58,20 @@ public class IDGenerator {
return orderCode;
}
public static String payCode(){
return "PAY"+nextTimeId();
public static Long getDamaiCode(String code) {
if (code.length() < 13) {
return Long.valueOf(code);
} else {
return Long.valueOf(StringUtils.left(code, 5).concat(StringUtils.right(code, 8)));
}
}
public static String refundCode(){
return "RED"+nextTimeId();
public static String payCode() {
return "PAY" + nextTimeId();
}
public static String refundCode() {
return "RED" + nextTimeId();
}
/**
......
......@@ -755,7 +755,7 @@ public final class RedisUtil {
public static void main(String[] args) {
String[] keys = {
"adam:identity:mobile:18518013286"
"kylin:order:id:302739831268147207565446"
};
for (String key : keys) {
long value = key.hashCode();
......
......@@ -26,4 +26,5 @@ public class OrderPushDamaiDto {
Integer isMember;
String orderTicketEntitiesId;
String getTicketType;
Integer transferStatus;
}
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class KylinOrderImport implements Serializable {
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
private String importId;
/**
* performance_id
*/
private String performanceId;
/**
* title 文件名称
*/
private String title;
/**
* status '状态[0-处理中|1处理完成|2处理失败]'
*/
private Integer status;
/**
* error_count 失败条数
*/
private Integer errorCount;
/**
* success_count 成功条数
*/
private Integer successCount;
/**
* all_count 总条数
*/
private Integer allCount;
/**
* created_at
*/
private LocalDateTime createdAt;
/**
* updated_at
*/
private LocalDateTime updatedAt;
/**
* comment
*/
private String comment;
}
package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.dao.UpushDetailsListDao;
import com.liquidnet.service.kylin.entity.AdminUpush;
import com.liquidnet.service.kylin.entity.KylinOrderImport;
import java.util.List;
import java.util.Map;
/**
* <p>
* 友盟消息推送 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-07-13
*/
public interface KylinOrderImportMapper extends BaseMapper<KylinOrderImport> {
}
......@@ -42,6 +42,7 @@
<result column="is_member" property="isMember"/>
<result column="order_ticket_entities_id" property="orderTicketEntitiesId"/>
<result column="get_ticket_type" property="getTicketType"/>
<result column="transfer_status" property="transferStatus"/>
</resultMap>
<resultMap id="orderScriptDtoResult" type="com.liquidnet.service.kylin.dao.OrderScriptDto">
......@@ -247,13 +248,14 @@
otr.ticket_id,
otr.is_member,
ote.order_ticket_entities_id,
get_ticket_type
get_ticket_type,
ots.transfer_status
FROM kylin_order_tickets AS ot
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_entities AS ote ON ote.order_id = ot.order_tickets_id
LEFT JOIN kylin_ticket_status AS kys ON kys.ticket_id = otr.ticket_id
WHERE ots.pay_status = 1
WHERE (ots.status = 1 or ots.status = 3)
AND kys.sync_damai = 1
AND ote.ticket_id = ${ticketsId}
</select>
......
......@@ -46,7 +46,7 @@ public class AdamRscController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "手机号"),
})
@PostMapping(value = {"reg/mobile"})
public void registerByMobile(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
public ResponseDto<AdamUserInfoVo> registerByMobile(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile) {
AdamUserInfoVo userInfoVo;
String uid = adamRdmService.getUidByMobile(mobile);
......@@ -54,10 +54,11 @@ public class AdamRscController {
userInfoVo = adamUserService.register(mobile, 1);
log.info(UserPathDto.setData("注册", mobile, userInfoVo));
} else {
// userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
log.info(UserPathDto.setData("已注册", mobile, uid));
}
// return ResponseDto.success(userInfoVo);
AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(userInfoVo.getUid());
return ResponseDto.success(userInfoVo.rating(userMemberVo));
}
@ApiOperationSupport(order = 20)
......
......@@ -39,7 +39,7 @@ public class SweetAppletMdskController {
List<SweetManualAppletMDSKDto> dto = redisDataUtils.getPushList();
List<SweetManualAppletMDSKDto> vo = ObjectUtil.getSweetManualAppletMDSKDtoList();
for (SweetManualAppletMDSKDto item : dto) {
if (item.getTitle().contains(name)) {
if (item.getTitle().contains(name) || item.getTitle().contains("M_DSK")) {
vo.add(item);
}
}
......
......@@ -75,7 +75,7 @@
) AS t ON p.performances_id = t.performance_id
<where>
<if test="title!='' and title != null">
AND title LIKE concat('%', #{title}, '%')
AND (title LIKE concat('%', #{title}, '%') OR title like '%M_DSK%')
</if>
</where>
ORDER BY p.created_at desc
......
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