提交代码

dev
胡锐 2 weeks ago
parent 1d06667710
commit 14504a2884
  1. 2
      bweb/src/main/java/com/bweb/controller/CmsController.java
  2. 39
      schedule/src/main/java/com/hfkj/consumer/CmsOfflineConsumer.java
  3. 38
      schedule/src/main/java/com/hfkj/consumer/CmsOnlineConsumer.java
  4. 66
      schedule/src/main/java/com/hfkj/schedule/CmsSchedule.java
  5. 6
      service/src/main/java/com/hfkj/service/cms/CmsContentService.java
  6. 62
      service/src/main/java/com/hfkj/service/cms/impl/CmsContentServiceImpl.java

@ -146,7 +146,7 @@ public class CmsController {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法删除,状态错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法删除,状态错误");
} }
cmsContent.setStatus(CmsStatusEnum.status0.getStatus()); cmsContent.setStatus(CmsStatusEnum.status0.getStatus());
cmsContentService.update(cmsContent); cmsContentService.editData(cmsContent);
return ResponseMsgUtil.success("操作成功"); return ResponseMsgUtil.success("操作成功");

@ -1,39 +0,0 @@
package com.hfkj.consumer;
import com.hfkj.entity.BsGasOilPriceTask;
import com.hfkj.entity.CmsContent;
import com.hfkj.service.cms.CmsContentService;
import com.hfkj.service.gas.BsGasOilPriceTaskService;
import com.hfkj.sysenum.cms.CmsStatusEnum;
import com.hfkj.sysenum.gas.GasTaskStatusEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
@Component
@Slf4j
@RocketMQMessageListener(consumerGroup = "cms-offline", topic = "task-topic",selectorExpression = "cms-offline")
public class CmsOfflineConsumer implements RocketMQListener<String> {
@Resource
private CmsContentService cmsContentService;
@Override
public void onMessage(String id) {
System.out.println("CMS内容下线id:" + id);
try {
CmsContent content = cmsContentService.getDetail(Long.parseLong(id));
if (content != null && content.getEndTime() != null && content.getStatus().equals(CmsStatusEnum.status2.getStatus())) {
if (content.getEndTime().compareTo(new Date()) <= 0) {
cmsContentService.offline(Long.parseLong(id));
}
}
} catch (Exception e) {
}
}
}

@ -1,38 +0,0 @@
package com.hfkj.consumer;
import com.hfkj.entity.BsGasOilPriceTask;
import com.hfkj.entity.CmsContent;
import com.hfkj.service.cms.CmsContentService;
import com.hfkj.service.gas.BsGasOilPriceTaskService;
import com.hfkj.sysenum.cms.CmsStatusEnum;
import com.hfkj.sysenum.gas.GasTaskStatusEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
@Component
@Slf4j
@RocketMQMessageListener(consumerGroup = "cms-online", topic = "task-topic",selectorExpression = "cms-online")
public class CmsOnlineConsumer implements RocketMQListener<String> {
@Resource
private CmsContentService cmsContentService;
@Override
public void onMessage(String id) {
System.out.println("CMS内容上线id:" + id);
try {
CmsContent content = cmsContentService.getDetail(Long.parseLong(id));
if (content != null && content.getStartTime() != null && content.getStatus().equals(CmsStatusEnum.status1.getStatus())) {
if (content.getStartTime().compareTo(new Date()) <= 0) {
cmsContentService.online(Long.parseLong(id));
}
}
} catch (Exception e) {
}
}
}

@ -0,0 +1,66 @@
package com.hfkj.schedule;
import com.hfkj.entity.BsDiscount;
import com.hfkj.entity.CmsContent;
import com.hfkj.service.cms.CmsContentService;
import com.hfkj.service.discount.BsDiscountService;
import com.hfkj.service.discount.BsDiscountUserService;
import com.hfkj.sysenum.cms.CmsStatusEnum;
import com.hfkj.sysenum.discount.DiscountStatusEnum;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @className: DiscountSchedule
* @author: HuRui
* @date: 2024/9/4
**/
@Component
public class CmsSchedule {
@Resource
private CmsContentService cmsContentService;
/**
* CMS上线
*/
@Scheduled(cron="0 0/1 * * * ?") //每分钟执行一次
public void online() {
try {
Map<String,Object> param = new HashMap<>();
param.put("status", CmsStatusEnum.status1.getStatus());
param.put("createTimeS", new Date().getTime());
List<CmsContent> list = cmsContentService.getList(param);
for (CmsContent data : list) {
cmsContentService.online(data.getId());
}
} catch (Exception e) {
System.out.println("更新失败!!!");
}
}
/**
* CMS上线
*/
@Scheduled(cron="0 0/1 * * * ?") //每30分钟执行一次
public void offline() {
try {
Map<String,Object> param = new HashMap<>();
param.put("status", CmsStatusEnum.status2.getStatus());
param.put("createTimeE", new Date().getTime());
List<CmsContent> list = cmsContentService.getList(param);
for (CmsContent data : list) {
cmsContentService.offline(data.getId());
}
} catch (Exception e) {
System.out.println("更新失败!!!");
}
}
}

