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

Commit 0415cd96 authored by jiangxiulong's avatar jiangxiulong

正在 1.1 one

parent 919ae6a7
package com.liquidnet.service.kylin.dto.param.admin;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 观演人修改记录表
* </p>
*
* @author jiangxiulong
* @since 2024-06-19
*/
@Data
public class EntitiesEditParam implements Serializable {
/**
* order_ticket_entities_id
*/
private String orderTicketEntitiesId;
/**
* 入场人证件类型 1大陆身份证 2港澳通行证 3台胞证 4护照 5军官证
*/
private Integer enterType;
/**
* 入场人姓名
*/
private String enterName;
/**
* 入场人证件号
*/
private String enterIdCode;
/**
* 备注原因
*/
private String remark;
/**
* 凭证图片
*/
private String images;
}
package com.liquidnet.service.kylin.service.admin;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntitiesEditLog;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 观演人修改记录表 服务类
* </p>
*
* @author jiangxiulong
* @since 2024-06-19
*/
public interface IKylinOrderTicketEntitiesEditLogService extends IService<KylinOrderTicketEntitiesEditLog> {
}
drop table if exists kylin_order_ticket_entities_edit_log;
CREATE TABLE `kylin_order_ticket_entities_edit_log`
(
`mid` bigint unsigned AUTO_INCREMENT PRIMARY KEY,
`entities_edit_log_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'entities_edit_log_id',
`order_ticket_entities_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'order_ticket_entities_id',
`sys_user_id` bigint NOT NULL DEFAULT 0 COMMENT '操作人ID',
`sys_user_name` varchar(100) NOT NULL DEFAULT '' COMMENT '操作人昵称',
`enter_type_old` tinyint NOT NULL DEFAULT 1 COMMENT '旧 入场人证件类型',
`enter_name_old` varchar(100) NOT NULL DEFAULT '' COMMENT '旧 入场人姓名',
`enter_id_code_old` varchar(50) NOT NULL DEFAULT '' COMMENT '旧 入场人证件号',
`enter_type` tinyint NOT NULL DEFAULT 1 COMMENT '入场人证件类型 1大陆身份证 2港澳通行证 3台胞证 4护照 5军官证',
`enter_name` varchar(100) NOT NULL DEFAULT '' COMMENT '入场人姓名',
`enter_id_code` varchar(50) NOT NULL DEFAULT '' COMMENT '入场人证件号',
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注原因',
`images` text NULL COMMENT '凭证图片',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
KEY `idx_entities_edit_log_id` (`entities_edit_log_id`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci COMMENT '观演人修改记录表';
\ No newline at end of file
package com.liquidnet.client.admin.web.controller.zhengzai.kylin;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
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.domain.entity.SysUser;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BannersTargetType;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.kylin.service.IToolService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dao.OrderTicketsListDao;
import com.liquidnet.service.kylin.dao.PerformanceSponsorDao;
import com.liquidnet.service.kylin.dto.param.admin.EntitiesEditParam;
import com.liquidnet.service.kylin.dto.param.admin.OrderListReq;
import com.liquidnet.service.kylin.dto.vo.admin.OrderDetailsAdminVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntitiesEditLog;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesEditLogMapper;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper;
import com.liquidnet.service.kylin.service.admin.IKylinOrderTicketsAdminService;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 订单Controller
......@@ -30,18 +44,114 @@ import java.util.List;
public class KylinOrderTicketsController extends BaseController {
private String prefix = "zhengzai/kylin/order";
@Value("${liquidnet.client.admin.platformUrl}")
private String platformUrl;
@Value("${liquidnet.aliyun.oss.imgUrl}")
private String imgUrl;
@Autowired
private IKylinOrderTicketsAdminService iKylinOrderTicketsAdminService;
@Autowired
private IKylinPerformancesAdminService kylinPerformancesService;
@Autowired
private IToolService toolService;
@Autowired
private KylinOrderTicketEntitiesMapper kylinOrderTicketEntitiesMapper;
@Autowired
private KylinOrderTicketEntitiesEditLogMapper kylinOrderTicketEntitiesEditLogMapper;
@RequiresPermissions("kylin:order:orderlist:view")
@GetMapping("/orderList")
public String tickets() {
return prefix + "/orderList/orderList";
}
@GetMapping("/enterEditList/{id}")
@RequiresPermissions("kylin:order:orderlist:view")
public String enterEditList(@PathVariable("id") String id, ModelMap mmap) {
mmap.put("id", id);
return prefix + "/orderList/enterEditList";
}
@Log(title = "观演人信息修改记录列表", businessType = BusinessType.LIST)
@RequiresPermissions("kylin:order:orderlist:view")
@PostMapping("/enterEditList/{id}")
@ResponseBody
public TableDataInfo enterEditListPost(@PathVariable("id") String id) {
List<KylinOrderTicketEntitiesEditLog> editLogs = kylinOrderTicketEntitiesEditLogMapper.selectList(
Wrappers.lambdaQuery(KylinOrderTicketEntitiesEditLog.class)
.eq(KylinOrderTicketEntitiesEditLog::getOrderTicketEntitiesId, id)
);
for (KylinOrderTicketEntitiesEditLog editLog : editLogs) {
String result = Arrays.stream(editLog.getImages().split(","))
.map(url -> imgUrl + url)
.collect(Collectors.joining(","));
editLog.setImages(result);
}
return getDataTable(editLogs);
}
@GetMapping("/enterEdit/{id}")
@RequiresPermissions("kylin:order:orderlist:view")
public String enterEdit(@PathVariable("id") String id, ModelMap mmap) {
mmap.put("id", id);
mmap.put("platformUrl", platformUrl);
List<Object> bannersTargetType = BannersTargetType.getResultType();
mmap.put("BannersTargetType", bannersTargetType);
KylinOrderTicketEntities kylinOrderTicketEntities = kylinOrderTicketEntitiesMapper.selectOne(
Wrappers.lambdaQuery(KylinOrderTicketEntities.class)
.eq(KylinOrderTicketEntities::getOrderTicketEntitiesId, id)
);
mmap.put("entitie", kylinOrderTicketEntities);
return prefix + "/orderList/enterEdit";
}
@PostMapping("/enterEdit")
@RequiresPermissions("kylin:order:orderlist:view")
@Log(title = "修改观演人信息", businessType = BusinessType.UPDATE)
@ResponseBody
public AjaxResult enterEditPost(EntitiesEditParam param) {
String orderTicketEntitiesId = param.getOrderTicketEntitiesId();
KylinOrderTicketEntities entities = kylinOrderTicketEntitiesMapper.selectOne(
Wrappers.lambdaQuery(KylinOrderTicketEntities.class)
.eq(KylinOrderTicketEntities::getOrderTicketEntitiesId, orderTicketEntitiesId)
);
String enterName = param.getEnterName();
String enterMobile = entities.getEnterMobile();
String enterIdCode = param.getEnterIdCode();
Integer enterType = param.getEnterType();
String orderId = entities.getOrderId();
// 验证 todo
// 修改
toolService.supplementEnter(orderTicketEntitiesId, enterName, enterMobile, enterIdCode, enterType, orderId);
// 记录
KylinOrderTicketEntitiesEditLog editLog = KylinOrderTicketEntitiesEditLog.getNew();
editLog.setEntitiesEditLogId(IDGenerator.nextSnowId());
editLog.setOrderTicketEntitiesId(orderTicketEntitiesId);
editLog.setEnterType(enterType);
editLog.setEnterIdCode(enterIdCode);
editLog.setEnterName(enterName);
editLog.setRemark(param.getRemark());
editLog.setImages(param.getImages());
SysUser sysUser = ShiroUtils.getSysUser();
editLog.setSysUserId(sysUser.getUserId());
editLog.setSysUserName(sysUser.getUserName());
editLog.setEnterNameOld(entities.getEnterName());
editLog.setEnterTypeOld(entities.getEnterType());
editLog.setEnterIdCodeOld(entities.getEnterIdCode());
kylinOrderTicketEntitiesEditLogMapper.insert(editLog);
return success();
}
/**
* 查询订单列表
*/
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('修改订单')" />
<th:block th:include="include :: datetimepicker-css" />
......@@ -89,6 +89,11 @@
<div class="form-control-static" th:text="${@dict.getLabel('zhengzai_get_ticket_type',orderDetailsVo.orderTicketVo.getTicketType)}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">联系方式:</label>
<div class="form-control-static" th:text="*{orderTicketVo.userMobile}">
</div>
</div>
<div th:each="ticketEntity,ticketEntityStat : *{orderTicketEntitiesVo}" class="form-group select-list" >
<div class="hr-line-dashed"></div>
<label class="col-sm-3 control-label is-required">取票人[[${ticketEntityStat.count}]]:</label>
......@@ -99,21 +104,26 @@
<div class="col-sm-3">
<input th:value="${@dict.getLabel('zhengzai_certificate_type',ticketEntity.enterType)}" class="form-control" type="text" readonly>
</div>
<label class="col-sm-3 control-label">电话:</label>
<!-- <label class="col-sm-3 control-label">电话:</label>-->
<!-- <div class="col-sm-3">-->
<!-- <input th:value="${ticketEntity.enterMobile}" class="form-control" type="text" readonly>-->
<!-- </div>-->
<label class="col-sm-3 control-label">票务状态:</label>
<div class="col-sm-3">
<input th:value="${ticketEntity.enterMobile}" class="form-control" type="text" readonly>
<input th:value="${@dict.getLabel('zhengzai_payment_type',ticketEntity.isPayment)}" class="form-control" type="text" readonly>
</div>
<label class="col-sm-3 control-label">证件号:</label>
<div class="col-sm-3">
<input th:value="${ticketEntity.enterIdCode}" class="form-control" type="text" readonly>
</div>
<label class="col-sm-3 control-label">票务状态:</label>
<div class="col-sm-3">
<input th:value="${@dict.getLabel('zhengzai_payment_type',ticketEntity.isPayment)}" class="form-control" type="text" readonly>
</div>
<label class="col-sm-3 control-label">出票状态</label>
<!-- <label class="col-sm-3 control-label">出票状态:</label>-->
<!-- <div class="col-sm-3">-->
<!-- <input th:value="${@dict.getLabel('zhengzai_ticket_status',ticketEntity.status)}" class="form-control" type="text" readonly>-->
<!-- </div>-->
<label class="col-sm-3 control-label">操作</label>
<div class="col-sm-3">
<input th:value="${@dict.getLabel('zhengzai_ticket_status',ticketEntity.status)}" class="form-control" type="text" readonly>
<a class="btn btn-danger btn-xs" th:onclick="enterEdit([[${ticketEntity.orderTicketEntitiesId}]])">修改</a>
<a class="btn btn-success btn-xs" th:onclick="enterEditList([[${ticketEntity.orderTicketEntitiesId}]])">修改记录</a>
</div>
</div>
</form>
......@@ -121,9 +131,16 @@
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "kylin/tickets";
var prefix = ctx + "kylin/order";
var payTypeDatas = [[${@dict.getType('zhengzai_pay_type')}]];
function enterEdit(id) {
$.modal.open('修改观演人信息', prefix + "/enterEdit/"+id)
}
function enterEditList(id) {
$.modal.open('观演人信息修改记录', prefix + "/enterEditList/"+id)
}
$("#form-tickets-edit").validate({
focusCleanup: true
});
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('修改观演人信息')"/>
<th:block th:include="include :: select2-css"/>
<th:block th:include="include :: bootstrap-fileinput-css"/>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-post-add">
<div class="form-group">
<label class="col-sm-2 control-label is-required">观演人姓名</label>
<div class="col-sm-10">
<input th:value="${#strings.defaultString(entitie.enterName, '')}" class="form-control" type="text" name="enterName" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label is-required">证件类型</label>
<div class="col-sm-10">
<select required class="form-control" name="enterType" th:with="type=${@dict.getType('zhengzai_certificate_type')}">
<option value="">--请选择证件类型--</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
th:field="*{entitie.enterType}">
</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label is-required">证件号</label>
<div class="col-sm-10">
<input th:value="${#strings.defaultString(entitie.enterIdCode, '')}" class="form-control" type="text" name="enterIdCode" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label is-required">备注原因</label>
<div class="col-sm-10">
<textarea rows="3" name="remark" placeholder="" class="form-control" required></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label is-required">上传凭证</label>
<div class="col-sm-10">
<div class="file-loading">
<input id="fileinput-1" type="file" name="file" data-max-file-count="2" multiple>
</div>
</div>
</div>
<input hidden id="images" name="images">
<input hidden id="orderTicketEntitiesId" name="orderTicketEntitiesId" th:value="${entitie.orderTicketEntitiesId}">
</form>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: select2-js"/>
<th:block th:include="include :: bootstrap-fileinput-js"/>
<th:block th:include="include :: bootstrap-suggest-js"/>
<script type="text/javascript">
var prefix = ctx + "kylin/order";
var platformUrl = "[[${platformUrl}]]";
function submitHandler() {
if ($.validate.form()) {
var data = $('#form-post-add').serializeArray();
var images = $('#images').val();
if (!images) {
layer.msg("请上传图片,请勿忘记点击上传按钮");
return false;
}
$.operate.save(prefix + "/enterEdit", data);
}
}
$(function () {
let uploadedFilePaths = [];
$("#fileinput-1").fileinput({
'theme': 'explorer-fas',
layoutTemplates: {
actionUpload: '',
},
'uploadUrl': platformUrl + "/platform/basicServices/alOss/upload",
"uploadExtraData": {
"pathName" : "kylinOrderEnter",
"buckType" : 1
},
showClose: false,
browseOnZoneClick: false,
}).on("fileuploaded", function (event, data, previewId, index) {
// 将上传的文件路径添加到数组中
uploadedFilePaths.push(data.response.data.ossPath);
// 更新隐藏输入字段的值
$("#images").val(uploadedFilePaths.join(','));
});
})
</script>
</body>
</html>
\ No newline at end of file
<!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('观演人信息修改记录')"/>
<style>
.img-circle {
border-radius: 0 !important; /* 覆盖 border-radius 样式,设置为0 */
}
</style>
</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"/>
<th:block th:include="include :: bootstrap-suggest-js"/>
<th:block th:include="include :: bootstrap-typeahead-js"/>
<script th:inline="javascript">
var prefix = ctx + "kylin/order";
var id = [[${id}]];
var certificateType = [[${@dict.getType('zhengzai_certificate_type')}]];
$(function () {
var options = {
url: prefix + "/enterEditList/" + id,
modalName: "观演人信息修改记录",
columns: [{
field: 'createdAt',
title: '时间',
formatter: function (value, row, index) {
return $.common.sprintf("<span>%s</span>", null != value ? value.replace("T"," ").substring(0, 19) : value);
}
},
{
field: 'formatter',
title: '原信息',
formatter: function (value, row, index) {
return '证件类型: ' + $.table.selectDictLabel(certificateType, row.enterTypeOld) + '<br>' +
'姓名: ' + row.enterNameOld + '<br>' +
'证件号: ' + row.enterIdCodeOld + '<br>';
}
},
{
field: 'formatter',
title: '变更信息',
formatter: function (value, row, index) {
return '证件类型: ' + $.table.selectDictLabel(certificateType, row.enterType) + '<br>' +
'姓名: ' + row.enterName + '<br>' +
'证件号: ' + row.enterIdCode + '<br>';
}
},
{
field: 'remark',
title: '备注原因'
},
{
field: 'images',
title: '变更凭证',
formatter: function(value, row, index) {
var arr = value.split(",");
var str = "";
for(var i=0;i<arr.length;i++){
str += $.table.imageView(arr[i],"300", "600");
}
return str;
}
},
{
field: 'sysUserName',
title: '操作人'
}]
};
$.table.init(options);
});
</script>
</body>
</html>
\ No newline at end of file
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 观演人修改记录表
* </p>
*
* @author jiangxiulong
* @since 2024-06-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinOrderTicketEntitiesEditLog implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* entities_edit_log_id
*/
private String entitiesEditLogId;
/**
* order_ticket_entities_id
*/
private String orderTicketEntitiesId;
/**
* 操作人ID
*/
private Long sysUserId;
/**
* 操作人昵称
*/
private String sysUserName;
/**
* 旧 入场人证件类型
*/
private Integer enterTypeOld;
/**
* 旧 入场人姓名
*/
private String enterNameOld;
/**
* 旧 入场人证件号
*/
private String enterIdCodeOld;
/**
* 入场人证件类型 1大陆身份证 2港澳通行证 3台胞证 4护照 5军官证
*/
private Integer enterType;
/**
* 入场人姓名
*/
private String enterName;
/**
* 入场人证件号
*/
private String enterIdCode;
/**
* 备注原因
*/
private String remark;
/**
* 凭证图片
*/
private String images;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final KylinOrderTicketEntitiesEditLog obj = new KylinOrderTicketEntitiesEditLog();
public static KylinOrderTicketEntitiesEditLog getNew() {
try {
return (KylinOrderTicketEntitiesEditLog) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinOrderTicketEntitiesEditLog();
}
}
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntitiesEditLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 观演人修改记录表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2024-06-19
*/
public interface KylinOrderTicketEntitiesEditLogMapper extends BaseMapper<KylinOrderTicketEntitiesEditLog> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesEditLogMapper">
</mapper>
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