|
@ -6,6 +6,7 @@ import com.yihu.wlyy.common.constants.ServiceApi;
|
|
|
import com.yihu.wlyy.common.controller.EnvelopRestEndPoint;
|
|
|
import com.yihu.wlyy.common.vo.MRedisCacheCategory;
|
|
|
import com.yihu.wlyy.common.vo.MRedisMqChannel;
|
|
|
import com.yihu.wlyy.entity.User;
|
|
|
import com.yihu.wlyy.entity.redis.RedisMqChannel;
|
|
|
import com.yihu.wlyy.entity.redis.RedisMqMessageLog;
|
|
|
import com.yihu.wlyy.entity.redis.RedisMqSubscriber;
|
|
@ -23,10 +24,13 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.data.redis.listener.ChannelTopic;
|
|
|
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@ -35,7 +39,7 @@ import java.util.List;
|
|
|
* @author 张进军
|
|
|
* @date 2017/11/10 11:45
|
|
|
*/
|
|
|
@RestController
|
|
|
@Controller
|
|
|
@RequestMapping(value = ApiVersion.Version1_0)
|
|
|
@Api(description = "消息队列接口", tags = {"Redis消息发布订阅--消息队列接口"})
|
|
|
public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
@ -55,30 +59,29 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
|
|
|
@ApiOperation("根据ID获取消息队列")
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.GetById, method = RequestMethod.GET)
|
|
|
public Envelop getById(
|
|
|
@ApiParam(name = "id", value = "主键", required = true)
|
|
|
@PathVariable(value = "id") Integer id) {
|
|
|
Envelop envelop = new Envelop();
|
|
|
envelop.setSuccessFlg(false);
|
|
|
public String getById(Model model, Long id) {
|
|
|
try {
|
|
|
MRedisMqChannel mRedisMqChannel = convertToModel(redisMqChannelService.getById(id), MRedisMqChannel.class);
|
|
|
envelop.setObj(mRedisMqChannel);
|
|
|
envelop.setSuccessFlg(true);
|
|
|
envelop.setErrorMsg("成功获取消息队列。");
|
|
|
if(id!=null){
|
|
|
MRedisMqChannel mRedisMqChannel = convertToModel(redisMqChannelService.getById(id), MRedisMqChannel.class);
|
|
|
model.addAttribute("detailModel", toJson(mRedisMqChannel));
|
|
|
}else {
|
|
|
Object detailModel = new MRedisCacheCategory();
|
|
|
model.addAttribute("detailModel", toJson(detailModel));
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
envelop.setErrorMsg("获取消息队列发生异常:" + e.getMessage());
|
|
|
}
|
|
|
return envelop;
|
|
|
return "redis/mq/channel/detail";
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "根据条件获取消息队列")
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.Search, method = RequestMethod.GET)
|
|
|
public Envelop search(
|
|
|
@ApiParam(name = "fields", value = "返回的字段,为空则返回全部字段")
|
|
|
@RequestParam(value = "fields", required = false) String fields,
|
|
|
@ApiParam(name = "filters", value = "筛选条件")
|
|
|
@RequestParam(value = "filters", required = false) String filters,
|
|
|
@ApiParam(name = "searchContent", value = "筛选条件")
|
|
|
@RequestParam(value = "searchContent", required = false) String searchContent,
|
|
|
@ApiParam(name = "sorts", value = "排序")
|
|
|
@RequestParam(value = "sorts", required = false) String sorts,
|
|
|
@ApiParam(name = "page", value = "页码", defaultValue = "1")
|
|
@ -88,8 +91,8 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
Envelop envelop = new Envelop();
|
|
|
envelop.setSuccessFlg(false);
|
|
|
try {
|
|
|
List<RedisMqChannel> redisMqChannelList = redisMqChannelService.search(fields, filters, sorts, page, rows);
|
|
|
int count = (int) redisMqChannelService.getCount(filters);
|
|
|
List<RedisMqChannel> redisMqChannelList = redisMqChannelService.search(fields, searchContent, sorts, page, rows);
|
|
|
int count = (int) redisMqChannelService.getCount(searchContent);
|
|
|
List<MRedisMqChannel> mRedisMqChannelList = (List<MRedisMqChannel>) convertToModels(redisMqChannelList, new ArrayList<MRedisMqChannel>(), MRedisMqChannel.class, fields);
|
|
|
envelop = getPageResult(mRedisMqChannelList, count, page, rows);
|
|
|
envelop.setSuccessFlg(true);
|
|
@ -102,14 +105,18 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
}
|
|
|
|
|
|
@ApiOperation("新增消息队列")
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.Save, method = RequestMethod.POST)
|
|
|
public Envelop add(
|
|
|
@ApiParam(value = "消息队列JSON", required = true)
|
|
|
@RequestBody String entityJson) {
|
|
|
public Envelop add(String data) {
|
|
|
Envelop envelop = new Envelop();
|
|
|
envelop.setSuccessFlg(false);
|
|
|
try {
|
|
|
RedisMqChannel newEntity = objectMapper.readValue(entityJson, RedisMqChannel.class);
|
|
|
RedisMqChannel newEntity = objectMapper.readValue(data, RedisMqChannel.class);
|
|
|
User currentUser = (User) request.getSession().getAttribute("current_user");
|
|
|
newEntity.setCreator(currentUser.getCode());
|
|
|
newEntity.setCreateDate(new Date());
|
|
|
newEntity.setModifyDate(new Date());
|
|
|
newEntity.setModifier(currentUser.getCode());
|
|
|
newEntity = redisMqChannelService.save(newEntity);
|
|
|
|
|
|
// 开启该订阅者的消息队列的消息监听
|
|
@ -129,14 +136,16 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
}
|
|
|
|
|
|
@ApiOperation("更新消息队列")
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.Save, method = RequestMethod.PUT)
|
|
|
public Envelop update(
|
|
|
@ApiParam(value = "消息队列JSON", required = true)
|
|
|
@RequestBody String entityJson) {
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.Update, method = RequestMethod.POST)
|
|
|
public Envelop update(String data) {
|
|
|
Envelop envelop = new Envelop();
|
|
|
envelop.setSuccessFlg(false);
|
|
|
try {
|
|
|
RedisMqChannel updateEntity = objectMapper.readValue(entityJson, RedisMqChannel.class);
|
|
|
RedisMqChannel updateEntity = objectMapper.readValue(data, RedisMqChannel.class);
|
|
|
User currentUser = (User) request.getSession().getAttribute("current_user");
|
|
|
updateEntity.setModifyDate(new Date());
|
|
|
updateEntity.setModifier(currentUser.getCode());
|
|
|
updateEntity = redisMqChannelService.save(updateEntity);
|
|
|
|
|
|
MRedisMqChannel mRedisMqChannel = convertToModel(updateEntity, MRedisMqChannel.class);
|
|
@ -151,10 +160,11 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
}
|
|
|
|
|
|
@ApiOperation("删除消息队列")
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.Delete, method = RequestMethod.DELETE)
|
|
|
public Envelop delete(
|
|
|
@ApiParam(name = "id", value = "消息队列ID", required = true)
|
|
|
@RequestParam(value = "id") Integer id) {
|
|
|
@RequestParam(value = "id") Long id) {
|
|
|
Envelop envelop = new Envelop();
|
|
|
RedisMqChannel redisMqChannel = redisMqChannelService.getById(id);
|
|
|
String channel = redisMqChannel.getChannel();
|
|
@ -183,10 +193,11 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
}
|
|
|
|
|
|
@ApiOperation("验证消息队列编码是否唯一")
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.IsUniqueChannel, method = RequestMethod.GET)
|
|
|
public Envelop isUniqueChannel(
|
|
|
@ApiParam(name = "id", value = "消息队列ID", required = true)
|
|
|
@RequestParam(value = "id") Integer id,
|
|
|
@RequestParam(value = "id") Long id,
|
|
|
@ApiParam(name = "channel", value = "消息队列编码", required = true)
|
|
|
@RequestParam(value = "channel") String channel) {
|
|
|
Envelop envelop = new Envelop();
|
|
@ -205,10 +216,11 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
}
|
|
|
|
|
|
@ApiOperation("验证消息队列名称是否唯一")
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.IsUniqueChannelName, method = RequestMethod.GET)
|
|
|
public Envelop isUniqueChannelName(
|
|
|
@ApiParam(name = "id", value = "消息队列ID", required = true)
|
|
|
@RequestParam(value = "id") Integer id,
|
|
|
@RequestParam(value = "id") Long id,
|
|
|
@ApiParam(name = "channelName", value = "消息队列名称", required = true)
|
|
|
@RequestParam(value = "channelName") String channelName) {
|
|
|
Envelop envelop = new Envelop();
|
|
@ -227,6 +239,7 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
|
|
|
}
|
|
|
|
|
|
@ApiOperation("发布消息")
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = ServiceApi.Redis.MqChannel.SendMessage, method = RequestMethod.POST)
|
|
|
public Envelop sendMessage(
|
|
|
@ApiParam(name = "publisherAppId", value = "发布者应用ID", required = true)
|