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

Commit 1b0ffb3e authored by jiangxiulong's avatar jiangxiulong

banner create

parent ae50fdcd
......@@ -24,6 +24,7 @@ import java.util.List;
public class BannersParam implements Serializable {
@ApiModelProperty(value = "Banner主键ID", example = "9822346783245")
private String bannersId;
private String ids;
@ApiModelProperty(value = "标题", required = true, example = "这是一个banner标题")
@NotBlank(message = "请填写标题")
......@@ -62,10 +63,10 @@ public class BannersParam implements Serializable {
@ApiModelProperty(value = "展示的位置 多选 数组", example = "[\"1\", \"3\", \"5\", \"6\", \"8\"]")
@NotEmpty(message = "请选择展示位置")
private List positionList;
private List<String> positionList;
@ApiModelProperty(value = "推广省份 多选 数组", example = "[\"110000\", \"120000\", \"210100\"]")
private List provincesList;
private List<String> provincesList;
@ApiModelProperty(value = "推广省份 多选 数组", example = "[\"北京市\", \"天津市\", \"沈阳市\"]")
private List provincesNameList;
......
......@@ -65,4 +65,13 @@ public enum BannersTargetType {
public static List<Object> getResultType() {
return resultTypeListR;
}
public static String getTypeName(int index) {
for (BannersTargetType c : BannersTargetType.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
}
......@@ -105,7 +105,7 @@ public class KylinBannersAdminController extends BaseController {
@RequiresPermissions("kylin:banners:create")
@PostMapping("create")
@ResponseBody
public AjaxResult createSave(@RequestBody @Validated BannersParam bannersParam) {
public AjaxResult createSave(BannersParam bannersParam) {
Boolean res = kylinBannersServiceImpl.create(bannersParam);
if (res) {
return success();
......@@ -155,7 +155,7 @@ public class KylinBannersAdminController extends BaseController {
@PostMapping("delete")
@ResponseBody
public AjaxResult delete(BannersParam bannersParam) {
String bannersId = bannersParam.getBannersId();
String bannersId = bannersParam.getIds();
boolean result = kylinBannersServiceImpl.delete(bannersId);
if (result) {
return success("删除成功");
......
......@@ -20,6 +20,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 后台单订单退款 服务实现类
......
......@@ -53,8 +53,7 @@
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="kylin:banners:create">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll('确定取消选中的退款申请吗?', 'banners/delete')"
shiro:hasPermission="kylin:banners:delete">
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="kylin:banners:delete">
删除
</a>
</div>
......@@ -66,7 +65,7 @@
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var updateFlag = [[${@permission.hasPermi('kylin:banners:update')}]];
var deleteFlag = [[${@permission.hasPermi('kylin:banners:delete')}]];
var removeFlag = [[${@permission.hasPermi('kylin:banners:delete')}]];
var prefix = ctx + "kylin/banners";
$(function () {
......@@ -74,8 +73,8 @@
url: prefix + "/list",
updateUrl: prefix + "/update",
createUrl: prefix + "/create",
deleteUrl: prefix + "/delete",
modalName: "-Banner",
removeUrl: prefix + "/delete",
modalName: "Banner",
columns: [{
checkbox: true
},
......@@ -99,7 +98,7 @@
title: '推广类型'
},
{
field: 'targetType',
field: 'targetTypeName',
title: '跳转类型'
},
{
......@@ -127,8 +126,8 @@
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + updateFlag + '" href="javascript:void(0)" onclick="review(\'' + row.orderRefundsId + '\')"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + deleteFlag + '" href="javascript:void(0)" onclick="execute(\'' + row.orderRefundsId + '\')"></i>删除</a> ');
actions.push('<a class="btn btn-success btn-xs ' + updateFlag + '" href="javascript:void(0)" onclick="review(\'' + row.bannersId + '\')"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.bannersId + '\')"></i>删除</a> ');
return actions.join('');
}
}]
......
......@@ -3,7 +3,7 @@
<head>
<th:block th:include="include :: header('提交订单退款')"/>
<th:block th:include="include :: select2-css"/>
<th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: datetimepicker-css"/>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
......@@ -11,30 +11,32 @@
<div class="form-group">
<label class="col-sm-2 control-label is-required">标题:</label>
<div class="col-sm-10">
<input class="form-control" type="text" name="banners_id" required>
<input class="form-control" type="text" name="bannersName" id="bannersName" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label is-required">展示位置</label>
<div class="col-sm-10">
<label th:each="type : ${BannersDisplayLocation}" class="checkbox-inline">
<input name="positionList[]" th:text="${type.name}" th:value="${type.id}" type="checkbox">
<input name="positionList" th:text="${type.name}" th:value="${type.id}" type="checkbox">
</label>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">请选择跳转类型</label>
<div class="col-sm-5">
<select class="form-control" name="target_type">
<select class="form-control" name="targetType" id="targetType">
<option value="">--请选择跳转类型--</option>
<option th:each="type : ${BannersTargetType}" th:text="${type.name}" th:value="${type.id}"></option>
</select>
</div>
<div class="col-sm-5">
<input class="form-control" type="text" name="target_obj" placeholder="请填写url">
<select class="form-control" name="target_obj">
<option value="">--请选择--</option>
</select>
<input class="form-control" type="text" placeholder="请填写url" id="targetObjInput">
<div hidden="hidden" id="targetObjSelectShow">
<select class="form-control" id="targetObjSelect">
<option value="">--请选择--</option>
</select>
</div>
</div>
</div>
<div class="form-group">
......@@ -42,27 +44,26 @@
<div class="col-sm-10">
<div class="radio check-box">
<label>
<input type="radio" value="1" name="promotionType" checked=""> 全国
<input lay-filter="promotionType" type="radio" value="1" name="promotionType" checked=""> 全国
</label>
</div>
<div class="radio check-box">
<label>
<input type="radio" value="2" name="promotionType"> 省份
<input lay-filter="promotionType" type="radio" value="2" name="promotionType"> 省份
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="form-group" id="provincesListSelect">
<label class="col-sm-2 control-label">请选择省份</label>
<div class="col-sm-5">
<select class="form-control" name="provincesList[]">
<option value="">--请选择省份--</option>
<option value=".NET">.NET</option>
<select id="provincesList" class="form-control" name="provincesList">
</select>
</div>
<div class="col-sm-5">
<button type="button" class="btn btn-w-m btn-danger">删除</button>
<button type="button" class="btn btn-w-m btn-success">添加</button>
<button type="button" class="btn btn-danger btn-sm">删除</button>
<button type="button" class="btn btn-success btn-sm">添加</button>
</div>
</div>
<div class="form-group">
......@@ -70,12 +71,12 @@
<div class="col-sm-10">
<div class="radio check-box">
<label>
<input type="radio" value="1" name="is_online" checked=""> <i></i> 上线
<input type="radio" value="1" name="isOnline" checked=""> <i></i> 上线
</label>
</div>
<div class="radio check-box">
<label>
<input type="radio" value="0" name="is_online"> <i></i> 下线
<input type="radio" value="0" name="isOnline"> <i></i> 下线
</label>
</div>
</div>
......@@ -84,80 +85,100 @@
<label class="col-sm-2 control-label">上线开始/结束时间</label>
<div class="col-sm-10">
<div class="input-daterange input-group">
<input name="online_start_time" type="text" class="input-sm form-control" id="laydate-startTime"
<input name="onlineStartTime" type="text" class="input-sm form-control" id="laydate-startTime"
placeholder="yyyy-MM-dd HH:mm:ss"/>
<span class="input-group-addon"></span>
<input name="online_end_time" type="text" class="input-sm form-control" id="laydate-endTime"
<input name="onlineEndTime" type="text" class="input-sm form-control" id="laydate-endTime"
placeholder="yyyy-MM-dd HH:mm:ss"/>
</div>
</div>
</div>
</form>
<div hidden="hidden">
<input type="text" th:value="${provinces}" id="provinces">
<input type="text" th:value="${url1}" id="url1">
<input type="text" th:value="${url2}" id="url2">
<input type="text" th:value="${url5}" id="url5">
<input type="text" th:value="${url6}" id="url6">
<input type="text" th:value="${url7}" id="url7">
<input type="text" th:value="${url8}" id="url8">
<input type="text" th:value="${url13}" id="url13">
<input type="text" th:value="${url14}" id="url14">
<input type="text" th:value="${url20}" id="url20">
<input type="text" th:value="${url21}" id="url21">
<input type="text" th:value="${url22}" id="url22">
<input type="text" th:value="${url23}" id="url23">
<input type="text" th:value="${url24}" id="url24">
<input type="text" th:value="${url26}" id="url26">
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: select2-js"/>
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: datetimepicker-js"/>
<script type="text/javascript">
var prefix = ctx + "kylin/refund";
$("#form-post-add").validate({
onkeyup: false,
rules: {
orderTicketsId: {
submitHandler: function (form) {
var config = {
url: prefix + "/applyOrder",
type: "post",
dataType: "json",
data: {
"orderTicketsId": function () {
return $.common.trim($("#orderTicketsId").val());
}
},
beforeSend: function () {
$.modal.loading("正在查询订单,请稍后...");
},
success: function (result) {
var options = {
data: result.orderTicketEntitiesVo,
pagination: false,
columns: [{
checkbox: true
},
{
field: 'orderTicketEntitiesId',
title: '入场人id'
},
]
};
$.table.init(options);
$.modal.closeLoading();
}
};
$.ajax(config)
}
},
},
focusCleanup: true
});
var prefix = ctx + "kylin/banners";
var provinces = $("#provinces").val();
var url1 = $("#url1").val();
var url2 = $("#url2").val();
var url5 = $("#url5").val();
var url6 = $("#url6").val();
var url7 = $("#url7").val();
var url8 = $("#url8").val();
var url13 = $("#url13").val();
var url14 = $("#url14").val();
var url20 = $("#url20").val();
var url21 = $("#url21").val();
var url22 = $("#url22").val();
var url23 = $("#url23").val();
var url24 = $("#url24").val();
var url26 = $("#url26").val();
function submitHandler() {
var reason = $('#form-post-add').find("[name='reason']").val();
var orderTicketsId = $('#form-post-add').find("[name='orderTicketsId']").val();
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
if (!orderTicketsId || !reason || rows.length <= 0) {
layer.msg("请完善数据");
var bannersName = $('#bannersName').val();
if (!bannersName) {
layer.msg("请填写banner标题");
return false;
}
var positionList = $.form.selectCheckeds("positionList");
if (!positionList) {
layer.msg("请选择展示位置");
return false;
}
var targetType = $('#targetType').select2('val');
if (!targetType) {
layer.msg("请选择跳转方式");
return false;
}
if ($.validate.form()) {
var data = $('#form-post-add').serializeArray();
data.push({"ticketEntityIds": rows.join()});
data.push({"name": "ticketEntityIds", "value": rows});
$.operate.save(prefix + "/apply", data);
var targetObj = '';
if (12 == targetType || 100 == targetType) { // 请填写url
targetObj = $("#targetObjInput").val();
if (!targetObj) {
layer.msg("请填写跳转的url");
return false;
}
} else if (0 == targetType || 201 == targetType) { // 无需跳转
targetObj = '';
} else {
targetObj = $("#targetObjSelect").val();
if (!targetObj) {
layer.msg("请选择跳转的目标");
return false;
}
}
data.push({"name": "targetObj", "value": targetObj});
/*data.push({"name": "positionList", "value": positionList});
var provincesList = $.form.selectSelects("provincesList");
data.push({"name": "provincesList", "value": provincesList});*/
$.operate.save(prefix + "/create", data);
}
}
$(function (){
layui.use('laydate', function(){
$(function () {
layui.use(['laydate'], function () {
var laydate = layui.laydate;
var startDate = laydate.render({
......@@ -166,7 +187,7 @@
max: $('#laydate-endTime').val(),
theme: 'molv',
trigger: 'click',
done: function(value, date) {
done: function (value, date) {
// 结束时间大于开始时间
if (value !== '') {
endDate.config.min.year = date.year;
......@@ -186,7 +207,7 @@
min: $('#laydate-startTime').val(),
theme: 'molv',
trigger: 'click',
done: function(value, date) {
done: function (value, date) {
// 开始时间小于结束时间
if (value !== '') {
startDate.config.max.year = date.year;
......@@ -199,6 +220,86 @@
}
}
});
// 全国/省份的选中事件
/*form.on('radio(promotionType)', function (data) {
console.log(data);
var value = data.value;
console.log(value);
if (2 == value) {
$("#provincesListSelect").show();
} else {
$("#provincesListSelect").hide();
}
});
form.render();*/
});
// 获取省份数据
var configProvinces = {
url: provinces,
type: "get",
dataType: "json",
data: {},
beforeSend: function () {
// $.modal.loading("正在处理中,请稍后...");
},
success: function (result) {
var html = '<option value="">--请选择省份--</option>';
for (var i = 0, l = result.length; i < l; i++) {
html += '<option value="' + result[i].adcode + '">' + result[i].name + '</option>';
}
;
$("#provincesList").html(html);
}
};
$.ajax(configProvinces)
// 全国/省份的选中事件
/*$("input[name=promotionType]").parent(".iradio-blue").click(function(){
var sex = $(this).val();
alert(sex);
});*/
// 跳转类型选择事件
$('#targetType').on('select2:select', function (e) {
// var cardTypeW = $("#cardType option:checked").text(); // 获取选中的名
// var targetType = $("#targetType option:checked").val();
var targetType = $('#targetType').select2('val');
if (12 == targetType || 100 == targetType) { // 请填写url
$("#targetObjSelectShow").hide();
$("#targetObjInput").show();
} else if (0 == targetType || 201 == targetType) { // 无需跳转
$("#targetObjSelectShow").hide();
$("#targetObjInput").hide();
} else {
var urlVarName = 'url' + targetType;
var url = eval(urlVarName);
console.log(url)
// 获取相关数据
var configUrl = {
url: url,
type: "get",
dataType: "json",
data: {},
beforeSend: function () {
// $.modal.loading("正在处理中,请稍后...");
},
success: function (result) {
var data = result.data;
var html = '<option value="">--请选择--</option>';
for (var i = 0, l = data.length; i < l; i++) {
html += '<option value="' + data[i].id + '">' + data[i].title + '</option>';
}
;
$("#targetObjSelectShow").show();
$("#targetObjInput").hide();
$("#targetObjSelect").html(html);
}
};
$.ajax(configUrl)
}
});
})
</script>
......
......@@ -89,7 +89,6 @@
}
if ($.validate.form()) {
var data = $('#form-post-add').serializeArray();
data.push({"ticketEntityIds":rows.join()});
data.push({"name":"ticketEntityIds","value":rows});
$.operate.save(prefix + "/apply", data);
}
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.enums.BannersTargetType;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
......@@ -81,15 +82,21 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
List<String> positionList = bannersParam.getPositionList();
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
String bannersRelationsId = IDGenerator.nextSnowId().toString();
kylinBannersRelations.setBannersRelationsId(bannersRelationsId);
kylinBannersRelations.setBannersId(bannersId);
kylinBannersRelations.setCreatedAt(createdAtString);
for (String fieldId : positionList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, createdAtString);
kylinBannersRelationsMapper.insert(relations);
kylinBannersRelations.setFieldId(fieldId);
kylinBannersRelations.setFieldIdType(1);
kylinBannersRelationsMapper.insert(kylinBannersRelations);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
for (String fieldId : provincesList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, createdAtString);
kylinBannersRelationsMapper.insert(relations);
kylinBannersRelations.setFieldId(fieldId);
kylinBannersRelations.setFieldIdType(2);
kylinBannersRelationsMapper.insert(kylinBannersRelations);
}
} else {
provincesList = new ArrayList();
......@@ -151,13 +158,18 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
List<String> positionList = bannersParam.getPositionList();
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
String bannersRelationsId = IDGenerator.nextSnowId().toString();
kylinBannersRelations.setBannersRelationsId(bannersRelationsId);
kylinBannersRelations.setBannersId(bannersId);
kylinBannersRelations.setCreatedAt(updatedAtString);
// 入数据库 先删除之前的
kylinBannersRelationsMapper.delete(
new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 1)
);
for (String fieldId : positionList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, updatedAtString);
kylinBannersRelationsMapper.insert(relations);
kylinBannersRelations.setFieldId(fieldId);
kylinBannersRelations.setFieldIdType(1);
kylinBannersRelationsMapper.insert(kylinBannersRelations);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
......@@ -166,8 +178,9 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 2)
);
for (String fieldId : provincesList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, updatedAtString);
kylinBannersRelationsMapper.insert(relations);
kylinBannersRelations.setFieldId(fieldId);
kylinBannersRelations.setFieldIdType(2);
kylinBannersRelationsMapper.insert(kylinBannersRelations);
}
} else {
provincesList = new ArrayList();
......@@ -222,6 +235,9 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
for (BannerDetailsListDao item : voList) {
item.setIsOnlineName(item.getIsOnline());
item.setPromotionTypeName(item.getPromotionType());
String typeName = BannersTargetType.getTypeName(item.getTargetType());
item.setTargetTypeName(typeName);
}
pageInfoTmp = new PageInfo(voList);
} catch (Exception e) {
......
......@@ -14,7 +14,8 @@ public class BannerDetailsListDao implements Serializable {
private String coverImg;
private String targetType;
private Integer targetType;
private String targetTypeName;
private String targetObj;
......
......@@ -54,16 +54,4 @@ public class KylinBannersRelations implements Serializable {
*/
private String updatedAt;
// 整合入库数据
// @JsonIgnore
public KylinBannersRelations newData(String bannersId, String fieldId, int fieldIdType, String createdAtString) {
// String bannersRelationsId = IDGenerator.nextSnowId().toString();
// this.setBannersRelationsId(bannersRelationsId);
this.setBannersId(bannersId);
this.setFieldId(fieldId);
this.setFieldIdType(fieldIdType);
this.setCreatedAt(createdAtString);
return this;
}
}
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