parent
7f1612442e
commit
e9aeeeca17
3 changed files with 124 additions and 37 deletions
@ -0,0 +1,81 @@ |
||||
package net.mingsoft.cms.aop; |
||||
|
||||
import net.mingsoft.basic.aop.BaseAop; |
||||
import net.mingsoft.basic.util.BasicUtil; |
||||
import net.mingsoft.cms.biz.IContentBiz; |
||||
import net.mingsoft.cms.biz.IHistoryLogBiz; |
||||
import net.mingsoft.cms.entity.ContentEntity; |
||||
import net.mingsoft.cms.entity.HistoryLogEntity; |
||||
import org.apache.commons.lang3.StringUtils; |
||||
import org.aspectj.lang.ProceedingJoinPoint; |
||||
import org.aspectj.lang.annotation.Around; |
||||
import org.aspectj.lang.annotation.Aspect; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
/** |
||||
* @author 铭飞开源团队 |
||||
* @date 2019/12/23 |
||||
*/ |
||||
@Component |
||||
@Aspect |
||||
public class CotentAop extends BaseAop { |
||||
|
||||
/** |
||||
* 注入文章业务 |
||||
*/ |
||||
@Autowired |
||||
private IContentBiz contentBiz; |
||||
|
||||
/** |
||||
* 注入浏览记录业务 |
||||
*/ |
||||
@Autowired |
||||
private IHistoryLogBiz historyLogBiz; |
||||
|
||||
/** |
||||
* 文章浏览记录, |
||||
* 如果该文章该ip已经记录过,则不在重复记录 |
||||
* @param pjp |
||||
* @return |
||||
* @throws Throwable |
||||
*/ |
||||
@Around("execution(* net.mingsoft.cms.action.web.ContentAction.get(..))") |
||||
public Object get(ProceedingJoinPoint pjp) throws Throwable{ |
||||
|
||||
// 获取方法参数
|
||||
ContentEntity content = getType(pjp, ContentEntity.class); |
||||
// 如果id为空则直接发行
|
||||
if(content.getId()==null) { |
||||
return pjp.proceed(); |
||||
} |
||||
content = (ContentEntity)contentBiz.getEntity(Integer.parseInt(content.getId())); |
||||
//如果文章不存在则直接发行
|
||||
if(content == null){ |
||||
return pjp.proceed(); |
||||
} |
||||
|
||||
//查询判断该ip是否已经有浏览记录了
|
||||
HistoryLogEntity historyLog = new HistoryLogEntity(); |
||||
historyLog.setContentId(content.getId()); |
||||
historyLog.setHlIp(BasicUtil.getIp()); |
||||
historyLog.setHlIsMobile(BasicUtil.isMobileDevice()); |
||||
HistoryLogEntity _historyLog = (HistoryLogEntity)historyLogBiz.getEntity(historyLog); |
||||
//如果该ip该文章没有浏览记录则保存浏览记录
|
||||
//并且更新点击数
|
||||
if(_historyLog == null || StringUtils.isBlank(_historyLog.getId())){ |
||||
historyLogBiz.saveEntity(historyLog); |
||||
//更新点击数
|
||||
ContentEntity updateContent = new ContentEntity(); |
||||
updateContent.setId(content.getId()); |
||||
if(content.getContentHit() == null){ |
||||
updateContent.setContentHit(1); |
||||
}else{ |
||||
updateContent.setContentHit(content.getContentHit()+1); |
||||
} |
||||
contentBiz.updateEntity(updateContent); |
||||
} |
||||
|
||||
return pjp.proceed(); |
||||
} |
||||
} |
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue