Skip to content

Commit

Permalink
#877 Add migration script
Browse files Browse the repository at this point in the history
  • Loading branch information
koda-masaru committed Oct 9, 2017
1 parent 91a88ee commit 51dffcb
Show file tree
Hide file tree
Showing 15 changed files with 245 additions and 124 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>org.support-project</groupId>
<artifactId>knowledge</artifactId>
<version>1.11.1-SNAPSHOT</version>
<version>1.12.0-SNAPSHOT</version>
<packaging>war</packaging>

<name>knowledge</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
import org.support.project.knowledge.logic.GroupLogic;
import org.support.project.knowledge.logic.KeywordLogic;
import org.support.project.knowledge.logic.KnowledgeLogic;
import org.support.project.knowledge.logic.LikeLogic;
import org.support.project.knowledge.logic.MarkdownLogic;
import org.support.project.knowledge.logic.TagLogic;
import org.support.project.knowledge.logic.TargetLogic;
Expand Down Expand Up @@ -661,8 +662,7 @@ public Boundary stocks() throws InvalidParamException {
@Post(subscribeToken="knowledge")
public Boundary like() throws InvalidParamException {
Long knowledgeId = super.getPathLong(Long.valueOf(-1));
KnowledgeLogic knowledgeLogic = KnowledgeLogic.get();
Long count = knowledgeLogic.addLike(knowledgeId, getLoginedUser(), getLocale());
Long count = LikeLogic.get().addLike(knowledgeId, getLoginedUser(), getLocale());
LikeCount likeCount = new LikeCount();
likeCount.setKnowledgeId(knowledgeId);
likeCount.setCount(count);
Expand All @@ -676,11 +676,9 @@ public Boundary like() throws InvalidParamException {
@Post(subscribeToken="knowledge")
public Boundary likecomment() throws InvalidParamException {
Long commentNo = super.getPathLong(Long.valueOf(-1));
KnowledgeLogic knowledgeLogic = KnowledgeLogic.get();
Long count = knowledgeLogic.addLikeComment(commentNo, getLoginedUser(), getLocale());
Long count = LikeLogic.get().addLikeComment(commentNo, getLoginedUser(), getLocale());
LikeCount likeCount = new LikeCount();
likeCount.setCount(count);

return send(likeCount);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.support.project.knowledge.deploy.v1_11_0.Migrate_1_11_1;
import org.support.project.knowledge.deploy.v1_11_0.Migrate_1_11_2;
import org.support.project.knowledge.deploy.v1_11_0.Migrate_1_11_3;
import org.support.project.knowledge.deploy.v1_12.Migrate_1_12_0;
import org.support.project.knowledge.deploy.v1_1_0pre1.Migrate_1_1_0pre1;
import org.support.project.knowledge.deploy.v1_4_0.Migrate_1_4_0;
import org.support.project.knowledge.deploy.v1_5_0.Migrate_1_5_0;
Expand All @@ -51,7 +52,7 @@ public class InitDB {
private static final Map<String, Migrate> MAP = new LinkedHashMap<>();

private static final Migrate INIT = InitializeSystem.get();
public static final String CURRENT = "1.11.3";
public static final String CURRENT = "1.12.0";

public InitDB() {
super();
Expand Down Expand Up @@ -85,6 +86,7 @@ public InitDB() {
MAP.put("1.11.1", Migrate_1_11_1.get());
MAP.put("1.11.2", Migrate_1_11_2.get());
MAP.put("1.11.3", Migrate_1_11_3.get());
MAP.put("1.12.0", Migrate_1_12_0.get());
}

public static void main(String[] args) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public static Migrate_1_11_3 get() {
public boolean doMigrate() throws Exception {
InitializeDao initializeDao = InitializeDao.get();
String[] sqlpaths = {
"/org/support/project/knowledge/deploy/v1_12/migrate_v1_12_0.sql",
"/org/support/project/knowledge/deploy/v1_11_0/migrate_v1_11_3.sql",
};
initializeDao.initializeDatabase(sqlpaths);
return true;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.support.project.knowledge.deploy.v1_12;

import org.support.project.knowledge.deploy.Migrate;
import org.support.project.ormapping.tool.dao.InitializeDao;

public class Migrate_1_12_0 implements Migrate {

public static Migrate_1_12_0 get() {
return org.support.project.di.Container.getComp(Migrate_1_12_0.class);
}

@Override
public boolean doMigrate() throws Exception {
InitializeDao initializeDao = InitializeDao.get();
String[] sqlpaths = {
"/org/support/project/knowledge/deploy/v1_12/migrate_v1_12_0.sql",
};
initializeDao.initializeDatabase(sqlpaths);
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

import org.support.project.aop.Aspect;
import org.support.project.common.config.Resources;
import org.support.project.common.log.Log;
import org.support.project.common.log.LogFactory;
import org.support.project.common.util.DateUtils;
Expand All @@ -21,7 +19,6 @@
import org.support.project.di.DI;
import org.support.project.di.Instance;
import org.support.project.knowledge.bat.FileParseBat;
import org.support.project.knowledge.config.AppConfig;
import org.support.project.knowledge.config.IndexType;
import org.support.project.knowledge.config.SystemConfig;
import org.support.project.knowledge.dao.CommentsDao;
Expand All @@ -37,7 +34,6 @@
import org.support.project.knowledge.dao.KnowledgeTagsDao;
import org.support.project.knowledge.dao.KnowledgeUsersDao;
import org.support.project.knowledge.dao.KnowledgesDao;
import org.support.project.knowledge.dao.LikeCommentsDao;
import org.support.project.knowledge.dao.LikesDao;
import org.support.project.knowledge.dao.StockKnowledgesDao;
import org.support.project.knowledge.dao.StocksDao;
Expand All @@ -56,8 +52,6 @@
import org.support.project.knowledge.entity.KnowledgeTagsEntity;
import org.support.project.knowledge.entity.KnowledgeUsersEntity;
import org.support.project.knowledge.entity.KnowledgesEntity;
import org.support.project.knowledge.entity.LikeCommentsEntity;
import org.support.project.knowledge.entity.LikesEntity;
import org.support.project.knowledge.entity.StocksEntity;
import org.support.project.knowledge.entity.TagsEntity;
import org.support.project.knowledge.entity.TemplateItemsEntity;
Expand All @@ -75,14 +69,8 @@
import org.support.project.knowledge.vo.StockKnowledge;
import org.support.project.web.bean.LabelValue;
import org.support.project.web.bean.LoginedUser;
import org.support.project.web.bean.MessageResult;
import org.support.project.web.common.HttpStatus;
import org.support.project.web.config.MessageStatus;
import org.support.project.web.dao.SystemConfigsDao;
import org.support.project.web.entity.GroupsEntity;
import org.support.project.web.entity.SystemConfigsEntity;
import org.support.project.web.exception.AuthenticateException;
import org.support.project.web.exception.InvalidParamException;

/**
* Logic class for knowledge data
Expand Down Expand Up @@ -1131,93 +1119,6 @@ public void addViewHistory(Long knowledgeId, LoginedUser loginedUser) {
KnowledgesDao.get().updateViewCount(count, knowledgeId);
}
}

/**
* イイネの重複チェックを行うかをシステム設定情報から取得
* @return
*/
private boolean getCheckOfLike() {
boolean check = false;
SystemConfigsEntity config = SystemConfigsDao.get().selectOnKey(SystemConfig.LIKE_CONFIG, AppConfig.get().getSystemName());
if (config != null) {
if (SystemConfig.LIKE_CONFIG_ONLY_ONE.equals(config.getConfigValue())) {
check = true;
}
}
return check;
}
/**
* いいね!を追加
*
* @param knowledgeId
* @param loginedUser
* @return
* @throws InvalidParamException
*/
public Long addLike(Long knowledgeId, LoginedUser loginedUser, Locale locale) throws InvalidParamException {
if (getCheckOfLike()) {
Resources resources = Resources.getInstance(locale);
if (loginedUser == null || loginedUser.getUserId().equals(Integer.MIN_VALUE)) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.required.signin"), ""));
}
LikesEntity likesEntity = LikesDao.get().selectExistsOnUser(knowledgeId, loginedUser.getUserId());
if (likesEntity != null) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.duplicate"), ""));
}
}
LikesDao likesDao = LikesDao.get();
LikesEntity likesEntity = new LikesEntity();
likesEntity.setKnowledgeId(knowledgeId);
likesDao.insert(likesEntity);

updateKnowledgeExInfo(knowledgeId);

Long count = likesDao.countOnKnowledgeId(knowledgeId);

// 通知
NotifyLogic.get().notifyOnKnowledgeLiked(knowledgeId, likesEntity);

ActivityLogic.get().processActivity(Activity.KNOWLEDGE_LIKE, loginedUser, DateUtils.now(),
KnowledgesDao.get().selectOnKey(knowledgeId));

return count;
}
/**
* コメントにイイネを追加
* @param commentNo
* @param loginedUser
* @return
* @throws InvalidParamException
*/
public Long addLikeComment(Long commentNo, LoginedUser loginedUser, Locale locale) throws InvalidParamException {
if (getCheckOfLike()) {
Resources resources = Resources.getInstance(locale);
if (loginedUser == null || loginedUser.getUserId().equals(Integer.MIN_VALUE)) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.required.signin"), ""));
}
LikeCommentsEntity like = LikeCommentsDao.get().selectExistsOnUser(commentNo, loginedUser.getUserId());
if (like != null) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.duplicate"), ""));
}
}
LikeCommentsEntity like = new LikeCommentsEntity();
like.setCommentNo(commentNo);
like = LikeCommentsDao.get().insert(like);
Long count = LikeCommentsDao.get().selectOnCommentNo(commentNo);

// 通知
NotifyLogic.get().notifyOnCommentLiked(like);

ActivityLogic.get().processActivity(Activity.COMMENT_LIKE, loginedUser, DateUtils.now(),
CommentsDao.get().selectOnKey(commentNo));

return count;
}


/**
* ナレッジテーブルの タグやイイネ件数、コメント件数などの付加情報を 更新する(一覧表示用)
Expand Down
144 changes: 144 additions & 0 deletions src/main/java/org/support/project/knowledge/logic/LikeLogic.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
package org.support.project.knowledge.logic;

import java.util.Locale;

import org.support.project.common.config.Resources;
import org.support.project.common.log.Log;
import org.support.project.common.log.LogFactory;
import org.support.project.common.util.DateUtils;
import org.support.project.di.Container;
import org.support.project.knowledge.config.AppConfig;
import org.support.project.knowledge.config.SystemConfig;
import org.support.project.knowledge.dao.CommentsDao;
import org.support.project.knowledge.dao.KnowledgesDao;
import org.support.project.knowledge.dao.LikeCommentsDao;
import org.support.project.knowledge.dao.LikesDao;
import org.support.project.knowledge.entity.LikeCommentsEntity;
import org.support.project.knowledge.entity.LikesEntity;
import org.support.project.knowledge.logic.activity.Activity;
import org.support.project.knowledge.logic.activity.ActivityLogic;
import org.support.project.web.bean.LoginedUser;
import org.support.project.web.bean.MessageResult;
import org.support.project.web.common.HttpStatus;
import org.support.project.web.config.MessageStatus;
import org.support.project.web.dao.SystemConfigsDao;
import org.support.project.web.entity.SystemConfigsEntity;
import org.support.project.web.exception.InvalidParamException;

public class LikeLogic {
/** LOG */
private static final Log LOG = LogFactory.getLog(LikeLogic.class);
/** Get instance */
public static LikeLogic get() {
return Container.getComp(LikeLogic.class);
}


/**
* イイネの重複チェックを行うかをシステム設定情報から取得
* @return
*/
private boolean getCheckOfLike() {
boolean check = false;
SystemConfigsEntity config = SystemConfigsDao.get().selectOnKey(SystemConfig.LIKE_CONFIG, AppConfig.get().getSystemName());
if (config != null) {
if (SystemConfig.LIKE_CONFIG_ONLY_ONE.equals(config.getConfigValue())) {
check = true;
}
}
return check;
}

private boolean duplicateLike(Long knowledgeId, Integer userId) {
// TODO Auto-generated method stub
return false;
}
private boolean duplicateLikeComment(Long commentNo, Integer userId) {
// TODO Auto-generated method stub
return false;
}


/**
* いいね!を追加
*
* @param knowledgeId
* @param loginedUser
* @return
* @throws InvalidParamException
*/
public Long addLike(Long knowledgeId, LoginedUser loginedUser, Locale locale) throws InvalidParamException {
LOG.debug("start addLike");
if (getCheckOfLike()) {
Resources resources = Resources.getInstance(locale);
if (loginedUser == null || loginedUser.getUserId().equals(Integer.MIN_VALUE)) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.required.signin"), ""));
}
LikesEntity likesEntity = LikesDao.get().selectExistsOnUser(knowledgeId, loginedUser.getUserId());
if (likesEntity != null) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.duplicate"), ""));
}
}
LikesDao likesDao = LikesDao.get();
LikesEntity likesEntity = new LikesEntity();
likesEntity.setKnowledgeId(knowledgeId);
likesDao.insert(likesEntity);

KnowledgeLogic.get().updateKnowledgeExInfo(knowledgeId);

Long count = likesDao.countOnKnowledgeId(knowledgeId);

// 通知
if (!duplicateLike(knowledgeId, loginedUser.getUserId())) {
NotifyLogic.get().notifyOnKnowledgeLiked(knowledgeId, likesEntity);
}

ActivityLogic.get().processActivity(Activity.KNOWLEDGE_LIKE, loginedUser, DateUtils.now(),
KnowledgesDao.get().selectOnKey(knowledgeId));

return count;
}


/**
* コメントにイイネを追加
* @param commentNo
* @param loginedUser
* @return
* @throws InvalidParamException
*/
public Long addLikeComment(Long commentNo, LoginedUser loginedUser, Locale locale) throws InvalidParamException {
LOG.debug("start addLikeComment");
if (getCheckOfLike()) {
Resources resources = Resources.getInstance(locale);
if (loginedUser == null || loginedUser.getUserId().equals(Integer.MIN_VALUE)) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.required.signin"), ""));
}
LikeCommentsEntity like = LikeCommentsDao.get().selectExistsOnUser(commentNo, loginedUser.getUserId());
if (like != null) {
throw new InvalidParamException(new MessageResult(
MessageStatus.Warning, HttpStatus.SC_403_FORBIDDEN, resources.getResource("knowledge.likes.duplicate"), ""));
}
}
LikeCommentsEntity like = new LikeCommentsEntity();
like.setCommentNo(commentNo);
like = LikeCommentsDao.get().insert(like);
Long count = LikeCommentsDao.get().selectOnCommentNo(commentNo);

// 通知
if (!duplicateLikeComment(commentNo, loginedUser.getUserId())) {
NotifyLogic.get().notifyOnCommentLiked(like);
}

ActivityLogic.get().processActivity(Activity.COMMENT_LIKE, loginedUser, DateUtils.now(),
CommentsDao.get().selectOnKey(commentNo));

return count;
}



}
2 changes: 1 addition & 1 deletion src/main/resources/appresource.properties
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ message.allready.started=Already started.
message.confirm.delete=Are you sure you want to delete?

# Common Label
label.version=v1.11.0 pre2
label.version=v1.12.0 pre1
label.login=Sign in
label.previous= Previous
label.next=Next
Expand Down
Loading

0 comments on commit 51dffcb

Please sign in to comment.