Explorar o código

git-svn-id: https://192.168.57.71/svn/jsgkj@594 931142cf-59ea-a443-aa0e-51397b428577

xt_yuanxd %!s(int64=8) %!d(string=hai) anos
pai
achega
09b9774194

+ 19 - 0
gkaqv2/trunk/modules/common/src/main/java/com/xt/js/gkaq/common/BaseUUIDModelService.java

@@ -0,0 +1,19 @@
+package com.xt.js.gkaq.common;
+
+/**
+ * Mapper基类
+ * 
+ * @author 袁晓冬
+ *
+ * @param <T>
+ */
+public interface BaseUUIDModelService<T extends BaseUUIDModel> extends BaseService<T> {
+
+	/**
+	 * 根据ID物理删除记录
+	 * 
+	 * @param id
+	 * @return
+	 */
+	int deleteLogicByID(String id);
+}

+ 80 - 0
gkaqv2/trunk/modules/common/src/main/java/com/xt/js/gkaq/common/BaseUUIDModelServiceImpl.java

@@ -0,0 +1,80 @@
+package com.xt.js.gkaq.common;
+
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 服务层共通基类
+ * 
+ * @author 袁晓冬
+ *
+ * @param <T>
+ */
+public abstract class BaseUUIDModelServiceImpl<T extends BaseUUIDModel> implements BaseUUIDModelService<T> {
+	/** ID主键生成器 */
+	protected IdGenerator idGenerator = new UUIDGenerator();
+
+	/**
+	 * 获取数据库操作接口
+	 * 
+	 * @return
+	 */
+	protected abstract BaseMapper<T> getMapper();
+
+	/**
+	 * 获取检查过的Mapper对象
+	 * 
+	 * @return
+	 */
+	private BaseMapper<T> getCheckedMapper() {
+		BaseMapper<T> mapper = getMapper();
+		if (null == mapper) {
+			throw new RuntimeException("mapper 不能为空!");
+		}
+		return mapper;
+	}
+
+	@Override
+	public int deleteByID(String id) {
+		return getCheckedMapper().deleteByPrimaryKey(id);
+	}
+
+	@Transactional
+	@Override
+	public int deleteLogicByID(String id) {
+		T record = getCheckedMapper().selectByPrimaryKey(id);
+		record.setState(BaseUUIDModel.STATE_DELETE);
+		record.setUpdateTime(new Date());
+		return getCheckedMapper().updateByPrimaryKey(record);
+	}
+
+	@Transactional
+	@Override
+	public int add(T record) {
+		record.setId(idGenerator.generateStringId());
+		Date now = new Date();
+		record.setCreateTime(now);
+		record.setUpdateTime(now);
+		record.setState(BaseUUIDModel.STATE_ADD);
+		return getCheckedMapper().insert(record);
+	}
+
+	@Override
+	public T findById(String id) {
+		return getCheckedMapper().selectByPrimaryKey(id);
+	}
+
+	@Override
+	public List<T> findAll() {
+		return getCheckedMapper().selectAll();
+	}
+
+	@Transactional
+	@Override
+	public int update(T record) {
+		record.setUpdateTime(new Date());
+		return getCheckedMapper().updateByPrimaryKey(record);
+	}
+}

+ 30 - 0
gkaqv2/trunk/modules/common/src/main/java/com/xt/js/gkaq/common/IdGenerator.java

@@ -0,0 +1,30 @@
+package com.xt.js.gkaq.common;
+
+/**
+ * 生成标识符接口.
+ * 
+ * @author 袁晓冬
+ */
+public interface IdGenerator {
+
+	/**
+	 * 创建String型的唯一标识
+	 * 
+	 * @return
+	 */
+	String generateStringId();
+
+	/**
+	 * 创建long型的唯一标识
+	 * 
+	 * @return
+	 */
+	long generateLongId();
+
+	/**
+	 * 创建int型的唯一标识
+	 * 
+	 * @return
+	 */
+	int generateIntId();
+}

+ 39 - 0
gkaqv2/trunk/modules/common/src/main/java/com/xt/js/gkaq/common/UUIDGenerator.java

@@ -0,0 +1,39 @@
+package com.xt.js.gkaq.common;
+
+import java.util.UUID;
+
+/**
+ * 框架默认的ID生成器
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class UUIDGenerator implements IdGenerator {
+
+	/**
+	 * 返回UUID
+	 */
+	@Override
+	public String generateStringId() {
+		String id = UUID.randomUUID().toString();
+		id = id.replace("-", "");
+		return id;
+	}
+
+	/**
+	 * 不提供支持
+	 */
+	@Override
+	public long generateLongId() {
+		throw new IllegalArgumentException("不支持此方法!");
+	}
+
+	/**
+	 * 不提供支持
+	 */
+	@Override
+	public int generateIntId() {
+		throw new IllegalArgumentException("不支持此方法!");
+	}
+
+}