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

Commit 88cc9fdb authored by xuchen's avatar xuchen

Merge branch '0727RecommendActive' of...

Merge branch '0727RecommendActive' of http://gitlab.zhengzai.tv/dongjingwei/liquidnet-bus-v1 into 0727RecommendActive
parents 3e0c1c27 409572d8
......@@ -3,11 +3,14 @@ package com.liquidnet.service.kylin.service.admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.entity.KylinRecommendActiveRelation;
import java.util.List;
/**
* <p>
* 推荐活动关联表 服务类
*/
public interface IKylinRecommendActiveRelationService extends IService<KylinRecommendActiveRelation> {
boolean addKylinRecommendActiveRelation(KylinRecommendActiveRelation kylinRecommendActiveRelation);
boolean addListKylinRecommendActiveRelation(List<KylinRecommendActiveRelation> kylinRecommendActiveRelation);
boolean deleteKylinRecommendActiveRelation(KylinRecommendActiveRelation kylinRecommendActiveRelation);
}
......@@ -64,6 +64,19 @@ public class KylinRecommendActiveController extends BaseController {
kylinRecommendActiveRelationService.addKylinRecommendActiveRelation(kylinRecommendActiveRelation);
return AjaxResult.success("操作成功", "");
}
@PostMapping("addOrUpdateListKylinRecommendActiveRelation")
@ApiOperation(value = "增加或者修改活动推荐List")
@ResponseBody
public AjaxResult addOrUpdateListKylinRecommendActiveRelation(@RequestBody List<KylinRecommendActiveRelationParam> kylinRecommendActiveParam) {
List<KylinRecommendActiveRelation> list=new ArrayList<>();
for(KylinRecommendActiveRelationParam ky:kylinRecommendActiveParam){
KylinRecommendActiveRelation kylinRecommendActiveRelation = new KylinRecommendActiveRelation();
BeanUtils.copyProperties(ky, kylinRecommendActiveRelation);
list.add(kylinRecommendActiveRelation);
}
kylinRecommendActiveRelationService.addListKylinRecommendActiveRelation(list);
return AjaxResult.success("操作成功", "");
}
@PostMapping("delKylinRecommendActiveRelation")
@ApiOperation(value = "删除活动推荐(传入互动推荐里面的mid)")
......@@ -89,6 +102,7 @@ public class KylinRecommendActiveController extends BaseController {
}
@PostMapping("pageActive")
@ApiOperation(value = "分页活动")
@ResponseBody
......
......@@ -65,16 +65,36 @@
line-height: 45px;
padding-left: 60px;
}
/* ---------------------------------------- */
.sortable-list {
width: 700px;
}
.sortable-list li {
width: 100%;
}
.sortable-list li .addAvatarItem {
width: 100%;
display: flex;
justify-content: flex-start;
}
#addClassify2, #detailPro {
width: 450px;
padding-top: 20px;
}
.input-group-wrapper {
padding: 20px;
border-radius: 8px;
border: 1px solid #cccccc;
}
.addAvatarItem .selectClassifyOne {
width: 100%;
display: flex;
margin-right: 15px;
}
.addAvatarItem .selectClassifyOne .span-label {
width: 108px;
padding-top: 5px;
}
.picker {
display: flex;
......@@ -218,7 +238,11 @@
</span>
<!-- 动态 input -->
<div class="input-group" id="addClassify2">
<div class="input-group-wrapper">
<ul class="sortable-list connectList agile-list">
</ul>
</div>
</div>
</div>
......@@ -248,6 +272,7 @@
</body>
<script th:src="@{/js/searchSelect.js}"></script>
<script th:src="@{/js/jquery-ui-1.10.4.min.js}"></script>
<script th:inline="javascript">
let prefix2 = ctx + "local";
......@@ -260,6 +285,10 @@
console.log('isOneDom-length', isOneDom)
let varObj = {}
$(document).ready(function () {
$('.sortable-list').sortable({connectWith: '.connectList'}).disableSelection()
})
// init
$(function() {
......@@ -320,7 +349,7 @@
})
} else if (activeTypeChangeVal == 2) {
_data = group?.map(item => {
return { id: item.mixId, value: item.name }
return { id: item.mixId, value: item.sellName }
})
} else if (activeTypeChangeVal == 3) {
_data = yan?.map(item => {
......@@ -370,26 +399,29 @@
// 组装 html
function assembleDom (list) {
list.forEach((item, index) => {
let dynamicAddDom = `<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne" style="margin-bottom: 20px;">
<span class="span-label"><i style="color: red;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper" style="margin-bottom: 15px;">
<div id="listRemoteSearch${index + 1}" placeholder="请搜索" name="searchSelect${index + 1}"></div>
</div>
</div>
</div>
let dynamicAddDom = `<li class="info-element">
<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red;">*</i>推荐类型:</span>
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐类型:</span>
<select id="listActiveType${index + 1}" value="${item.type}" class="form-control m-b">
<option value="1">NFT</option>
<option value="2">组合购</option>
<option value="3">演出</option>
<option value="4">商品</option>
</select>
</div>`
</div>
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper">
<div id="listRemoteSearch${index + 1}" placeholder="请搜索" name="searchSelect${index + 1}"></div>
</div>
</div>
</div>
<div><a href="#" class="pull-right btn btn-xs btn-white" style="margin-top: 5px;background: none;border: none;"><i class="fa fa-navicon"></i></a></div>
</li>`
$('#addClassify2').append(dynamicAddDom) // 组装好,添加进去
$('.sortable-list').append(dynamicAddDom) // 组装好,添加进去
})
}
......@@ -398,31 +430,34 @@
function addDom () {
let dynamicDomLength = $('#addClassify2').find($('.addAvatarItem')).length // dom1 dom2 dom3
let dynamicAddDom = `<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne" style="margin-bottom: 20px;">
<span class="span-label"><i style="color: red;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper" style="margin-bottom: 15px;">
<div id="listRemoteSearch${dynamicDomLength + 1}" placeholder="请搜索" name="searchSelect${dynamicDomLength + 1}"></div>
</div>
</div>
</div>
let dynamicAddDom = `<li class="info-element">
<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red;">*</i>推荐类型:</span>
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐类型:</span>
<select id="listActiveType${dynamicDomLength + 1}" class="form-control m-b">
<option value="1">NFT</option>
<option value="2">组合购</option>
<option value="3">演出</option>
<option value="4">商品</option>
</select>
</div>`
</div>
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper">
<div id="listRemoteSearch${dynamicDomLength + 1}" placeholder="请搜索" name="searchSelect${dynamicDomLength + 1}"></div>
</div>
</div>
</div>
<div><a href="#" class="pull-right btn btn-xs btn-white" style="margin-top:-15px;background: none;border: none;"><i class="fa fa-navicon"></i></a></div>
</li>`
// 只有一组,可添加
if (dynamicDomLength) {
console.log('dynamicDomLength', dynamicDomLength)
$('#addClassify2').append(dynamicAddDom)
$('.sortable-list').append(dynamicAddDom)
// 设置 实例化 一个 input search监听
setTimeout(() => {
......@@ -488,7 +523,7 @@
})
} else if (_selectVal == 2) {
_data = group?.map(item => {
return { id: item.mixId, value: item.name }
return { id: item.mixId, value: item.sellName }
})
} else if (_selectVal == 3) {
_data = yan?.map(item => {
......@@ -518,7 +553,8 @@
for (let i = 0; i < evryGroup.length; i++) {
listData.push({
recommendBindId: $('#listRemoteSearch' + (i+1)).find('input').attr('data-id'),
type: Number($("#listActiveType" + (i+1)).find("option:selected").val())
type: Number($("#listActiveType" + (i+1)).find("option:selected").val()),
indexs: i + 1
})
}
......@@ -550,7 +586,7 @@
$.operate.successTabCallback(res);
closeItem();
} else {
layer.msg(res.message)
layer.msg(res.msg)
}
})
......
......@@ -65,11 +65,26 @@
line-height: 45px;
padding-left: 60px;
}
.sortable-list {
width: 700px;
}
.sortable-list li {
width: 100%;
}
.sortable-list li .addAvatarItem {
width: 100%;
display: flex;
justify-content: flex-start;
}
#addClassify2, #detailPro {
width: 450px;
padding-top: 20px;
}
.input-group-wrapper {
padding: 20px;
border-radius: 8px;
border: 1px solid #cccccc;
}
.addAvatarItem .selectClassifyOne {
display: flex;
}
......@@ -83,6 +98,7 @@
#addClassify .addAvatarItem label {
display: flex;
margin-right: 20px;
margin-left: 5px;
align-items: center;
}
#addClassify .addAvatarItem label input {
......@@ -218,9 +234,11 @@
推荐:
</span>
<div class="input-group" id="addClassify2">
<div class="input-group-wrapper">
<ul class="sortable-list connectList agile-list">
</ul>
</div>
</div>
</div>
......@@ -250,6 +268,7 @@
</body>
<script th:src="@{/js/searchSelect.js}"></script>
<script th:src="@{/js/jquery-ui-1.10.4.min.js}"></script>
<script th:inline="javascript">
let prefix2 = ctx + "local";
......@@ -262,6 +281,10 @@
let _recommendId = ''
let varObj = {}
$(document).ready(function () {
$('.sortable-list').sortable({connectWith: '.connectList'}).disableSelection()
})
// init
$(function() {
......@@ -312,7 +335,7 @@
if (activeTypeChangeVal === 1) { // NFT
return { id: item.spuId, value: item.spuName }
} else if (activeTypeChangeVal === 2) {
return { id: item.mixId, value: item.name }
return { id: item.mixId, value: item.sellName }
} else if (activeTypeChangeVal === 3) {
return { id: item.performancesId, value: item.title }
} else if (activeTypeChangeVal === 4) { // 商品
......@@ -391,26 +414,29 @@
// 组装 html
function assembleDom (list) {
list.forEach((item, index) => {
let dynamicAddDom = `<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne" style="margin-bottom: 20px;">
<span class="span-label"><i style="color: red;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper" style="margin-bottom: 15px;">
<div id="listRemoteSearch${index + 1}" placeholder="请搜索" name="searchSelect${index + 1}"></div>
</div>
</div>
</div>
let dynamicAddDom = `<li class="info-element">
<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red;">*</i>推荐类型:</span>
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐类型:</span>
<select id="listActiveType${index + 1}" value="${item.type}" class="form-control m-b">
<option value="1">NFT</option>
<option value="2">组合购</option>
<option value="3">演出</option>
<option value="4">商品</option>
</select>
</div>`
</div>
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper">
<div id="listRemoteSearch${index + 1}" placeholder="请搜索" name="searchSelect${index + 1}"></div>
</div>
</div>
</div>
<div><a href="#" class="pull-right btn btn-xs btn-white" style="margin-top: 5px;background: none;border: none;"><i class="fa fa-navicon"></i></a></div>
</li>`
$('#addClassify2').append(dynamicAddDom) // 组装好,添加进去
$('.sortable-list').append(dynamicAddDom) // 组装好,添加进去
})
......@@ -420,29 +446,32 @@
function addDom () {
let dynamicDomLength = $('#addClassify2').find($('.addAvatarItem')).length // dom1 dom2 dom3
let dynamicAddDom = `<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne" style="margin-bottom: 20px;">
<span class="span-label"><i style="color: red;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper" style="margin-bottom: 15px;">
<div id="listRemoteSearch${dynamicDomLength + 1}" placeholder="请搜索" name="searchSelect${dynamicDomLength + 1}"></div>
</div>
</div>
</div>
let dynamicAddDom = `<li class="info-element">
<div class="addAvatarItem" style="padding: 20px;">
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red;">*</i>推荐类型:</span>
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐类型:</span>
<select id="listActiveType${dynamicDomLength + 1}" class="form-control m-b">
<option value="1">NFT</option>
<option value="2">组合购</option>
<option value="3">演出</option>
<option value="4">商品</option>
</select>
</div>`
</div>
<div class="selectClassifyOne">
<span class="span-label"><i style="color: red; position: relative; top: 3px;">*</i>推荐商品:</span>
<div class="search-wrapper">
<div class="search-wrapper">
<div id="listRemoteSearch${dynamicDomLength + 1}" placeholder="请搜索" name="searchSelect${dynamicDomLength + 1}"></div>
</div>
</div>
</div>
<div><a href="#" class="pull-right btn btn-xs btn-white" style="margin-top: 5px;background: none;border: none;"><i class="fa fa-navicon"></i></a></div>
</li>`
// 只有一组,可添加
if (dynamicDomLength) {
$('#addClassify2').append(dynamicAddDom)
$('.sortable-list').append(dynamicAddDom)
setTimeout(() => {
varObj['listRemoteSearch'+(dynamicDomLength+1)] = new searchSelect(`#listRemoteSearch${dynamicDomLength + 1}`, [], function(val) {
......@@ -507,7 +536,7 @@
})
} else if (_selectVal == 2) {
_data = group?.map(item => {
return { id: item.mixId, value: item.name }
return { id: item.mixId, value: item.sellName }
})
} else if (_selectVal == 3) {
_data = yan?.map(item => {
......@@ -536,7 +565,8 @@
for (let i = 0; i < evryGroup.length; i++) {
listData.push({
recommendBindId: $('#listRemoteSearch' + (i+1)).find('input').attr('data-id'),
type: Number($("#listActiveType" + (i+1)).find("option:selected").val())
type: Number($("#listActiveType" + (i+1)).find("option:selected").val()),
indexs: i + 1
})
......
package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.entity.KylinRecommendActive;
......@@ -9,7 +10,9 @@ import com.liquidnet.service.kylin.service.admin.IKylinRecommendActiveRelationSe
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.beans.Transient;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
......@@ -38,6 +41,23 @@ public class KylinRecommendActiveRelationServiceImpl extends ServiceImpl<KylinRe
return true;
}
@Override
@Transient
public boolean addListKylinRecommendActiveRelation(List<KylinRecommendActiveRelation> list) {
//先删除 这个活动的 推荐活动
LambdaQueryWrapper<KylinRecommendActiveRelation> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.eq(KylinRecommendActiveRelation::getRecommendActiveId,list.get(0).getRecommendActiveId());
kylinRecommendActiveRelationMapper.delete(lambdaQueryWrapper);
//然后插入
for(KylinRecommendActiveRelation ky:list){
kylinRecommendActiveRelationMapper.insert(ky);
}
//更新 redis
KylinRecommendActive byRecommendId = kylinRecommendActiveService.getByRecommendId(list.get(0).getRecommendActiveId());
kylinRecommendActiveService.updateRedis(byRecommendId);
return true;
}
@Override
public boolean deleteKylinRecommendActiveRelation(KylinRecommendActiveRelation kylinRecommendActiveRelation) {
kylinRecommendActiveRelation.setDelTag(1);
......
......@@ -17,7 +17,10 @@
<select id="validateTime" parameterType="com.liquidnet.service.kylin.entity.KylinRecommendActive" resultType="int">
select count(1) from kylin_recommend_active
where (#{startTime} BETWEEN start_time and end_time
or #{endTime} BETWEEN start_time and end_time) and active_type=#{activeType} and active_bind_id=#{activeBindId} and recommend_id != #{recommendId}
or #{endTime} BETWEEN start_time and end_time) and active_type=#{activeType} and active_bind_id=#{activeBindId}
<if test="recommendId !=null">
and recommend_id != #{recommendId}
</if>
</select>
<select id="getBybindId" resultMap="BaseResultMap">
......
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