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

Commit 1916e585 authored by anjiabin's avatar anjiabin

Merge branch 'dev_member_voucher_refund_09151' of...

Merge branch 'dev_member_voucher_refund_09151' of http://gitlab.zhengzai.tv/dongjingwei/liquidnet-bus-v1 into dev_member_voucher_refund_09151
parents 92572e0a de82c724
...@@ -13,6 +13,7 @@ import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminServic ...@@ -13,6 +13,7 @@ import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminServic
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinPerformancesAdminServiceImpl; import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinPerformancesAdminServiceImpl;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam; import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam; import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto; import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
...@@ -71,14 +72,13 @@ public class CandyMgtCouponAdminController extends BaseController { ...@@ -71,14 +72,13 @@ public class CandyMgtCouponAdminController extends BaseController {
startPage(); startPage();
List<CandyMgtCouponInfoDto> list = candyMgtCouponAdminService.listForMgtCouponInfoDto(listParam); List<CandyMgtCouponInfoDto> list = candyMgtCouponAdminService.listForMgtCouponInfoDto(listParam);
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
switch (listParam.getCouType()) { if (Arrays.asList(3, 101).contains(listParam.getCouType())) {
case 3:
String[] couponIdArr = list.stream().map(CandyMgtCouponInfoDto::getCouponId).toArray(String[]::new); String[] couponIdArr = list.stream().map(CandyMgtCouponInfoDto::getCouponId).toArray(String[]::new);
LambdaQueryWrapper<CandyCouponRule> queryWrapper = Wrappers.lambdaQuery(CandyCouponRule.class); LambdaQueryWrapper<CandyCouponRule> queryWrapper = Wrappers.lambdaQuery(CandyCouponRule.class);
queryWrapper.in(CandyCouponRule::getCouponId, couponIdArr); queryWrapper.in(CandyCouponRule::getCouponId, couponIdArr);
queryWrapper.eq(CandyCouponRule::getState, 1); queryWrapper.eq(CandyCouponRule::getState, 1);
queryWrapper.select(CandyCouponRule::getCruleId, CandyCouponRule::getCouponId, CandyCouponRule::getComment); queryWrapper.select(CandyCouponRule::getCruleId, CandyCouponRule::getCouponId, CandyCouponRule::getBusiName);
List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(queryWrapper); List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(queryWrapper);
list.stream().forEach(r->{ list.stream().forEach(r->{
couponRuleList.forEach(cr -> { couponRuleList.forEach(cr -> {
...@@ -87,7 +87,6 @@ public class CandyMgtCouponAdminController extends BaseController { ...@@ -87,7 +87,6 @@ public class CandyMgtCouponAdminController extends BaseController {
} }
}); });
}); });
break;
} }
} }
return getDataTable(list); return getDataTable(list);
...@@ -161,7 +160,7 @@ public class CandyMgtCouponAdminController extends BaseController { ...@@ -161,7 +160,7 @@ public class CandyMgtCouponAdminController extends BaseController {
@PostMapping("add") @PostMapping("add")
@ResponseBody @ResponseBody
public AjaxResult addSave(@RequestBody @Validated CandyMgtCouponBuildParam buildParam) { public AjaxResult addSave(@RequestBody @Validated CandyMgtCouponBuildParam buildParam) {
logger.info("operator:{},buildParam:{}", ShiroUtils.getLoginName(), buildParam); logger.info("operator:{},buildParam:{}", ShiroUtils.getLoginName(), JsonUtils.toJson(buildParam));
AjaxResult ajaxResult = this.buildValidProcessing(buildParam); AjaxResult ajaxResult = this.buildValidProcessing(buildParam);
if (((int) ajaxResult.get(AjaxResult.CODE_TAG)) != 0) { if (((int) ajaxResult.get(AjaxResult.CODE_TAG)) != 0) {
return ajaxResult; return ajaxResult;
...@@ -205,17 +204,20 @@ public class CandyMgtCouponAdminController extends BaseController { ...@@ -205,17 +204,20 @@ public class CandyMgtCouponAdminController extends BaseController {
if (null == discount || discount.compareTo(BigDecimal.ZERO) <= 0) { if (null == discount || discount.compareTo(BigDecimal.ZERO) <= 0) {
return AjaxResult.warn("折扣配置无效"); return AjaxResult.warn("折扣配置无效");
} }
if (buildParam.getBusiType() != 3) { if (buildParam.getBusiType() != 2) {
return AjaxResult.warn("当前类别不支持折扣券"); return AjaxResult.warn("当前类别不支持折扣券");
} }
buildParam.setValFace(null); buildParam.setValFace(null);
buildParam.setValOver(null); buildParam.setValOver(null);
buildParam.setValMinus(null); buildParam.setValMinus(null);
break; break;
case 101: case 101:// 优先券
if (null == buildParam.getOverlay()) { if (null == buildParam.getOverlay()) {
return AjaxResult.warn("叠加限制配置无效"); return AjaxResult.warn("叠加限制配置无效");
} }
if (buildParam.getBusiType() != 3) {
return AjaxResult.warn("当前类别不支持优先券");
}
buildParam.setDiscount(null); buildParam.setDiscount(null);
buildParam.setValFace(null); buildParam.setValFace(null);
buildParam.setValOver(null); buildParam.setValOver(null);
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<ul> <ul>
<input type="text" name="couponId" hidden="hidden" th:value="${couponId}" readonly/> <input type="text" name="couponId" hidden="hidden" th:value="${couponId}" readonly/>
<li> <li>
状态:<select name="state" th:with="type=${@dict.getType('zhengzai_coupon_code_state')}"> 状态:<select name="state" th:with="type=${@dict.getType('zhengzai_coupon_code_state')}" onchange="selectChange()" class="selectChange">
<option value="">所有</option> <option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select> </select>
...@@ -31,10 +31,10 @@ ...@@ -31,10 +31,10 @@
<a class="btn btn-warning multiple disabled" onclick="$.table.exportExcel()" shiro:hasPermission="candy:coupon:code:export"> <a class="btn btn-warning multiple disabled" onclick="$.table.exportExcel()" shiro:hasPermission="candy:coupon:code:export">
<i class="fa fa-download"></i> 导出 <i class="fa fa-download"></i> 导出
</a> </a>
<a class="btn btn-primary multiple disabled" onclick="invalidHandler()" shiro:hasPermission="candy:coupon:code:invalid"> <a class="btn btn-primary multiple disabled selectChangeShow" style="display: none" onclick="invalidHandler()" shiro:hasPermission="candy:coupon:code:invalid">
<i class="fa fa-edit"></i> 批量失效 <i class="fa fa-edit"></i> 批量失效
</a> </a>
<a class="btn btn-danger multiple disabled" onclick="recoverHandler()" shiro:hasPermission="candy:coupon:code:recover"> <a class="btn btn-danger multiple disabled selectChangeShow" style="display: none" onclick="recoverHandler()" shiro:hasPermission="candy:coupon:code:recover">
<i class="fa fa-remove"></i> 批量退回 <i class="fa fa-remove"></i> 批量退回
</a> </a>
</div> </div>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
}, },
{ {
field: 'ccode', field: 'ccode',
title: '代金码' title: '码'
}, },
{ {
field: 'redeemMobile', field: 'redeemMobile',
...@@ -89,8 +89,10 @@ ...@@ -89,8 +89,10 @@
align: 'center', align: 'center',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
if (row.state === 0) {
actions.push('<a class="btn btn-primary btn-xs ' + invalidFlag + '" href="javascript:void(0)" onclick="invalidHandler(\'' + row.ccode + '\')"><i class="fa fa-edit"></i>失效</a> '); actions.push('<a class="btn btn-primary btn-xs ' + invalidFlag + '" href="javascript:void(0)" onclick="invalidHandler(\'' + row.ccode + '\')"><i class="fa fa-edit"></i>失效</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + recoverFlag + '" href="javascript:void(0)" onclick="recoverHandler(\'' + row.ccode + '\')"><i class="fa fa-remove"></i>退回</a>'); actions.push('<a class="btn btn-danger btn-xs ' + recoverFlag + '" href="javascript:void(0)" onclick="recoverHandler(\'' + row.ccode + '\')"><i class="fa fa-remove"></i>退回</a>');
}
return actions.join(''); return actions.join('');
} }
}] }]
...@@ -125,6 +127,16 @@ ...@@ -125,6 +127,16 @@
$.operate.batchProcessingForCouponCode(couponId, 2); $.operate.batchProcessingForCouponCode(couponId, 2);
} }
} }
function selectChange() {
let val = $(".selectChange").val();
console.log(typeof val);
if (val === '0') {
$(".selectChangeShow").show();
} else {
$(".selectChangeShow").hide();
}
}
</script> </script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
<input type="radio" value="0" class="typeOne" name="typeOne" checked><span>全场</span> <input type="radio" value="0" class="typeOne" name="typeOne" checked><span>全场</span>
<input type="radio" value="1" class="typeOne" name="typeOne"><span>演出</span> <input type="radio" value="1" class="typeOne" name="typeOne"><span>演出</span>
<input type="radio" value="2" class="typeOne" name="typeOne"><span>商品</span> <input type="radio" value="2" class="typeOne" name="typeOne"><span>商品</span>
<input type="radio" value="3" class="typeOne" name="typeOne"><span>优先购</span> <!-- <input type="radio" value="3" class="typeOne" name="typeOne"><span>优先购</span>-->
</div> </div>
</div> </div>
......
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
<input type="radio" value="0" class="typeOne" name="typeOne" checked><span>全场</span> <input type="radio" value="0" class="typeOne" name="typeOne" checked><span>全场</span>
<input type="radio" value="1" class="typeOne" name="typeOne"><span>演出</span> <input type="radio" value="1" class="typeOne" name="typeOne"><span>演出</span>
<input type="radio" value="2" class="typeOne" name="typeOne"><span>商品</span> <input type="radio" value="2" class="typeOne" name="typeOne"><span>商品</span>
<input type="radio" value="3" class="typeOne" name="typeOne"><span>优先购</span> <!-- <input type="radio" value="3" class="typeOne" name="typeOne"><span>优先购</span>-->
</div> </div>
</div> </div>
......
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
// if (row.state === 0) { // if (row.state === 0) {
// actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>'); // actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>');
// } // }
if (row.bindType === 0) { if (row.bindType === 0 && row.state === 1) {
actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> '); actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> ');
} }
return actions.join(''); return actions.join('');
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('兑换券')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="coupon-form">
<div class="select-list">
<ul>
<input type="hidden" name="couType" th:value="${couType}" />
<li>
<input type="text" name="keyword" placeholder="搜索"/>
</li>
<li>
类型:<select name="bindType" th:with="type=${@dict.getType('zhengzai_coupon_bind_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
适用范围:<select name="busiType" th:with="type=${@dict.getType('zhengzai_coupon_busi_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></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" th:onclick="$.operate.addTab([[${couType}]])" shiro:hasPermission="candy:coupon:mgt:add">
<i class="fa fa-plus"></i> 新增
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "candy/coupon/mgt";
var viewMgtCouponFlag = [[${@permission.hasPermi('candy:coupon:mgt:detail')}]];
var cancelMgtCouponFlag = [[${@permission.hasPermi('candy:coupon:mgt:cancel')}]];
var couType = [[${couType}]];
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add/{id}",
detailUrl: prefix + "/detail/" + couType + "/{id}",
removeUrl: prefix + "/cancel/{id}",
// updateUrl: prefix + "/edit/{id}",
// exportUrl: prefix + "/export",
sortName: "createdAt",
modalName: "优先券",
columns: [
{
checkbox: true
},
{
field: 'couponRuleScopeName',
title: '适用演出'
},
{
field: 'eventAmt',
title: '数量'
},
{
field: 'title',
title: '标题'
},
{
field: 'notice',
title: '描述'
},
{
field: 'operator',
title: '创建人'
},
{
field: 'createdAt',
title: '生成时间',
sortable: true,
formatter: function (value, row, index) {
return $.common.sprintf("<span>%s</span>", null != value ? value.substring(0, 19) : value);
}
},
{
field: 'expireAt',
title: '失效时间',
formatter: function (value, row, index) {
return $.common.sprintf("<span>%s</span>", value);
}
},
{
title: '操作',
// align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-warning btn-xs ' + viewMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.mcouponId + '\')"><i class="fa fa-search"></i>详情</a>');
// if (row.state === 0) {
// actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>');
// }
if (row.bindType === 0 && row.state === 1) {
actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> ');
}
return actions.join('');
}
}]
};
$.table.init(options);
});
/* 查看码列表 */
function couponCodeList(couponId) {
var url = 'candy/coupon/code?couponId=' + couponId;
$.modal.openTab("查看码列表", url);
}
</script>
</body>
</html>
\ No newline at end of file
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
// if (row.state === 0) { // if (row.state === 0) {
// actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>'); // actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>');
// } // }
if (row.bindType === 0) { if (row.bindType === 0 && row.state === 1) {
actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> '); actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> ');
} }
return actions.join(''); return actions.join('');
......
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
// if (row.state === 0) { // if (row.state === 0) {
// actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>'); // actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>');
// } // }
if (row.bindType === 0) { if (row.bindType === 0 && row.state === 1) {
actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> '); actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> ');
} }
return actions.join(''); return actions.join('');
......
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
// if (row.state === 0) { // if (row.state === 0) {
// actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>'); // actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>');
// } // }
if (row.bindType === 0) { if (row.bindType === 0 && row.state === 1) {
actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> '); actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(\'' + row.couponId + '\')"><i class="fa fa-list-ul"></i>码列表</a> ');
} }
return actions.join(''); return actions.join('');
......
...@@ -295,6 +295,7 @@ public class CouponBaseUtil { ...@@ -295,6 +295,7 @@ public class CouponBaseUtil {
if (dtoItem.getUcouponId().equals(uCouponId)) { if (dtoItem.getUcouponId().equals(uCouponId)) {
if (dtoItem.getState().equals(1)) { if (dtoItem.getState().equals(1)) {
dtoItem.setState(5); dtoItem.setState(5);
dtoItem.setUsedAt(LocalDateTime.now());
dtoItem.setUsedFor(content); dtoItem.setUsedFor(content);
isHas = true;//券存在 isHas = true;//券存在
} else { } else {
...@@ -322,6 +323,8 @@ public class CouponBaseUtil { ...@@ -322,6 +323,8 @@ public class CouponBaseUtil {
if (uCouponIdList.contains(dtoItem.getUcouponId())) { if (uCouponIdList.contains(dtoItem.getUcouponId())) {
if (dtoItem.getState().equals(5)) { if (dtoItem.getState().equals(5)) {
dtoItem.setState(1); dtoItem.setState(1);
dtoItem.setUsedFor("");
dtoItem.setUsedAt(null);
isHas = true;//券存在 isHas = true;//券存在
} else { } else {
} }
......
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