package com.basic.security.manager;
|
|
import android.text.TextUtils;
|
|
import com.basic.security.model.Identity;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.model.PersonIdentity;
|
import com.basic.security.model.Sync;
|
import com.basic.security.utils.Constants;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.UUID;
|
|
public class IdentityManager extends BaseManager {
|
public static List<ModelAdapter> findIdentityList() {
|
return findList("select * from identity ");
|
}
|
|
public static void initDefaultIdentities() {
|
ModelAdapter adminIdentity = BaseManager.findById("identity", "adminIdentity");
|
if (adminIdentity == null) {
|
adminIdentity = new ModelAdapter("adminIdentity");
|
adminIdentity.setString("table", "identity");
|
adminIdentity.setString("name", "管理员");
|
adminIdentity.setString("auto_init", "1");
|
adminIdentity.setString("device_id", DeviceManager.getDeviceId());
|
adminIdentity.setString("company_id", CompanyManager.getCompanyId());
|
adminIdentity.setString(Sync.needSync, Constants.FALSE);
|
IdentityManager.save(adminIdentity);
|
}
|
ModelAdapter teacherIdentity = BaseManager.findById("identity", "teacherIdentity");
|
if (teacherIdentity == null) {
|
teacherIdentity = new ModelAdapter("teacherIdentity");
|
teacherIdentity.setString("table", "identity");
|
teacherIdentity.setString("name", "老师");
|
teacherIdentity.setString("device_id", DeviceManager.getDeviceId());
|
teacherIdentity.setString("company_id", CompanyManager.getCompanyId());
|
teacherIdentity.setString(Sync.needSync, Constants.FALSE);
|
IdentityManager.save(teacherIdentity);
|
}
|
ModelAdapter insiderIdentity = BaseManager.findById("identity", "insiderIdentity");
|
if (insiderIdentity == null) {
|
insiderIdentity = new ModelAdapter("insiderIdentity");
|
insiderIdentity.setString("table", "identity");
|
insiderIdentity.setString("name", "内部人员");
|
insiderIdentity.setString("device_id", DeviceManager.getDeviceId());
|
insiderIdentity.setString("company_id", CompanyManager.getCompanyId());
|
insiderIdentity.setString(Sync.needSync, Constants.FALSE);
|
IdentityManager.save(insiderIdentity);
|
}
|
ModelAdapter studentIdentity = BaseManager.findById("identity", "studentIdentity");
|
if (studentIdentity == null) {
|
studentIdentity = new ModelAdapter("studentIdentity");
|
studentIdentity.setString("table", "identity");
|
studentIdentity.setString("name", "学生");
|
studentIdentity.setString("device_id", DeviceManager.getDeviceId());
|
studentIdentity.setString("company_id", CompanyManager.getCompanyId());
|
studentIdentity.setString(Sync.needSync, Constants.FALSE);
|
IdentityManager.save(studentIdentity);
|
}
|
ModelAdapter guestIdentity = BaseManager.findById("identity", "guestIdentity");
|
if (guestIdentity == null) {
|
guestIdentity = new ModelAdapter("guestIdentity");
|
guestIdentity.setString("table", "identity");
|
guestIdentity.setString("name", "访客");
|
guestIdentity.setString("device_id", DeviceManager.getDeviceId());
|
guestIdentity.setString("company_id", CompanyManager.getCompanyId());
|
guestIdentity.setString(Sync.needSync, Constants.FALSE);
|
IdentityManager.save(guestIdentity);
|
}
|
}
|
|
public static ModelAdapter getAdminIdentity() {
|
ModelAdapter adminIdentity = BaseManager.findById("identity", "adminIdentity");
|
if (adminIdentity == null) {
|
adminIdentity = new ModelAdapter("adminIdentity");
|
adminIdentity.setString("table", "identity");
|
adminIdentity.setString("name", "管理员");
|
adminIdentity.setString("auto_init", "1");
|
adminIdentity.setString("device_id", DeviceManager.getDeviceId());
|
adminIdentity.setString("company_id", CompanyManager.getCompanyId());
|
adminIdentity.setString(Sync.needSync, Constants.FALSE);
|
IdentityManager.save(adminIdentity);
|
}
|
return adminIdentity;
|
}
|
|
public static List<ModelAdapter> findIdentityList1() {
|
List<ModelAdapter> allIdentityList = findList("select * from identity where " + Identity.name + "!='访客'");
|
List<ModelAdapter> allIdentityList2 = findList("select * from identity where " + Identity.name + "='访客'");
|
if (allIdentityList2.size() > 0) {
|
allIdentityList.add(0, allIdentityList2.get(0));
|
}
|
return allIdentityList;
|
}
|
|
public static List<String> findIdentityNameListByPersonId(String personId) {
|
List<String> identityNameList = new ArrayList();
|
List<ModelAdapter> personPersonIdentity = PersonIdentityManager.findPersonIdentityListByPersonId(personId);
|
for (ModelAdapter personIdentity : personPersonIdentity) {
|
String identityId = personIdentity.getString("identity_id");
|
ModelAdapter identityDocument = findById("identity", identityId);
|
if (identityDocument != null) {
|
String identityName = identityDocument.getString("name");
|
if (!TextUtils.isEmpty(identityName)) {
|
identityNameList.add(identityName);
|
}
|
}
|
}
|
return identityNameList;
|
}
|
|
public static ModelAdapter findIdentityById(String id) {
|
return BaseManager.findById("identity", id);
|
}
|
|
public static ModelAdapter findIdentityByName(String identityName) {
|
ModelAdapter identity = findOne("select * from " + Identity.tableName + " where " + Identity.name + "='" + identityName + "'");
|
if (identity == null) {
|
identity = new ModelAdapter();
|
identity.setString(Identity.id, UUID.randomUUID().toString());
|
identity.setString(Identity.name, identityName);
|
identity.setString(Identity.del_flag, "0");
|
identity.setString(Constants.TABLE, Identity.tableName);
|
identity.setString(Identity.device_id, DeviceManager.getDeviceId());
|
save(identity);
|
}
|
return identity;
|
}
|
|
public static String findIdentityNamesByPersonId(String personId) {
|
List<ModelAdapter> identityList = findList("select b.* from " + PersonIdentity.tableName + " a left join "
|
+ Identity.tableName + " b on a." + PersonIdentity.identity_id + "=b." + Identity.id +
|
" where a." + PersonIdentity.person_id + "='" + personId + "' "
|
);
|
List<String> names = new ArrayList<>();
|
for (ModelAdapter identity : identityList) {
|
names.add(identity.getString(Identity.name));
|
}
|
return TextUtils.join(",", names);
|
}
|
|
public static Map<String, ModelAdapter> findAllIdentitiesMap() {
|
List<ModelAdapter> identityList = findList("select * from " + Identity.tableName);
|
Map<String, ModelAdapter> identityMap = new HashMap<>();
|
for (ModelAdapter identity : identityList) {
|
identityMap.put(identity.getString(Identity.name), identity);
|
}
|
return identityMap;
|
}
|
|
public static Map<String, ModelAdapter> findIdentityMapByPersonId(String personId) {
|
Map<String, ModelAdapter> identityMap = new HashMap();
|
List<ModelAdapter> personPersonIdentity = PersonIdentityManager.findPersonIdentityListByPersonId(personId);
|
for (ModelAdapter personIdentity : personPersonIdentity) {
|
String identityId = personIdentity.getString("identity_id");
|
identityMap.put(identityId, findById("identity", identityId));
|
}
|
return identityMap;
|
}
|
}
|