package com.dsideal.Res.Util; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.Map; public class PkUtil { //在独立的main函数中,使用下面的方式进行声明logback对象 private static final Logger log = LoggerFactory.getLogger(PkUtil.class); public static Map identityMap = new HashMap<>(); /** * 功能:初始化人员主键 * 作者:黄海 * 时间:2018-12-11 */ public static void InitPersonNumPk() { //初始化字典 InitIdentityMap(); for (Integer key : identityMap.keySet()) { String sql = Db.getSql("loginPerson.getMaxPkByIdentityId"); int identity_id = key; Record record = Db.findFirst(sql, identity_id); int identity_pk_num = record.getInt("identity_pk_num"); //初始化要删除掉 RedisKit.del(identityMap.get(key) + "_identity_pk_num"); RedisKit.incrBy(identityMap.get(key) + "_identity_pk_num", identity_pk_num); log.info("初始化人员身份主键生成器成功:" + identityMap.get(key)); } } /** * 功能:初始化组织机构主键 * 作者:黄海 * 时间:2018-12-11 */ public static void InitOrgNumPk() { String sql = Db.getSql("organization.getMaxPkByOrg"); Record record = Db.findFirst(sql); int org_pk_num = record.getInt("org_pk_num"); //初始化要删除掉 RedisKit.del("org_pk_num"); RedisKit.incrBy("org_pk_num", org_pk_num); } /** * 功能:初始化身份字典 * 作者:黄海 * 时间:2018-12-21 */ public static void InitIdentityMap() { if (identityMap.isEmpty()) { identityMap.put(1, "sys"); identityMap.put(2, "shi"); identityMap.put(3, "qu"); identityMap.put(4, "dw"); identityMap.put(5, "tea"); identityMap.put(6, "stu"); } } /** * 功能:设置每种角色的最大主键生成器值(教师,学生,家长) * 作者:黄海 * 时间:2018-11-22 * * @param identity_id 身份 */ public static long GetPersonNumPk(int identity_id, int count) { String redisPrefix = identityMap.get(identity_id); return RedisKit.incrBy(redisPrefix + "_identity_pk_num", count); } /** * 功能:获取组织机构的最大值 * 作者:黄海 * 时间:2018-11-22 */ public static long GetOrgNumPk(int count) { return RedisKit.incrBy("org_pk_num", count); } }