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

Commit 23742b0a authored by 胡佳晨's avatar 胡佳晨

Merge remote-tracking branch 'origin/dev' into dev

parents 3cb0c084 77ca42bf
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.dto.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
......@@ -27,9 +28,11 @@ public class BannersSearchParam implements Serializable {
@ApiModelProperty(value = "推广类型 1全国 2省份", example = "1", allowableValues = "1,2")
private Integer promotionType;
@ApiModelProperty(value = "页数 ", example = "1")
private Integer page;
@ApiModelProperty(value = "页数", example = "0")
@NotNull(message = "不能为空")
private Integer pageSize;
@ApiModelProperty(value = "数量 ", example = "10")
private Integer size;
@ApiModelProperty(value = "数量", example = "20")
@NotNull(message = "不能为空")
private Integer pageNum;
}
package com.liquidnet.client.admin.web.controller.zhengzai.kylin;
import com.github.pagehelper.PageInfo;
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.zhengzai.kylin.service.impl.KylinBannersServiceImpl;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 轮播图 后端管理控制器
* </p>
*
* @author jiangxiulong
* @since 2021-05-01
*/
@Controller
@RequestMapping("/kylin/banners")
public class KylinBannersAdminController extends BaseController {
private String prefix = "zhengzai/kylin/banners";
@Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl;
@RequiresPermissions("kylin:banners:view")
@GetMapping()
public String banners() {
return prefix + "/banners";
}
@GetMapping("/create")
public String create()
{
return prefix + "/create";
}
@RequiresPermissions("kylin:banners:create")
@PostMapping("create")
@ResponseBody
public AjaxResult createSave(@RequestBody @Validated BannersParam bannersParam) {
Boolean res = kylinBannersServiceImpl.create(bannersParam);
if (res) {
return success();
} else {
return error("添加banner失败");
}
}
@GetMapping("/update/{bannersId}")
public String update(@PathVariable("bannersId") String bannersId, ModelMap mmap)
{
KylinBannersVo result = null;
result = kylinBannersServiceImpl.detail(bannersId);
mmap.put("KylinBannersVo", result);
return prefix + "/update";
}
@RequiresPermissions("kylin:banners:update")
@PostMapping("update")
@ResponseBody
public AjaxResult updateSave(@RequestBody BannersParam bannersParam) {
boolean res = kylinBannersServiceImpl.update(bannersParam);
if (res) {
return success();
} else {
return error("修改banner失败");
}
}
@RequiresPermissions("kylin:banners:detail")
@GetMapping("/details/{bannersId}")
public String detail(@PathVariable("bannersId") String bannersId, ModelMap mmap) {
KylinBannersVo result = null;
result = kylinBannersServiceImpl.detail(bannersId);
mmap.put("KylinBannersVo", result);
return prefix + "/details";
}
@RequiresPermissions("kylin:banners:list")
@PostMapping("list")
@ResponseBody
public TableDataInfo bannerList(BannersSearchParam bannersSearchParam) {
PageInfo<BannerDetailsListDao> result = kylinBannersServiceImpl.bannerList(bannersSearchParam);
return getDataTable(result.getList());
}
@RequiresPermissions("kylin:banners:delete")
@PostMapping("delete")
@ResponseBody
public AjaxResult delete(BannersParam bannersParam) {
String bannersId = bannersParam.getBannersId();
boolean result = kylinBannersServiceImpl.delete(bannersId);
if (result) {
return success("删除成功");
} else {
return error("删除失败");
}
}
}
<!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('Banner列表')"/>
</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">
<ul>
<li>
<label>标题:</label>
<input type="text" name="bannersName"/>
</li>
<li>
<label>跳转类型:</label>
<select name="targetType">
<option value="">全部</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</li>
<li>
<label>是否上线:</label>
<select name="targetType">
<option value="">全部</option>
<option value="0">下线</option>
<option value="1">上线</option>
</select>
</li>
<li>
<label>推广类型:</label>
<select name="targetType">
<option value="">全部</option>
<option value="1">全国</option>
<option value="2">省份</option>
</select>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<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>
</div>
<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 detailFlag = [[${@permission.hasPermi('kylin:banners:detail')}]];
var updateFlag = [[${@permission.hasPermi('kylin:banners:update')}]];
var deleteFlag = [[${@permission.hasPermi('kylin:banners:delete')}]];
var prefix = ctx + "kylin/banners";
$(function () {
var options = {
url: prefix + "/list",
updateFlag: prefix + "/update",
detailUrl: prefix + "/details/{id}",
deleteFlag: prefix + "/delete",
modalName: "-Banner",
columns: [{
checkbox: true
},
{
field: 'bannersId',
title: 'BannerId'
},
{
field: 'bannersName',
title: '标题'
},
{
field: 'coverImg',
title: '封面图'
},
{
field: 'targetType',
title: '跳转类型'
},
{
field: 'targetObj',
title: '跳转目标'
},
{
field: 'isOnline',
title: '是否上线'
},
{
field: 'onlineStartTime',
title: '上线开始时间'
},
{
field: 'onlineEndTime',
title: '上线结束时间'
},
{
field: 'promotionType',
title: '推广类型'
},
{
field: 'createdAt',
title: '创建时间'
},
{
title: '操作',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-info btn-xs' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.orderRefundsId + '\')"></i>查看</a> ');
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> ');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('提交订单退款')"/>
</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-3 control-label is-required">订单id:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderTicketsId" id="orderTicketsId" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">快递费:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="RefundPriceExpress">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">入场人:</label>
<div class="col-sm-8">
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label layui-required is-required">备注:</label>
<div class="col-sm-8">
<textarea name="reason" maxlength="500" class="form-control layui-required" rows="3"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
<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
});
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("请完善数据");
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);
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('退款详情')"/>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m-t" id="signupForm">
<div class="form-group">
<label class="col-sm-2 control-label">退款单id:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.orderRefundsId}"></div>
<label class="col-sm-2 control-label">票务订单id:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.orderTicketsId}"></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">退款编号:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.orderRefundCode}"></div>
<label class="col-sm-2 control-label">退款中心退款编号:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.RefundCode}"></div>
<label class="col-sm-2 control-label">第三方退款编号:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.RefundId}"></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">退款总金额:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.price}"></div>
<label class="col-sm-2 control-label">退款状态:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.statusName}"></div>
<label class="col-sm-2 control-label">成功退款时间:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.RefundAt}"></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">申请人名称:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.applicantName}"></div>
<label class="col-sm-2 control-label">申请时间:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.applicantAt}"></div>
<label class="col-sm-2 control-label">申请备注:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.reason}"></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人名称:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.auditorName}"></div>
<label class="col-sm-2 control-label">审核时间:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.auditorAt}"></div>
<label class="col-sm-2 control-label">审核备注:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.reject}"></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">执行人名称:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.executorName}"></div>
<label class="col-sm-2 control-label">执行时间:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.executorAt}"></div>
<label class="col-sm-2 control-label">执行备注:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.refuse}"></div>
</div>
<div class="form-group">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>票种</legend>
</fieldset>
<table class="col-sm-8 select-table table-bordered">
<thead>
<tr>
<th>票种名称</th>
<th>适用日期</th>
<th>入场人</th>
<th>状态</th>
<th>价格</th>
</tr>
</thead>
<tbody>
<tr th:each="v : ${KylinOrderRefundsVo.entities}">
<td th:text="${v.title}"></td>
<td th:text="${v.useStart}"></td>
<td th:text="${v.enterName}"></td>
<td th:text="${v.isPaymentName}"></td>
<td th:text="${v.price}"></td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('提交订单退款')"/>
</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-3 control-label is-required">订单id:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderTicketsId" id="orderTicketsId" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">快递费:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="RefundPriceExpress">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">入场人:</label>
<div class="col-sm-8">
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label layui-required is-required">备注:</label>
<div class="col-sm-8">
<textarea name="reason" maxlength="500" class="form-control layui-required" rows="3"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
<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
});
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("请完善数据");
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);
}
}
</script>
</body>
</html>
package com.liquidnet.service.kylin.service.impl.admin;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.entity.KylinBannersRelations;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.liquidnet.service.kylin.mapper.KylinBannersRelationsMapper;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mysql.cj.util.StringUtils;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 轮播图 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-05-02
*/
@Service
public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService {
@Autowired
private KylinBannersMapper bannersMapper;
@Autowired
private KylinBannersRelationsMapper kylinBannersRelationsMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
RedisUtil redisUtil;
public boolean create(BannersParam bannersParam) {
try {
// 时间
String bannersId = IDGenerator.nextSnowId().toString();
LocalDateTime createdAt = LocalDateTime.now();
String createdAtString = createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) {
bannersParam.setOnlineStartTime(null);
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) {
bannersParam.setOnlineEndTime(null);
}
// 入数据库
bannersMapper.insert(bannersParam.getFields(bannersId, createdAtString));
List<String> positionList = bannersParam.getPositionList();
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
for (String fieldId : positionList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, createdAtString);
kylinBannersRelationsMapper.insert(relations);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
for (String fieldId : provincesList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, createdAtString);
kylinBannersRelationsMapper.insert(relations);
}
} else {
provincesList = new ArrayList();
}
// 处理缓存数据
KylinBannersVo kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(bannersParam, kylinBannersVo);
kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setCreatedAt(createdAtString);
// 处理基础数据 防止缓存中无字段
kylinBannersVo.setIsDeleted(1);
kylinBannersVo.setUpdatedAt("");
kylinBannersVo.setPositionList(positionList);
kylinBannersVo.setProvincesList(provincesList);
if (StringUtils.isNullOrEmpty(bannersParam.getTargetObj())) {
kylinBannersVo.setTargetObj("");
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) {
kylinBannersVo.setOnlineStartTime("");
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) {
kylinBannersVo.setOnlineEndTime("");
}
if (null == bannersParam.getBannersSort()) {
kylinBannersVo.setBannersSort(0);
}
if (StringUtils.isNullOrEmpty(bannersParam.getRemarks())) {
kylinBannersVo.setRemarks("");
}
// 入缓存
mongoTemplate.insert(kylinBannersVo, KylinBannersVo.class.getSimpleName());
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), kylinBannersVo);
return true;
} catch (Exception e) {
return false;
}
}
public boolean update(BannersParam bannersParam) {
try {
// 时间
String bannersId = bannersParam.getBannersId();
LocalDateTime updatedAt = LocalDateTime.now();
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
KylinBanners params = bannersParam.getFields(null, null);
params.setUpdatedAt(updatedAtString);
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) {
params.setOnlineStartTime(null);
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) {
params.setOnlineEndTime(null);
}
// 入数据库
bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
List<String> positionList = bannersParam.getPositionList();
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
// 入数据库 先删除之前的
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);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
// 入数据库 先删除之前的
kylinBannersRelationsMapper.delete(
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);
}
} else {
provincesList = new ArrayList();
}
// 处理缓存数据
KylinBannersVo kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(bannersParam, kylinBannersVo);
kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setUpdatedAt(updatedAtString);
kylinBannersVo.setPositionList(positionList);
kylinBannersVo.setProvincesList(provincesList);
// 修改缓存
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinBannersVo)));
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class));
return true;
} catch (Exception e) {
return false;
}
}
public KylinBannersVo detail(String bannersId) {
KylinBanners data = bannersMapper.selectOne(new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId).eq("is_deleted", 1));
KylinBannersVo kylinBannersVo = new KylinBannersVo();
if (null != data) {
List<String> positionList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 1);
List<String> provincesList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 2);
data.setPositionList(positionList);
data.setProvincesList(provincesList);
kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(data, kylinBannersVo);
}else {
return null;
}
return kylinBannersVo;
}
public List<BannerDetailsListDao> bannerList(BannersSearchParam bannersSearchParam) {
try {
bannersSearchParam.setPage((bannersSearchParam.getPage() - 1) * bannersSearchParam.getSize());
List<BannerDetailsListDao> data = bannersMapper.searchBannersList(BeanUtil.convertBeanToMap(bannersSearchParam));
return data;
} catch (Exception e) {
return new ArrayList<>();
}
}
public Long bannerListCount(BannersSearchParam bannersSearchParam) {
try {
Long count = bannersMapper.searchBannersCount(BeanUtil.convertBeanToMap(bannersSearchParam));
return count;
} catch (Exception e) {
return 0L;
}
}
public Boolean delete(String bannersId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
KylinBanners kylinBanners = new KylinBanners();
kylinBanners.setUpdatedAt(updatedAtString);
kylinBanners.setIsDeleted(0);
bannersMapper.update(kylinBanners
, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAtString);
map.put("isDeleted", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作 后期考虑删除掉 前端取redis不取mongo
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class));
return true;
} catch (Exception e) {
return false;
}
}
public List blist(String position, String provinceName) {
Query query = new Query();
query.addCriteria(
Criteria.where("isOnline").is(1).and("isDeleted").is(1)
);
LocalDateTime nowTime = LocalDateTime.now();
String nowTimeStr = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Criteria onlineTimeBetween = Criteria.where("onlineStartTime").lte(nowTimeStr).and("onlineEndTime").gte(nowTimeStr);
Criteria onlineTimeGt = Criteria.where("onlineStartTime").lte(nowTimeStr).and("onlineEndTime").is("");
Criteria onlineTimeLt = Criteria.where("onlineStartTime").is("").and("onlineEndTime").gte(nowTimeStr);
Criteria onlineTimeEmpty = Criteria.where("onlineStartTime").is("").and("onlineEndTime").is("");
Criteria mergeCriteriaTime = new Criteria();
mergeCriteriaTime.orOperator(onlineTimeBetween, onlineTimeGt, onlineTimeLt, onlineTimeEmpty);
if (!position.isEmpty()) {
query.addCriteria(
Criteria.where("positionList").in(position)
);
}
Criteria mergeCriteriaPromotion = new Criteria();
if (!provinceName.isEmpty()) {
Criteria promotionCity = Criteria.where("provincesNameList").in(provinceName);
Criteria promotionAll = Criteria.where("promotionType").is(1);
mergeCriteriaPromotion.orOperator(promotionCity, promotionAll);
}
Criteria criteria = new Criteria();
query.addCriteria(
criteria.andOperator(mergeCriteriaTime, mergeCriteriaPromotion)
);
List bannerList = mongoTemplate.find(
query,
KylinBannersVo.class,
KylinBannersVo.class.getSimpleName()
);
return bannerList;
}
}
package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.alibaba.fastjson.JSON;
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.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.entity.KylinBannersRelations;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.liquidnet.service.kylin.mapper.KylinBannersRelationsMapper;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 轮播图 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-05-02
*/
@Service
public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService {
@Autowired
private KylinBannersMapper bannersMapper;
@Autowired
private KylinBannersRelationsMapper kylinBannersRelationsMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
RedisUtil redisUtil;
public boolean create(BannersParam bannersParam) {
try {
// 时间
String bannersId = IDGenerator.nextSnowId().toString();
LocalDateTime createdAt = LocalDateTime.now();
String createdAtString = createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
if (StringUtils.isEmpty(bannersParam.getOnlineStartTime())) {
bannersParam.setOnlineStartTime(null);
}
if (StringUtils.isEmpty(bannersParam.getOnlineEndTime())) {
bannersParam.setOnlineEndTime(null);
}
// 入数据库
bannersMapper.insert(bannersParam.getFields(bannersId, createdAtString));
List<String> positionList = bannersParam.getPositionList();
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
for (String fieldId : positionList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, createdAtString);
kylinBannersRelationsMapper.insert(relations);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
for (String fieldId : provincesList) {
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, createdAtString);
kylinBannersRelationsMapper.insert(relations);
}
} else {
provincesList = new ArrayList();
}
// 处理缓存数据
KylinBannersVo kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(bannersParam, kylinBannersVo);
kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setCreatedAt(createdAtString);
// 处理基础数据 防止缓存中无字段
kylinBannersVo.setIsDeleted(1);
kylinBannersVo.setUpdatedAt("");
kylinBannersVo.setPositionList(positionList);
kylinBannersVo.setProvincesList(provincesList);
if (StringUtils.isEmpty(bannersParam.getTargetObj())) {
kylinBannersVo.setTargetObj("");
}
if (StringUtils.isEmpty(bannersParam.getOnlineStartTime())) {
kylinBannersVo.setOnlineStartTime("");
}
if (StringUtils.isEmpty(bannersParam.getOnlineEndTime())) {
kylinBannersVo.setOnlineEndTime("");
}
if (null == bannersParam.getBannersSort()) {
kylinBannersVo.setBannersSort(0);
}
if (StringUtils.isEmpty(bannersParam.getRemarks())) {
kylinBannersVo.setRemarks("");
}
// 入缓存
mongoTemplate.insert(kylinBannersVo, KylinBannersVo.class.getSimpleName());
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), kylinBannersVo);
return true;
} catch (Exception e) {
return false;
}
}
public boolean update(BannersParam bannersParam) {
try {
// 时间
String bannersId = bannersParam.getBannersId();
LocalDateTime updatedAt = LocalDateTime.now();
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
KylinBanners params = bannersParam.getFields(null, null);
params.setUpdatedAt(updatedAtString);
if (StringUtils.isEmpty(bannersParam.getOnlineStartTime())) {
params.setOnlineStartTime(null);
}
if (StringUtils.isEmpty(bannersParam.getOnlineEndTime())) {
params.setOnlineEndTime(null);
}
// 入数据库
bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
List<String> positionList = bannersParam.getPositionList();
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
// 入数据库 先删除之前的
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);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
// 入数据库 先删除之前的
kylinBannersRelationsMapper.delete(
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);
}
} else {
provincesList = new ArrayList();
}
// 处理缓存数据
KylinBannersVo kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(bannersParam, kylinBannersVo);
kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setUpdatedAt(updatedAtString);
kylinBannersVo.setPositionList(positionList);
kylinBannersVo.setProvincesList(provincesList);
// 修改缓存
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinBannersVo)));
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class));
return true;
} catch (Exception e) {
return false;
}
}
public KylinBannersVo detail(String bannersId) {
KylinBanners data = bannersMapper.selectOne(new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId).eq("is_deleted", 1));
KylinBannersVo kylinBannersVo = new KylinBannersVo();
if (null != data) {
List<String> positionList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 1);
List<String> provincesList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 2);
data.setPositionList(positionList);
data.setProvincesList(provincesList);
kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(data, kylinBannersVo);
}else {
return null;
}
return kylinBannersVo;
}
public PageInfo<BannerDetailsListDao> bannerList(BannersSearchParam bannersSearchParam) {
PageInfo<BannerDetailsListDao> pageInfoTmp = null;
try {
PageHelper.startPage(bannersSearchParam.getPageNum(), bannersSearchParam.getPageSize());
List<BannerDetailsListDao> voList = bannersMapper.searchBannersList(BeanUtil.convertBeanToMap(bannersSearchParam));
pageInfoTmp = new PageInfo(voList);
} catch (Exception e) {
return new PageInfo();
}
return pageInfoTmp;
}
public Long bannerListCount(BannersSearchParam bannersSearchParam) {
try {
Long count = bannersMapper.searchBannersCount(BeanUtil.convertBeanToMap(bannersSearchParam));
return count;
} catch (Exception e) {
return 0L;
}
}
public Boolean delete(String bannersId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
KylinBanners kylinBanners = new KylinBanners();
kylinBanners.setUpdatedAt(updatedAtString);
kylinBanners.setIsDeleted(0);
bannersMapper.update(kylinBanners
, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAtString);
map.put("isDeleted", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作 后期考虑删除掉 前端取redis不取mongo
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class));
return true;
} catch (Exception e) {
return false;
}
}
}
......@@ -234,7 +234,6 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
}
pageInfoTmp = new PageInfo(voList);
} catch (Exception e) {
e.printStackTrace();
return new PageInfo();
}
return pageInfoTmp;
......
......@@ -27,9 +27,8 @@
</select>
<!-- admin banner列表 -->
<select id="searchBannersList" parameterType="java.util.Map" resultMap="bannerDetailsResult">
SELECT
*
<select id="searchBannersList" parameterType="java.util.Map" resultType="com.liquidnet.service.kylin.dao.BannerDetailsListDao" resultMap="bannerDetailsResult">
SELECT *
FROM kylin_banners
<where>
is_deleted = 1
......@@ -47,7 +46,6 @@
</if>
</where>
ORDER BY banners_sort DESC
LIMIT #{page},#{size}
</select>
<!-- admin banner列表数量 -->
......
......@@ -3,7 +3,7 @@ package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import com.liquidnet.service.kylin.service.impl.BannersServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -29,7 +29,7 @@ import java.util.List;
public class KylinBannersController {
@Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl;
private BannersServiceImpl bannersServiceImpl;
@GetMapping("")
@ApiOperation("banner列表")
......@@ -42,7 +42,7 @@ public class KylinBannersController {
@RequestParam(defaultValue = "") String provinceName
) {
List result = new ArrayList();
result = kylinBannersServiceImpl.blist(position, provinceName);
result = bannersServiceImpl.blist(position, provinceName);
return ResponseDto.success(result);
}
......
package com.liquidnet.service.kylin.controller.admin;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.dto.vo.KylinPagerVo;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 轮播图 后端管理控制器
* </p>
*
* @author jiangxiulong
* @since 2021-05-01
*/
@Api(tags = "后端-banner")
@RestController
@RequestMapping("admin/banners")
public class KylinBannersAdminController {
@Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl;
@PostMapping("")
@ApiOperation("创建banner")
public ResponseDto<Object> create(@RequestBody @Validated BannersParam bannersParam) {
Boolean res = kylinBannersServiceImpl.create(bannersParam);
if (res) {
return ResponseDto.success();
} else {
return ResponseDto.failure("添加banner失败");
}
}
@PutMapping("")
@ApiOperation("修改banner")
public ResponseDto<Object> update(@RequestBody BannersParam bannersParam) {
boolean res = kylinBannersServiceImpl.update(bannersParam);
if (res) {
return ResponseDto.success();
} else {
return ResponseDto.failure("修改banner失败");
}
}
@GetMapping("{bannersId}")
@ApiOperation("banner详情")
@ApiImplicitParam(type = "path", dataType = "String", name = "bannersId", value = "banner主键id", required = true)
public ResponseDto<KylinBannersVo> detail(@PathVariable("bannersId") String bannersId) {
KylinBannersVo result = null;
result = kylinBannersServiceImpl.detail(bannersId);
if (null != result) {
return ResponseDto.success(result);
} else {
return ResponseDto.failure("获取banner详情失败");
}
}
@GetMapping("list")
@ApiOperation("banner列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "bannersName", value = "banner标题"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isOnline", value = "0下线 1上线"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "promotionType", value = "推广类型 1全国 2省份"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "page", value = "页码"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "size", value = "每页数量")
})
public ResponseDto<KylinPagerVo<BannerDetailsListDao>> bannerList(
@RequestParam(defaultValue = "") String bannersName,
@RequestParam(defaultValue = "1") Integer isOnline,
@RequestParam(defaultValue = "") Integer promotionType,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer size
) {
BannersSearchParam bannersSearchParam = new BannersSearchParam();
bannersSearchParam.setBannersName(bannersName);
bannersSearchParam.setIsOnline(isOnline);
bannersSearchParam.setPromotionType(promotionType);
bannersSearchParam.setPage(page);
bannersSearchParam.setSize(size);
List<BannerDetailsListDao> result = kylinBannersServiceImpl.bannerList(bannersSearchParam);
Long total = kylinBannersServiceImpl.bannerListCount(bannersSearchParam);
KylinPagerVo<BannerDetailsListDao> kylinPagerVo = new KylinPagerVo();
kylinPagerVo.setRows(result);
kylinPagerVo.setTotal(total);
if (kylinPagerVo.getRows().size() > 0) {
return ResponseDto.success(kylinPagerVo);
} else {
return ResponseDto.failure("获取列表失败");
}
}
@DeleteMapping("{bannersId}")
@ApiOperation("删除banner")
@ApiImplicitParam(type = "path", dataType = "String", name = "bannersId", value = "banner主键id", required = true)
public ResponseDto<Object> delete(@PathVariable("bannersId") String bannersId) {
boolean result = kylinBannersServiceImpl.delete(bannersId);
if (result) {
return ResponseDto.success("删除成功");
} else {
return ResponseDto.failure("删除失败");
}
}
}
package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
* <p>
* 轮播图 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-05-02
*/
@Service
public class BannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
public List blist(String position, String provinceName) {
Query query = new Query();
query.addCriteria(
Criteria.where("isOnline").is(1).and("isDeleted").is(1)
);
LocalDateTime nowTime = LocalDateTime.now();
String nowTimeStr = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Criteria onlineTimeBetween = Criteria.where("onlineStartTime").lte(nowTimeStr).and("onlineEndTime").gte(nowTimeStr);
Criteria onlineTimeGt = Criteria.where("onlineStartTime").lte(nowTimeStr).and("onlineEndTime").is("");
Criteria onlineTimeLt = Criteria.where("onlineStartTime").is("").and("onlineEndTime").gte(nowTimeStr);
Criteria onlineTimeEmpty = Criteria.where("onlineStartTime").is("").and("onlineEndTime").is("");
Criteria mergeCriteriaTime = new Criteria();
mergeCriteriaTime.orOperator(onlineTimeBetween, onlineTimeGt, onlineTimeLt, onlineTimeEmpty);
if (!position.isEmpty()) {
query.addCriteria(
Criteria.where("positionList").in(position)
);
}
Criteria mergeCriteriaPromotion = new Criteria();
if (!provinceName.isEmpty()) {
Criteria promotionCity = Criteria.where("provincesNameList").in(provinceName);
Criteria promotionAll = Criteria.where("promotionType").is(1);
mergeCriteriaPromotion.orOperator(promotionCity, promotionAll);
}
Criteria criteria = new Criteria();
query.addCriteria(
criteria.andOperator(mergeCriteriaTime, mergeCriteriaPromotion)
);
List bannerList = mongoTemplate.find(
query,
KylinBannersVo.class,
KylinBannersVo.class.getSimpleName()
);
return bannerList;
}
}
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