summaryrefslogtreecommitdiffstats
path: root/appmarket-core
diff options
context:
space:
mode:
authorzheng_wenlong <wenlong_zheng@nexty-ele.com>2019-04-16 11:20:38 +0900
committerzheng_wenlong <wenlong_zheng@nexty-ele.com>2019-05-13 17:50:04 +0900
commit3b55d06b89bf64873e685c3d78fce5affbba3d17 (patch)
tree2adcff0087f4757107d2bf1e50c85ea649f04f94 /appmarket-core
[Patch Set 2] Add ReadMe.md Change-Id: I6ade52d2490f5ca4ba107c1a27ed6d5b39048725 Signed-off-by: zheng_wenlong <wenlong_zheng@nexty-ele.com>
Diffstat (limited to 'appmarket-core')
-rw-r--r--appmarket-core/pom.xml38
-rw-r--r--appmarket-core/src/main/java/app/market/core/app/AppCore.java92
-rw-r--r--appmarket-core/src/main/java/app/market/core/app/impl/AppCoreImpl.java119
-rw-r--r--appmarket-core/src/main/java/app/market/core/authority/AuthorityCore.java32
-rw-r--r--appmarket-core/src/main/java/app/market/core/authority/impl/AuthorityCoreImpl.java54
-rw-r--r--appmarket-core/src/main/java/app/market/core/resource/DictionaryCore.java36
-rw-r--r--appmarket-core/src/main/java/app/market/core/resource/ResourceCore.java26
-rw-r--r--appmarket-core/src/main/java/app/market/core/resource/impl/DictionaryCoreImpl.java69
-rw-r--r--appmarket-core/src/main/java/app/market/core/resource/impl/ResourceCoreImpl.java40
-rw-r--r--appmarket-core/src/main/java/app/market/core/user/UserCore.java106
-rw-r--r--appmarket-core/src/main/java/app/market/core/user/impl/UserCoreImpl.java148
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 );
+ }
+}