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

Commit 71de95a5 authored by Tice's avatar Tice

消费队列,admin管理

parent 047ab73f
...@@ -3,15 +3,18 @@ package com.liquidnet.service.merchant.constant; ...@@ -3,15 +3,18 @@ package com.liquidnet.service.merchant.constant;
public class MerchantRedisConst { public class MerchantRedisConst {
public static final String PREFIX = "merchant:"; public static final String PREFIX = "merchant:";
// 场地详情(场地) // 【场地】详情
public static final String INFO_FIELD = PREFIX.concat("info:fields:"); public static final String INFO_FIELD = PREFIX.concat("info:fields:");
// 场地常用验票员(场地) // 【场地常用验票员】列表
public static final String INFO_FIELD_CHECKERS = PREFIX.concat("info:field_checkers:"); public static final String INFO_FIELD_CHECKERS = PREFIX.concat("info:field_checkers:");
// 场地申请(个人) // 【场地申请】我的列表
public static final String INFO_FIELD_APPLIES = PREFIX.concat("info:field_applies:"); public static final String INFO_FIELD_APPLIES = PREFIX.concat("info:field_applies:");
// 主办申请(个人) // 【主办】详情
public static final String INFO_SPONSOR = PREFIX.concat("info:sponsors:");
// 【主办申请】我的列表
public static final String INFO_SPONSOR_APPLIES = PREFIX.concat("info:sponsor_applies:"); public static final String INFO_SPONSOR_APPLIES = PREFIX.concat("info:sponsor_applies:");
} }
package com.liquidnet.service.merchant.service; package com.liquidnet.service.merchant.service;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam; import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo; import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
public interface IMerchantSponsorsService { public interface IMerchantSponsorsService {
PagedResult<MerchantSponsorsVo> search(String name, int page, int size);
String apply(String uid, MerchantSponsorApplyParam parameter); String apply(String uid, MerchantSponsorApplyParam parameter);
void applyDel(String uid, String sponsorApplyId); void applyDel(String uid, String sponsorApplyId);
......
package com.liquidnet.client.admin.web.controller.zhengzai.merchant; package com.liquidnet.client.admin.web.controller.zhengzai.merchant;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController; import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantFieldAppliesAdminService;
import com.liquidnet.service.merchant.dto.admin.MerchantFieldApplyListParam;
import com.liquidnet.service.merchant.entity.MerchantFieldApplies;
import io.swagger.annotations.Api;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
@Api(tags = "场地申请管理")
@Controller @Controller
@RequestMapping("merchant/field/applies") @RequestMapping("merchant/field/apply")
public class MerchantFieldAppliesController extends BaseController { public class MerchantFieldAppliesController extends BaseController {
private String prefix = "zhengzai/adam/user"; private final String prefix = "zhengzai/kylin/field";
@Autowired
IMerchantFieldAppliesAdminService merchantFieldAppliesAdminService;
@RequiresPermissions("merchant:field:apply:view")
@GetMapping()
public String applyList() {
return prefix + "/applyList";
}
@Log(title = "场地申请管理", businessType = BusinessType.LIST)
@RequiresPermissions("merchant:field:apply:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(MerchantFieldApplyListParam param) {
startPage();
return getDataTable(merchantFieldAppliesAdminService.list(
Wrappers.lambdaQuery(MerchantFieldApplies.class)
.eq(param.getFieldApplyId().length() > 0, MerchantFieldApplies::getFieldApplyId, param.getFieldApplyId())
.eq(param.getApplyStatus() >= 0, MerchantFieldApplies::getApplyStatus, param.getApplyStatus())
.eq(!param.getApplyType().equals("all"), MerchantFieldApplies::getApplyType, param.getApplyType())
.select(
MerchantFieldApplies::getFieldApplyId, MerchantFieldApplies::getApplyStatus, MerchantFieldApplies::getApplyType, MerchantFieldApplies::getReject, MerchantFieldApplies::getUid, MerchantFieldApplies::getFieldId,
MerchantFieldApplies::getName, MerchantFieldApplies::getLogo,
MerchantFieldApplies::getCreatedAt
)
));
}
@Log(title = "场地申请管理", businessType = BusinessType.DETAIL)
@RequiresPermissions("merchant:field:apply:detail")
@GetMapping(value = "/details/{fieldApplyId}")
public String detail(@PathVariable("fieldApplyId") String fieldApplyId, ModelMap mmap) {
String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName();
return prefix + "/details";
}
} }
package com.liquidnet.client.admin.web.controller.zhengzai.merchant; package com.liquidnet.client.admin.web.controller.zhengzai.merchant;
public class MerchantSponsorAppliesController { import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantSponsorAppliesAdminService;
import com.liquidnet.service.merchant.dto.admin.MerchantSponsorApplyListParam;
import com.liquidnet.service.merchant.entity.MerchantSponsorApplies;
import io.swagger.annotations.Api;
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.web.bind.annotation.*;
@Api(tags = "主办申请管理")
@Controller
@RequestMapping("merchant/sponsor/apply")
public class MerchantSponsorAppliesController extends BaseController {
private final String prefix = "zhengzai/kylin/sponsor";
@Autowired
IMerchantSponsorAppliesAdminService merchantSponsorAppliesAdminService;
@RequiresPermissions("merchant:sponsor:apply:view")
@GetMapping()
public String applyList() {
return prefix + "/applyList";
}
@Log(title = "主办申请管理", businessType = BusinessType.LIST)
@RequiresPermissions("merchant:sponsor:apply:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(MerchantSponsorApplyListParam param) {
startPage();
return getDataTable(merchantSponsorAppliesAdminService.list(
Wrappers.lambdaQuery(MerchantSponsorApplies.class)
.eq(param.getSponsorApplyId().length() > 0, MerchantSponsorApplies::getSponsorApplyId, param.getSponsorApplyId())
.eq(param.getApplyStatus() >= 0, MerchantSponsorApplies::getApplyStatus, param.getApplyStatus())
.select(
MerchantSponsorApplies::getSponsorApplyId, MerchantSponsorApplies::getApplyStatus, MerchantSponsorApplies::getApplyType, MerchantSponsorApplies::getReject, MerchantSponsorApplies::getUid,
MerchantSponsorApplies::getName, MerchantSponsorApplies::getLogo,
MerchantSponsorApplies::getCreatedAt
)
));
}
@Log(title = "主办申请管理", businessType = BusinessType.DETAIL)
@RequiresPermissions("merchant:sponsor:apply:detail")
@GetMapping(value = "/details/{sponsorApplyId}")
public String detail(@PathVariable("sponsorApplyId") String sponsorApplyId, ModelMap mmap) {
String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName();
return prefix + "/details";
}
} }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('场地申请列表')"/>
</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>申请Id:</label>
<input type="text" name="fieldApplyId"/>
</li>
<li>
类型:<select name="applyType" th:with="type=${@dict.getType('zhengzai_field_apply_type')}">
<option value="all">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
状态:<select name="applyStatus" th:with="type=${@dict.getType('zhengzai_field_apply_status')}">
<option value="-1">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}"th:value="${dict.dictValue}"></option>
</select>
<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="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 dicFieldApplyType = [[${@dict.getType('zhengzai_field_apply_type')}]];
var dicFieldApplyStatus = [[${@dict.getType('zhengzai_field_apply_status')}]];
var detailFlag = [[${@permission.hasPermi('merchant:field:apply:detail')}]];
var prefix = ctx + "merchant/field/apply";
$(function () {
var options = {
url: prefix + "/list",
detailUrl: prefix + "/details/{id}",
sortName: "createdAt",
sortOrder: "desc",
modalName: "-场地审核",
columns: [{
checkbox: true
},
{
field: 'fieldApplyId',
title: '申请id'
},
{
field: 'fieldId',
title: '场地id'
},
{
field: 'name',
title: '场地名称'
},
{
field: 'applyType',
title: '类型',
formatter: function(value, row, index) {
return $.table.selectDictLabel(dicFieldApplyType, value);
}
},
{
field: 'applyStatus',
title: '状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(dicFieldApplyStatus, value);
}
},
{
field: 'createdAt',
title: '申请时间',
sortable: true,
formatter: function (value, row, index) {
return $.common.sprintf("<span>%s</span>", null != value ? value.substring(0, 19) : value);
}
},
{
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.fieldApplyId + '\')"></i>查看</a> ');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('主办申请列表')"/>
</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>申请Id:</label>
<input type="text" name="sponsorApplyId"/>
</li>
<li>
状态:<select name="applyStatus" th:with="type=${@dict.getType('zhengzai_sponsor_apply_status')}">
<option value="-1">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}"th:value="${dict.dictValue}"></option>
</select>
<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="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 dicSponsorApplyStatus = [[${@dict.getType('zhengzai_sponsor_apply_status')}]];
var detailFlag = [[${@permission.hasPermi('merchant:sponsor:apply:detail')}]];
var prefix = ctx + "merchant/sponsor/apply";
$(function () {
var options = {
url: prefix + "/list",
detailUrl: prefix + "/details/{id}",
sortName: "createdAt",
sortOrder: "desc",
modalName: "-主办审核",
columns: [{
checkbox: true
},
{
field: 'sponsorApplyId',
title: '申请id'
},
{
field: 'name',
title: '主办名称'
},
{
field: 'applyStatus',
title: '状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(dicSponsorApplyStatus, value);
}
},
{
field: 'createdAt',
title: '申请时间',
sortable: true,
formatter: function (value, row, index) {
return $.common.sprintf("<span>%s</span>", null != value ? value.substring(0, 19) : value);
}
},
{
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.sponsorApplyId + '\')"></i>查看</a> ');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>
\ No newline at end of file
...@@ -38,6 +38,11 @@ ...@@ -38,6 +38,11 @@
<artifactId>liquidnet-service-candy-api</artifactId> <artifactId>liquidnet-service-candy-api</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-merchant-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency> <dependency>
......
package com.liquidnet.client.admin.zhengzai.merchant.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.merchant.entity.MerchantFieldApplies;
public interface IMerchantFieldAppliesAdminService extends IService<MerchantFieldApplies> {
void applyApprove(String fieldApplyId);
void applyReject(String fieldApplyId);
}
package com.liquidnet.client.admin.zhengzai.merchant.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.merchant.entity.MerchantSponsorApplies;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
public interface IMerchantSponsorAppliesAdminService extends IService<MerchantSponsorApplies> {
}
package com.liquidnet.client.admin.zhengzai.merchant.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantFieldAppliesAdminService;
import com.liquidnet.service.merchant.entity.MerchantFieldApplies;
import com.liquidnet.service.merchant.mapper.MerchantFieldAppliesMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class MerchantFieldAppliesAdminServiceImpl extends ServiceImpl<MerchantFieldAppliesMapper, MerchantFieldApplies> implements IMerchantFieldAppliesAdminService {
@Override
public void applyApprove(String fieldApplyId) {
}
@Override
public void applyReject(String fieldApplyId) {
}
}
package com.liquidnet.client.admin.zhengzai.merchant.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantSponsorAppliesAdminService;
import com.liquidnet.service.merchant.entity.MerchantSponsorApplies;
import com.liquidnet.service.merchant.mapper.MerchantSponsorAppliesMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class MerchantSponsorAppliesAdminServiceImpl extends ServiceImpl<MerchantSponsorAppliesMapper, MerchantSponsorApplies> implements IMerchantSponsorAppliesAdminService {
}
...@@ -141,11 +141,8 @@ public class MQConst { ...@@ -141,11 +141,8 @@ public class MQConst {
} }
public enum MerchantQueue { public enum MerchantQueue {
// SQL_MERCHANT_FIELD("merchant:stream:rk.sql.field", "group.sql.field", "场地相关") SQL_MERCHANT_FIELD("merchant:stream:rk.sql.field", "group.sql.field", "场地相关"),
// SQL_MERCHANT_SPONSOR("merchant:stream:rk.sql.sponsor", "group.sql.sponsor", "主办相关") SQL_MERCHANT_SPONSOR("merchant:stream:rk.sql.sponsor", "group.sql.sponsor", "主办相关"),
SQL_MERCHANT_FIELD("kylin:stream:rk.performance.lack", "group.performance.lack", "场地相关"),
SQL_MERCHANT_SPONSOR("kylin:stream:rk.performance.lack", "group.performance.lack", "主办相关"),
SQL_MERCHANT_TICKET_UPDATE("merchant:stream:rk.ticket", "group.ticket", "票种相关"), SQL_MERCHANT_TICKET_UPDATE("merchant:stream:rk.ticket", "group.ticket", "票种相关"),
......
package com.liquidnet.service.merchant.dto.admin;
public class MerchantFieldApplyListParam {
/**
* 申请Id
*/
private String fieldApplyId;
/**
* 申请状态 [0-待审核 1-通过 2-驳回]
*/
private Integer applyStatus;
/**
* 申请类型【claim-认领 create-创建】
*/
private String applyType;
public String getFieldApplyId() {
return fieldApplyId;
}
public void setFieldApplyId(String fieldApplyId) {
this.fieldApplyId = fieldApplyId;
}
public Integer getApplyStatus() {
return applyStatus;
}
public void setApplyStatus(Integer applyStatus) {
this.applyStatus = applyStatus;
}
public String getApplyType() {
return applyType;
}
public void setApplyType(String applyType) {
this.applyType = applyType;
}
}
package com.liquidnet.service.merchant.dto.admin;
public class MerchantSponsorApplyListParam {
/**
* 申请Id
*/
private String sponsorApplyId;
/**
* 申请状态 [0-待审核 1-通过 2-驳回]
*/
private Integer applyStatus;
public String getSponsorApplyId() {
return sponsorApplyId;
}
public void setSponsorApplyId(String sponsorApplyId) {
this.sponsorApplyId = sponsorApplyId;
}
public Integer getApplyStatus() {
return applyStatus;
}
public void setApplyStatus(Integer applyStatus) {
this.applyStatus = applyStatus;
}
}
package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerMerchantFieldRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription;
import java.time.Duration;
@Configuration
public class ConsumerMerchantFieldRedisStreamConfig {
@Autowired
ConsumerMerchantFieldRdsReceiver consumerMerchantFieldRdsReceiver;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
.build();
return StreamMessageListenerContainer.create(factory, options);
}
/**
* 场地相关更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlField(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(
Consumer.from(MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getGroup(), MQConst.MerchantQueue.SQL_MERCHANT_FIELD.name() + t),
StreamOffset.create(MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey(), ReadOffset.lastConsumed()), consumerMerchantFieldRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 场地相关更新 */
@Bean
public Subscription subscriptionReceiveSqlField1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlField(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlField2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlField(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlField3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlField(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlField4(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlField(listenerContainer, 4);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlField5(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlField(listenerContainer, 5);
listenerContainer.start();
return subscription;
}
/* -------------------------------------------------------- | */
}
package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerMerchantSponsorRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription;
import java.time.Duration;
@Configuration
public class ConsumerMerchantSponsorRedisStreamConfig {
@Autowired
ConsumerMerchantSponsorRdsReceiver consumerMerchantSponsorRdsReceiver;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
.build();
return StreamMessageListenerContainer.create(factory, options);
}
/**
* 主办相关更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlSponsor(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(
Consumer.from(MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getGroup(), MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.name() + t),
StreamOffset.create(MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getKey(), ReadOffset.lastConsumed()), consumerMerchantSponsorRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 主办相关更新 */
@Bean
public Subscription subscriptionReceiveSqlSponsor1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlSponsor(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlSponsor2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlSponsor(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlSponsor3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlSponsor(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlSponsor4(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlSponsor(listenerContainer, 4);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveSqlSponsor5(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlSponsor(listenerContainer, 5);
listenerContainer.start();
return subscription;
}
/* -------------------------------------------------------- | */
}
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerMerchantFieldRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey();
}
@Override
protected String getRedisStreamGroup() {
return MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getGroup();
}
}
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerMerchantSponsorRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getKey();
}
@Override
protected String getRedisStreamGroup() {
return MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getGroup();
}
}
...@@ -2,9 +2,13 @@ ...@@ -2,9 +2,13 @@
# 创建集合 # 创建集合
db.createCollection("MerchantFieldsVo"); db.createCollection("MerchantFieldsVo");
db.createCollection("MerchantSponsorsVo");
# 创建索引 # 创建索引
db.MerchantFieldsVo.createIndex({fieldId:"hashed"}); db.MerchantFieldsVo.createIndex({fieldId:"hashed"});
db.MerchantFieldsVo.createIndex({isOnline:"hashed"}); db.MerchantFieldsVo.createIndex({isOnline:"hashed"});
db.MerchantFieldsVo.createIndex({uid:"hashed"}); db.MerchantFieldsVo.createIndex({uid:"hashed"});
\ No newline at end of file db.MerchantSponsorsVo.createIndex({fieldId:"hashed"});
db.MerchantSponsorsVo.createIndex({isOnline:"hashed"});
db.MerchantSponsorsVo.createIndex({uid:"hashed"});
\ No newline at end of file
XADD merchant:stream:rk.sql.field * 0 0 XADD merchant:stream:rk.sql.field * 0 0
XGROUP CREATE merchant:stream:rk.sql.field group.sql.field 0 XGROUP CREATE merchant:stream:rk.sql.field group.sql.field 0
XADD merchant:stream:rk.sql.sponsor * 0 0
XGROUP CREATE merchant:stream:rk.sql.sponsor group.sql.sponsor 0
XADD merchant:stream:rk.ticket * 0 0 XADD merchant:stream:rk.ticket * 0 0
XGROUP CREATE merchant:stream:rk.ticket group.ticket 0 XGROUP CREATE merchant:stream:rk.ticket group.ticket 0
......
...@@ -3,8 +3,10 @@ package com.liquidnet.service.merchant.controller; ...@@ -3,8 +3,10 @@ package com.liquidnet.service.merchant.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam; import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo; import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.service.IMerchantSponsorsService; import com.liquidnet.service.merchant.service.IMerchantSponsorsService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -36,6 +38,15 @@ public class MerchantSponsorsController { ...@@ -36,6 +38,15 @@ public class MerchantSponsorsController {
IMerchantSponsorsService merchantSponsorsService; IMerchantSponsorsService merchantSponsorsService;
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@ApiOperation(value = "主办搜索")
@GetMapping("search")
public ResponseDto<PagedResult<MerchantSponsorsVo>> search(@RequestParam(required = true) String name,
@RequestParam(defaultValue = "1", required = false) int page,
@RequestParam(defaultValue = "10", required = false) int size) {
return ResponseDto.success(merchantSponsorsService.search(name, page, size));
}
@ApiOperationSupport(order = 11)
@ApiOperation(value = "申请主办") @ApiOperation(value = "申请主办")
@PostMapping("apply") @PostMapping("apply")
public ResponseDto<Object> apply(@Valid @RequestBody MerchantSponsorApplyParam parameter) { public ResponseDto<Object> apply(@Valid @RequestBody MerchantSponsorApplyParam parameter) {
......
package com.liquidnet.service.merchant.service; package com.liquidnet.service.merchant.service;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
...@@ -16,5 +17,7 @@ public class MerchantMongoService { ...@@ -16,5 +17,7 @@ public class MerchantMongoService {
return mongoTemplate.findOne(Query.query(Criteria.where("fieldId").is(fieldId)), MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName()); return mongoTemplate.findOne(Query.query(Criteria.where("fieldId").is(fieldId)), MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName());
} }
public MerchantSponsorsVo getMerchantSponsorsVoBySponsorId(String sponsorId) {
return mongoTemplate.findOne(Query.query(Criteria.where("sponsorId").is(sponsorId)), MerchantSponsorsVo.class, MerchantSponsorsVo.class.getSimpleName());
}
} }
...@@ -2,10 +2,7 @@ package com.liquidnet.service.merchant.service; ...@@ -2,10 +2,7 @@ package com.liquidnet.service.merchant.service;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.merchant.constant.MerchantRedisConst; import com.liquidnet.service.merchant.constant.MerchantRedisConst;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo; import com.liquidnet.service.merchant.dto.vo.*;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldCheckersVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.util.ObjectUtil; import com.liquidnet.service.merchant.util.ObjectUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -24,7 +21,7 @@ public class MerchantRdmService { ...@@ -24,7 +21,7 @@ public class MerchantRdmService {
@Autowired @Autowired
private MerchantMongoService merchantMongoService; private MerchantMongoService merchantMongoService;
// 获取场地详情 // 【场地】获取详情
public MerchantFieldsVo getFieldsVoByFieldId(String fieldId) { public MerchantFieldsVo getFieldsVoByFieldId(String fieldId) {
String key = MerchantRedisConst.INFO_FIELD.concat(fieldId); String key = MerchantRedisConst.INFO_FIELD.concat(fieldId);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
...@@ -37,13 +34,13 @@ public class MerchantRdmService { ...@@ -37,13 +34,13 @@ public class MerchantRdmService {
return vo; return vo;
} }
// 更新场地详情 // 【场地】更新详情
public boolean setFieldsVoByFieldId(String fieldId, MerchantFieldsVo vo) { public boolean setFieldsVoByFieldId(String fieldId, MerchantFieldsVo vo) {
return redisUtil.set(MerchantRedisConst.INFO_FIELD.concat(fieldId), vo); return redisUtil.set(MerchantRedisConst.INFO_FIELD.concat(fieldId), vo);
} }
// 我的场地申请列表 // 【场地申请】我的列表
public List<MerchantFieldAppliesVo> getFieldAppliesVosByUid(String uid) { public List<MerchantFieldAppliesVo> getFieldAppliesVosByUid(String uid) {
String key = MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid); String key = MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
...@@ -52,7 +49,7 @@ public class MerchantRdmService { ...@@ -52,7 +49,7 @@ public class MerchantRdmService {
return vos; return vos;
} }
// 新增场地申请 // 【场地申请】新增
public boolean addFieldAppliesVoByUid(String uid, List<MerchantFieldAppliesVo> vos, MerchantFieldAppliesVo vo) { public boolean addFieldAppliesVoByUid(String uid, List<MerchantFieldAppliesVo> vos, MerchantFieldAppliesVo vo) {
if (null == vos) { if (null == vos) {
vos = ObjectUtil.getMerchantFieldAppliesVoArrayList(); vos = ObjectUtil.getMerchantFieldAppliesVoArrayList();
...@@ -61,7 +58,7 @@ public class MerchantRdmService { ...@@ -61,7 +58,7 @@ public class MerchantRdmService {
return redisUtil.set(MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid), vos); return redisUtil.set(MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid), vos);
} }
// 删除场地申请 // 【场地申请】删除
public boolean delFieldAppliesVoByUid(String uid, List<MerchantFieldAppliesVo> vos, MerchantFieldAppliesVo vo) { public boolean delFieldAppliesVoByUid(String uid, List<MerchantFieldAppliesVo> vos, MerchantFieldAppliesVo vo) {
if (CollectionUtils.isEmpty(vos)) { if (CollectionUtils.isEmpty(vos)) {
return true; return true;
...@@ -71,7 +68,7 @@ public class MerchantRdmService { ...@@ -71,7 +68,7 @@ public class MerchantRdmService {
} }
// 场地默认验票员列表 // 【场地默认验票员】列表
public List<MerchantFieldCheckersVo> getFieldCheckersVosByFieldId(String fieldId) { public List<MerchantFieldCheckersVo> getFieldCheckersVosByFieldId(String fieldId) {
String key = MerchantRedisConst.INFO_FIELD_CHECKERS.concat(fieldId); String key = MerchantRedisConst.INFO_FIELD_CHECKERS.concat(fieldId);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
...@@ -80,7 +77,7 @@ public class MerchantRdmService { ...@@ -80,7 +77,7 @@ public class MerchantRdmService {
return vos; return vos;
} }
// 新增场地默认验票员 // 【场地默认验票员】新增
public boolean addFieldCheckersVoByFieldId(String fieldId, List<MerchantFieldCheckersVo> vos, MerchantFieldCheckersVo vo) { public boolean addFieldCheckersVoByFieldId(String fieldId, List<MerchantFieldCheckersVo> vos, MerchantFieldCheckersVo vo) {
if (null == vos) { if (null == vos) {
vos = ObjectUtil.getMerchantFieldCheckersVoArrayList(); vos = ObjectUtil.getMerchantFieldCheckersVoArrayList();
...@@ -89,7 +86,7 @@ public class MerchantRdmService { ...@@ -89,7 +86,7 @@ public class MerchantRdmService {
return redisUtil.set(MerchantRedisConst.INFO_FIELD_CHECKERS.concat(fieldId), vos); return redisUtil.set(MerchantRedisConst.INFO_FIELD_CHECKERS.concat(fieldId), vos);
} }
// 删除场地默认验票员 // 【场地默认验票员】删除
public boolean delFieldCheckersVoByFieldId(String fieldId, List<MerchantFieldCheckersVo> vos, MerchantFieldCheckersVo vo) { public boolean delFieldCheckersVoByFieldId(String fieldId, List<MerchantFieldCheckersVo> vos, MerchantFieldCheckersVo vo) {
if (CollectionUtils.isEmpty(vos)) { if (CollectionUtils.isEmpty(vos)) {
return true; return true;
...@@ -98,8 +95,25 @@ public class MerchantRdmService { ...@@ -98,8 +95,25 @@ public class MerchantRdmService {
return redisUtil.set(MerchantRedisConst.INFO_FIELD_CHECKERS.concat(fieldId), vos); return redisUtil.set(MerchantRedisConst.INFO_FIELD_CHECKERS.concat(fieldId), vos);
} }
// 【主办】详情
public MerchantSponsorsVo getSponsorsVoBySponsorId(String sponsorId) {
String key = MerchantRedisConst.INFO_SPONSOR.concat(sponsorId);
long s = System.currentTimeMillis();
MerchantSponsorsVo vo = (MerchantSponsorsVo) redisUtil.get(key);
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
if (null == vo) {
vo = merchantMongoService.getMerchantSponsorsVoBySponsorId(sponsorId);
this.setSponsorsVoBySponsorId(sponsorId, vo);
}
return vo;
}
// 【主办】更新详情
public boolean setSponsorsVoBySponsorId(String sponsorId, MerchantSponsorsVo vo) {
return redisUtil.set(MerchantRedisConst.INFO_SPONSOR.concat(sponsorId), vo);
}
// 我的主办申请列表 // 【主办申请】我的列表
public List<MerchantSponsorAppliesVo> getSponsorAppliesVosByUid(String uid) { public List<MerchantSponsorAppliesVo> getSponsorAppliesVosByUid(String uid) {
String key = MerchantRedisConst.INFO_SPONSOR_APPLIES.concat(uid); String key = MerchantRedisConst.INFO_SPONSOR_APPLIES.concat(uid);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
...@@ -108,7 +122,7 @@ public class MerchantRdmService { ...@@ -108,7 +122,7 @@ public class MerchantRdmService {
return vos; return vos;
} }
// 新增主办申请 // 【主办申请】新增
public boolean addSponsorAppliesVoByUid(String uid, List<MerchantSponsorAppliesVo> vos, MerchantSponsorAppliesVo vo) { public boolean addSponsorAppliesVoByUid(String uid, List<MerchantSponsorAppliesVo> vos, MerchantSponsorAppliesVo vo) {
if (null == vos) { if (null == vos) {
vos = ObjectUtil.getMerchantSponsorAppliesVoArrayList(); vos = ObjectUtil.getMerchantSponsorAppliesVoArrayList();
...@@ -117,7 +131,7 @@ public class MerchantRdmService { ...@@ -117,7 +131,7 @@ public class MerchantRdmService {
return redisUtil.set(MerchantRedisConst.INFO_SPONSOR_APPLIES.concat(uid), vos); return redisUtil.set(MerchantRedisConst.INFO_SPONSOR_APPLIES.concat(uid), vos);
} }
// 删除主办申请 // 【主办申请】删除
public boolean delSponsorAppliesVoByUid(String uid, List<MerchantSponsorAppliesVo> vos, MerchantSponsorAppliesVo vo) { public boolean delSponsorAppliesVoByUid(String uid, List<MerchantSponsorAppliesVo> vos, MerchantSponsorAppliesVo vo) {
if (CollectionUtils.isEmpty(vos)) { if (CollectionUtils.isEmpty(vos)) {
return true; return true;
......
...@@ -65,7 +65,7 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService { ...@@ -65,7 +65,7 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService {
// 分页 // 分页
PagedResult<MerchantFieldsVo> pagedResult = ObjectUtil.getMerchantFieldsVoPagedResult(); PagedResult<MerchantFieldsVo> pagedResult = ObjectUtil.getMerchantFieldsVoPagedResult();
if (count > 0) { if (count > 0) {
query.fields().include("fieldId").include("isOnline").include("claimStatus").include("name"); query.fields().include("fieldId").include("isOnline").include("claimStatus").include("name").include("uid").include("isCheck");
// 查询分页 // 查询分页
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt")); Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt"));
......
...@@ -7,22 +7,32 @@ import com.liquidnet.commons.lang.util.IDGenerator; ...@@ -7,22 +7,32 @@ import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.IdentityUtils; import com.liquidnet.commons.lang.util.IdentityUtils;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam; import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo; import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import com.liquidnet.service.merchant.service.IMerchantSponsorsService; import com.liquidnet.service.merchant.service.IMerchantSponsorsService;
import com.liquidnet.service.merchant.service.MerchantRdmService; import com.liquidnet.service.merchant.service.MerchantRdmService;
import com.liquidnet.service.merchant.util.ObjectUtil;
import com.liquidnet.service.merchant.util.QueueUtil; import com.liquidnet.service.merchant.util.QueueUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
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 org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.IntStream; import java.util.stream.IntStream;
@Slf4j @Slf4j
...@@ -31,9 +41,40 @@ public class MerchantSponsorsServiceImpl implements IMerchantSponsorsService { ...@@ -31,9 +41,40 @@ public class MerchantSponsorsServiceImpl implements IMerchantSponsorsService {
@Autowired @Autowired
MerchantRdmService merchantRdmService; MerchantRdmService merchantRdmService;
@Autowired
private MongoTemplate mongoTemplate;
@Autowired @Autowired
QueueUtil queueUtils; QueueUtil queueUtils;
@Override
public PagedResult<MerchantSponsorsVo> search(String name, int page, int size) {
// 查询条件
Query query = new Query();
String regex = String.format("%s%s%s", "^.*", name, ".*$");
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where("name").regex(pattern));
query.addCriteria(Criteria.where("isOnline").is(1));
// 总数
long count = mongoTemplate.count(query, MerchantSponsorsVo.class, MerchantSponsorsVo.class.getSimpleName());
// 分页
PagedResult<MerchantSponsorsVo> pagedResult = ObjectUtil.getMerchantSponsorsVoPagedResult();
if (count > 0) {
query.fields().include("sponsorId").include("isOnline").include("name").include("uid");
// 查询分页
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt"));
query.with(pageable);
List<MerchantSponsorsVo> sponsorsVoList = mongoTemplate.find(query, MerchantSponsorsVo.class, MerchantSponsorsVo.class.getSimpleName());
pagedResult.setList(sponsorsVoList).setTotal(count, size);
}
return pagedResult;
}
@Override @Override
public String apply(String uid, MerchantSponsorApplyParam parameter) { public String apply(String uid, MerchantSponsorApplyParam parameter) {
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
......
...@@ -12,10 +12,11 @@ public class ObjectUtil { ...@@ -12,10 +12,11 @@ public class ObjectUtil {
private static final ArrayList<MerchantFieldAppliesVo> merchantFieldAppliesVoArrayList = new ArrayList<>(); private static final ArrayList<MerchantFieldAppliesVo> merchantFieldAppliesVoArrayList = new ArrayList<>();
private static final ArrayList<MerchantFieldCheckersVo> merchantFieldCheckersVoArrayList = new ArrayList<>(); private static final ArrayList<MerchantFieldCheckersVo> merchantFieldCheckersVoArrayList = new ArrayList<>();
private static final PagedResult<MerchantFieldsVo> merchantFieldsVoPagedResult = new PagedResult<>();
private static final ArrayList<MerchantSponsorAppliesVo> merchantSponsorAppliesVoArrayList = new ArrayList<>(); private static final ArrayList<MerchantSponsorAppliesVo> merchantSponsorAppliesVoArrayList = new ArrayList<>();
private static final PagedResult<MerchantFieldsVo> merchantFieldsVoPagedResult = new PagedResult<>();
private static final PagedResult<MerchantSponsorsVo> merchantSponsorsVoPagedResult = new PagedResult<>();
private static final BasicDBObject basicDBObject = new BasicDBObject(); private static final BasicDBObject basicDBObject = new BasicDBObject();
...@@ -36,6 +37,10 @@ public class ObjectUtil { ...@@ -36,6 +37,10 @@ public class ObjectUtil {
return merchantFieldsVoPagedResult.clone(); return merchantFieldsVoPagedResult.clone();
} }
public static PagedResult<MerchantSponsorsVo> getMerchantSponsorsVoPagedResult() {
return merchantSponsorsVoPagedResult.clone();
}
public static ArrayList<MerchantSponsorAppliesVo> getMerchantSponsorAppliesVoArrayList() { public static ArrayList<MerchantSponsorAppliesVo> getMerchantSponsorAppliesVoArrayList() {
return (ArrayList<MerchantSponsorAppliesVo>) merchantSponsorAppliesVoArrayList.clone(); return (ArrayList<MerchantSponsorAppliesVo>) merchantSponsorAppliesVoArrayList.clone();
} }
......
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