diff options
Diffstat (limited to 'appmarket-core')
11 files changed, 760 insertions, 0 deletions
diff --git a/appmarket-core/pom.xml b/appmarket-core/pom.xml new file mode 100644 index 0000000..2b74e32 --- /dev/null +++ b/appmarket-core/pom.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>app.market</groupId> + <artifactId>appmarket-root</artifactId> + <version>0.0.1-SNAPSHOT</version> + </parent> + <artifactId>appmarket-core</artifactId> + <packaging>jar</packaging> + <name>appmarket-core</name> + <url>http://maven.apache.org</url> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>app.market</groupId> + <artifactId>appmarket-persistence</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aspects</artifactId> + <version>${spring.version}</version> + </dependency> + </dependencies> +</project> diff --git a/appmarket-core/src/main/java/app/market/core/app/AppCore.java b/appmarket-core/src/main/java/app/market/core/app/AppCore.java new file mode 100644 index 0000000..6db3075 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/app/AppCore.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.app; + +import java.util.List; + +import app.market.model.app.App; +import app.market.model.app.AppExample; +import app.market.model.app.AppVersion; +import app.market.model.app.AppVersionExample; + + + +public interface AppCore { + + /** + * Get application information + * + * @param offset + * @param limit + * @param example + * @return + */ + List<App> selectByExample(int offset, int limit, AppExample example); + + /** + * Get total count of applications + * + * @param example + * @return + */ + int countByExample(AppExample example); + + /** + * Search application by ID + * + * @param appId + * @return + */ + App selectAppByAppId(String appId); + + /** + * Search application by IdCustom + * @param appIdCustom + * @return + */ + App selectAppByAppCustomId(String appIdCustom); + + /** + * Save application information + * + * @param app + * @return + */ + int save(App app); + + /** + * Delete application + * + * @param id + * @return + */ + int deleteByAppId(String id); + + /** + * Save application version + * @param appVer + * @return + */ + int saveVision(AppVersion appVer); + + /** + * Get total count of app versions + * + * @param example + * @return + */ + int countByExample(AppVersionExample example); +} diff --git a/appmarket-core/src/main/java/app/market/core/app/impl/AppCoreImpl.java b/appmarket-core/src/main/java/app/market/core/app/impl/AppCoreImpl.java new file mode 100644 index 0000000..1287484 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/app/impl/AppCoreImpl.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.app.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.session.RowBounds; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import app.market.core.app.AppCore; +import app.market.core.user.impl.UserCoreImpl; +import app.market.model.app.App; +import app.market.model.app.AppExample; +import app.market.model.app.AppVersion; +import app.market.model.app.AppVersionExample; +import app.market.persistence.mapper.app.AppMapper; +import app.market.persistence.mapper.app.AppVersionMapper; +import app.market.utils.Utils; + +@Service +@Transactional +public class AppCoreImpl implements AppCore{ + + private static Logger logger = LoggerFactory.getLogger( UserCoreImpl.class ); + + @Resource(name = "AppMapper") + private AppMapper mapper; + + @Resource(name = "AppVersionMapper") + private AppVersionMapper versionMapper; + + @Override + public List<App> selectByExample(int offset, int limit, AppExample example) { + mapper.selectByExample(example); + return mapper.selectByExample( new RowBounds( offset, limit ), example ); + } + + @Override + public int countByExample(AppExample example) { + int ret = mapper.countByExample( example ); + return ret; + } + + @Override + public App selectAppByAppId(String appId) { + App app = mapper.selectByPrimaryKey( appId ); + return app; + } + + @Override + public App selectAppByAppCustomId(String appIdCustom) { + App app = mapper.selectByCustomId( appIdCustom ); + return app; + } + + @Override + public int save(App app) { + int ret = 0; + if ( StringUtils.isEmpty( app.getAppId() ) ) { + app.setAppId( Utils.generatorUUID() ); + ret = mapper.insert( app ); + } else { + ret = mapper.updateByPrimaryKeySelective(app); + } + + + return ret; + } + + @Override + public int deleteByAppId(String appId) { + int ret = 0; + // delete version + ret = versionMapper.deleteByAppId(appId); + + // delete application information + ret = mapper.deleteByAppId(appId); + return ret; + } + + @Override + public int saveVision(AppVersion appVer) { + int ret = 0; + + if ( StringUtils.isEmpty( appVer.getVersionId())) { + appVer.setVersionId( Utils.generatorUUID() ); + ret = versionMapper.insert(appVer); + } else { + ret = versionMapper.updateByPrimaryKeySelective(appVer); + } + + return ret; + } + + @Override + public int countByExample(AppVersionExample example) { + int ret = versionMapper.countByExample( example ); + return ret; + } +} diff --git a/appmarket-core/src/main/java/app/market/core/authority/AuthorityCore.java b/appmarket-core/src/main/java/app/market/core/authority/AuthorityCore.java new file mode 100644 index 0000000..7f64227 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/authority/AuthorityCore.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.authority; + +import java.util.List; + +import app.market.utils.property.Option; + +public interface AuthorityCore { + + /** + * Get authority list by role + * + * @param hasSpace + * @return + */ + List<Option> getAuListOption(); + +} diff --git a/appmarket-core/src/main/java/app/market/core/authority/impl/AuthorityCoreImpl.java b/appmarket-core/src/main/java/app/market/core/authority/impl/AuthorityCoreImpl.java new file mode 100644 index 0000000..2b2adc6 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/authority/impl/AuthorityCoreImpl.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.authority.impl; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import app.market.core.authority.AuthorityCore; +import app.market.model.authority.Authority; +import app.market.persistence.mapper.authority.AuthorityMapper; +import app.market.utils.property.Option; +import app.market.utils.property.PropertyUtil; + +@Service +@Transactional +public class AuthorityCoreImpl implements AuthorityCore { + + private static Logger logger = LoggerFactory.getLogger( AuthorityCoreImpl.class ); + + @Resource(name = "AuthorityMapper") + private AuthorityMapper authorityMapper; + + @Override + public List<Option> getAuListOption() { + logger.info( "Get role list." ); + List<Option> list = new ArrayList<Option>(); + for (Authority au : authorityMapper.selectOption()) { + Option option = new Option( au.getAuName(), au.getAuId().toString() ); + list.add( option ); + } + return list; + } + +} diff --git a/appmarket-core/src/main/java/app/market/core/resource/DictionaryCore.java b/appmarket-core/src/main/java/app/market/core/resource/DictionaryCore.java new file mode 100644 index 0000000..74575bf --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/resource/DictionaryCore.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.resource; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import app.market.model.resource.Dictionary; +import app.market.model.resource.DictionaryExample; + +public interface DictionaryCore { + + List<Dictionary> selectItemsByTypeId(String typeId); + + int countDicforItem(String dicTypeId, String valueId); + + int insert(Dictionary record); + + int updateByExample(@Param("record") Dictionary record, @Param("example") DictionaryExample example); + + int countByExample(DictionaryExample example); +} diff --git a/appmarket-core/src/main/java/app/market/core/resource/ResourceCore.java b/appmarket-core/src/main/java/app/market/core/resource/ResourceCore.java new file mode 100644 index 0000000..4b026d1 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/resource/ResourceCore.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.resource; + +import java.util.List; + +import app.market.model.resource.Resource; + +public interface ResourceCore { + + List<Resource> selectResourcesByLoginId(String loginId); + +} diff --git a/appmarket-core/src/main/java/app/market/core/resource/impl/DictionaryCoreImpl.java b/appmarket-core/src/main/java/app/market/core/resource/impl/DictionaryCoreImpl.java new file mode 100644 index 0000000..b9d925e --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/resource/impl/DictionaryCoreImpl.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.resource.impl; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import app.market.core.resource.DictionaryCore; +import app.market.model.resource.Dictionary; +import app.market.model.resource.DictionaryExample; +import app.market.model.resource.DictionaryExample.Criteria; +import app.market.persistence.mapper.resource.DictionaryMapper; + +@Service +@Transactional +public class DictionaryCoreImpl implements DictionaryCore { + + @javax.annotation.Resource(name = "DictionaryMapper") + private DictionaryMapper dicMapper; + + @Override + public List<Dictionary> selectItemsByTypeId(String typeId) { + List<Dictionary> list = dicMapper.selectItemsByTypeId( typeId ); + return list; + } + + @Override + public int countDicforItem(String dicTypeId, String valueId){ + DictionaryExample example = new DictionaryExample(); + Criteria uc = example.createCriteria(); + uc.andDicValueEqualTo(valueId); + uc.andDicTypeEqualTo(dicTypeId); + return dicMapper.countByExample(example); + } + + @Override + public int insert(Dictionary record) { + int i = dicMapper.insert(record); + return i; + } + + @Override + public int updateByExample(Dictionary record, DictionaryExample example) { + int i = dicMapper.updateByExample(record, example); + return i; + } + + @Override + public int countByExample(DictionaryExample example) { + int ret = dicMapper.countByExample(example); + return ret; + } +} diff --git a/appmarket-core/src/main/java/app/market/core/resource/impl/ResourceCoreImpl.java b/appmarket-core/src/main/java/app/market/core/resource/impl/ResourceCoreImpl.java new file mode 100644 index 0000000..05ef0c6 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/resource/impl/ResourceCoreImpl.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.resource.impl; + +import java.util.List; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import app.market.core.resource.ResourceCore; +import app.market.model.resource.Resource; +import app.market.persistence.mapper.resource.ResourceMapper; + +@Service +@Transactional +public class ResourceCoreImpl implements ResourceCore { + + @javax.annotation.Resource(name = "ResourceMapper") + private ResourceMapper resourceMapper; + + @Override + public List<Resource> selectResourcesByLoginId(String userName) { + List<Resource> list = resourceMapper.selectResourcesByUserId( userName ); + return list; + } + +} diff --git a/appmarket-core/src/main/java/app/market/core/user/UserCore.java b/appmarket-core/src/main/java/app/market/core/user/UserCore.java new file mode 100644 index 0000000..1749623 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/user/UserCore.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.user; + +import java.util.List; + +import app.market.model.user.User; +import app.market.model.user.UserExample; + +public interface UserCore { + + /** + * Get user by example + * + * @param user + * @return + * @throws Exception + */ + User selectByExample(UserExample user) throws Exception; + + /** + * Get user list by example + * + * @param offset + * @param limit + * @param example + * @return + */ + List<User> selectByExample(int offset, int limit, UserExample example); + + /** + * Get user list count by example + * + * @param example + * @return + */ + int countByExample(UserExample example); + + /** + * Get user list by id + * + * @param example + * @return + */ + int countById(String userId); + + /** + * Get user by id + * + * @param userId + * @return + */ + User selectUserByUserId(String userId); + + /** + * Save user information + * + * @param user + * @return + */ + int saveUser(User user); + + /** + * Change password + * + * @param user + * @return + */ + int updatePassword(User user); + + /** + * Delete user by id + * + * @param id + * @return + */ + int deleteByUserId(String id); + + /** + * Delete user by name + * + * @param name + * @return + */ + int deleteByUserName(String Name); + + /** + * Get user by user name + * @param userName + * @return + */ + User selectUserByUserName(String userName); +} diff --git a/appmarket-core/src/main/java/app/market/core/user/impl/UserCoreImpl.java b/appmarket-core/src/main/java/app/market/core/user/impl/UserCoreImpl.java new file mode 100644 index 0000000..5a61a49 --- /dev/null +++ b/appmarket-core/src/main/java/app/market/core/user/impl/UserCoreImpl.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.core.user.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.exceptions.TooManyResultsException; +import org.apache.ibatis.session.RowBounds; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import app.market.core.user.UserCore; +import app.market.model.user.User; +import app.market.model.user.UserAuthorityLinkExample; +import app.market.model.user.UserAuthorityLinkKey; +import app.market.model.user.UserExample; +import app.market.persistence.mapper.user.UserAuthorityLinkMapper; +import app.market.persistence.mapper.user.UserMapper; +import app.market.utils.Utils; +import app.market.utils.exception.ExceptionEnum; + +@Service +@Transactional +public class UserCoreImpl implements UserCore { + + private static Logger logger = LoggerFactory.getLogger( UserCoreImpl.class ); + + @Resource(name = "UserMapper") + private UserMapper userMapper; + + @Resource(name = "UserAuthorityLinkMapper") + private UserAuthorityLinkMapper userAuthorityLinkMapper; + + @Override + public User selectByExample(UserExample example) throws Exception { + try { + return userMapper.selectOneByExample( example ); + } catch ( TooManyResultsException exception ) { + logger.debug( "MultiUser count is found." ); + throw new Exception( ExceptionEnum.MULTIPLE_DATA.toString() ); + } + } + + @Override + public List<User> selectByExample(int offset, int limit, UserExample example) { + return userMapper.selectByExample( new RowBounds( offset, limit ), example ); + } + + @Override + public int countByExample(UserExample example) { + int ret = userMapper.countByExample( example ); + return ret; + } + + @Override + public User selectUserByUserId(String userId) { + User user = userMapper.selectByPrimaryKey( userId ); + return user; + } + + @Override + public User selectUserByUserName(String userName) { + User user = userMapper.selectByUserName( userName ); + return user; + } + + @Override + public int saveUser(User user) { + int ret = 0; + if (StringUtils.isEmpty(user.getUserId())) { + if (userMapper.countByUserName(user.getUserName()) == 0) { + user.setUserId(Utils.generatorUUID()); + ret = userMapper.insert(user); + } else { + return -1; + } + } else { + ret = userMapper.updateByPrimaryKeySelective(user); + } + + // Delete user authority + UserAuthorityLinkExample example = new UserAuthorityLinkExample(); + app.market.model.user.UserAuthorityLinkExample.Criteria criteria = example.createCriteria(); + criteria.andUserIdEqualTo(user.getUserId()); + userAuthorityLinkMapper.deleteByExample(example); + + // Add user authority + UserAuthorityLinkKey record = new UserAuthorityLinkKey(); + record.setUserId(user.getUserId()); + record.setAuId(user.getAuId()); + userAuthorityLinkMapper.insert(record); + return ret; + } + + public int updatePassword(User user) { + return userMapper.updatePassword( user ); + } + + @Override + public int deleteByUserId(String id) { + // Delete user authority + UserAuthorityLinkExample example = new UserAuthorityLinkExample(); + app.market.model.user.UserAuthorityLinkExample.Criteria criteria = example.createCriteria(); + criteria.andUserIdEqualTo( id ); + userAuthorityLinkMapper.deleteByExample( example ); + + int ret = userMapper.deleteByPrimaryKey( id ); + + return ret; + } + + @Override + public int deleteByUserName(String name) { + + // Delete user authority + UserAuthorityLinkExample example = new UserAuthorityLinkExample(); + app.market.model.user.UserAuthorityLinkExample.Criteria criteria = example.createCriteria(); + criteria.andUserIdEqualTo( name ); + userAuthorityLinkMapper.deleteByExample( example ); + + int ret = userMapper.deleteByUserName( name ); + + return ret; + } + + @Override + public int countById(String userId) { + return userMapper.countByUserId( userId ); + } +} |