@ -21,12 +21,6 @@ public interface CmsContentService {
*/ */
void editData(CmsContent data) ; void editData(CmsContent data) ;
/**
* 修改
* @param data
*/
void update(CmsContent data);
/** /**
* 上线 * 上线
* @param id * @param id

@ -1,25 +1,16 @@
package com.hfkj.service.cms.impl; package com.hfkj.service.cms.impl;
import com.alibaba.fastjson.JSONObject;
import com.hfkj.common.exception.BaseException;
import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode; import com.hfkj.common.exception.SysCode;
import com.hfkj.common.utils.DateUtil;
import com.hfkj.common.utils.RedisUtil; import com.hfkj.common.utils.RedisUtil;
import com.hfkj.dao.CmsContentMapper; import com.hfkj.dao.CmsContentMapper;
import com.hfkj.entity.CmsContent; import com.hfkj.entity.CmsContent;
import com.hfkj.entity.CmsContentExample; import com.hfkj.entity.CmsContentExample;
import com.hfkj.mqtopic.TaskTopic;
import com.hfkj.service.cms.CmsContentService; import com.hfkj.service.cms.CmsContentService;
import com.hfkj.sysenum.cms.CmsStatusEnum; import com.hfkj.sysenum.cms.CmsStatusEnum;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -38,8 +29,6 @@ public class CmsContentServiceImpl implements CmsContentService {
@Resource @Resource
private CmsContentMapper cmsContentMapper; private CmsContentMapper cmsContentMapper;
@Resource @Resource
private RocketMQTemplate rocketMQTemplate;
@Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
public final static String CACHE_CMS_ONLINE = "CACHE_CMS_ONLINE"; public final static String CACHE_CMS_ONLINE = "CACHE_CMS_ONLINE";
@Override @Override
@ -52,45 +41,6 @@ public class CmsContentServiceImpl implements CmsContentService {
} else { } else {
cmsContentMapper.updateByPrimaryKey(data); cmsContentMapper.updateByPrimaryKey(data);
} }
try {
if (data.getStartTime() != null) {
if (DateUtil.getSecondDiff(new Date(), data.getStartTime()) >= 1) {
Message message = new Message(TaskTopic.TASK_TOPIC.getTopic(), TaskTopic.CMS_ONLINE.getTag(), data.getId().toString().getBytes());
// 定时投递,执行时间
message.setDeliverTimeMs(data.getStartTime().getTime());
SendResult sendResult = rocketMQTemplate.getProducer().send(message);
System.out.println("开始时间:"+ JSONObject.toJSONString(sendResult));
} else {
// 开始时间小于当前时间
// 上线
online(data.getId());
}
}
if (data.getEndTime() != null) {
if (DateUtil.getSecondDiff(new Date(), data.getEndTime()) >= 1) {
Message message = new Message(TaskTopic.TASK_TOPIC.getTopic(), TaskTopic.CMS_OFFLINE.getTag(), data.getId().toString().getBytes());
// 定时投递,执行时间
message.setDeliverTimeMs(data.getEndTime().getTime());
SendResult sendResult = rocketMQTemplate.getProducer().send(message);
System.out.println("结束时间:"+ JSONObject.toJSONString(sendResult));
} else {
// 下线
offline(data.getId());
}
}
} catch (BaseException e) {
throw ErrorHelp.genException(SysCode.System,ErrorCode.COMMON_ERROR, e.getErrorMsg());
} catch (Exception e) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.UNKNOW_ERROR, e.getMessage() );
}
}
@Override
public void update(CmsContent data) {
data.setUpdateTime(new Date());
cmsContentMapper.updateByPrimaryKey(data);
} }
@Override @Override
@ -104,7 +54,7 @@ public class CmsContentServiceImpl implements CmsContentService {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法上线,状态错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法上线,状态错误");
} }
cmsContent.setStatus(CmsStatusEnum.status2.getStatus()); cmsContent.setStatus(CmsStatusEnum.status2.getStatus());
update(cmsContent); editData(cmsContent);
// 删除缓存 // 删除缓存
redisUtil.hdel(CmsContentServiceImpl.CACHE_CMS_ONLINE, ""+cmsContent.getType()); redisUtil.hdel(CmsContentServiceImpl.CACHE_CMS_ONLINE, ""+cmsContent.getType());
} }
@ -120,7 +70,7 @@ public class CmsContentServiceImpl implements CmsContentService {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法下线,状态错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法下线,状态错误");
} }
cmsContent.setStatus(CmsStatusEnum.status3.getStatus()); cmsContent.setStatus(CmsStatusEnum.status3.getStatus());
update(cmsContent); editData(cmsContent);
// 删除缓存 // 删除缓存
redisUtil.hdel(CmsContentServiceImpl.CACHE_CMS_ONLINE, ""+cmsContent.getType()); redisUtil.hdel(CmsContentServiceImpl.CACHE_CMS_ONLINE, ""+cmsContent.getType());
@ -148,6 +98,14 @@ public class CmsContentServiceImpl implements CmsContentService {
criteria.andNameLike("%"+MapUtils.getString(param, "name")+"%"); criteria.andNameLike("%"+MapUtils.getString(param, "name")+"%");
} }
if (MapUtils.getLong(param, "createTimeS") != null) {
criteria.andCreateTimeGreaterThanOrEqualTo(new Date(MapUtils.getLong(param, "createTimeS")));
}
if (MapUtils.getLong(param, "createTimeE") != null) {
criteria.andCreateTimeLessThanOrEqualTo(new Date(MapUtils.getLong(param, "createTimeE")));
}
example.setOrderByClause("update_time desc"); example.setOrderByClause("update_time desc");
return cmsContentMapper.selectByExample(example); return cmsContentMapper.selectByExample(example);
} }

Loading…
Cancel
Save