Commit 869f8a12 authored by 赵啸非's avatar 赵啸非

修改部分类

parent f18ca5f7
package com.mortals.xhx.base.framework.config;
import com.alibaba.fastjson.parser.ParserConfig;
import com.mortals.framework.thirty.dm.DmTransInterceptor;
import com.mortals.xhx.module.site.model.SiteTreeSelect;
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
......@@ -18,6 +20,8 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Bean
public CorsFilter corsFilter(){
ParserConfig.getGlobalInstance().putDeserializer(SiteTreeSelect.class, new SiteTreeSelect.Deserializer());
......
package com.mortals.xhx.face;
import com.arcsoft.face.*;
import com.arcsoft.face.toolkit.ImageInfo;
import com.google.common.collect.Lists;
import com.mortals.xhx.face.factory.FaceEnginePoolFactory;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.pool2.impl.AbandonedConfig;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import static com.arcsoft.face.toolkit.ImageFactory.getRGBData;
@Slf4j
@Component
public class ArcsoftFaceUtil {
@Value(value = "${faceAppId}")
private String appId;
@Value(value = "${winSdkKey}")
private String winSdkKey;
@Value(value = "${linuxSdkkey}")
private String linuxSdkKey;
public Integer threadPoolSize=5;
private GenericObjectPool<FaceEngine> faceEngineGenericObjectPool;
public ArcsoftFaceUtil(){
String sdkLibPath = getClass().getResource(getOsName()).getPath();
String sdkKey = getSdkKey(sdkLibPath);
// 对象池工厂
FaceEnginePoolFactory personPoolFactory = new FaceEnginePoolFactory(appId,sdkKey,sdkLibPath);
// 对象池配置
GenericObjectPoolConfig<FaceEngine> objectPoolConfig = new GenericObjectPoolConfig<>();
objectPoolConfig.setMaxTotal(threadPoolSize);
AbandonedConfig abandonedConfig = new AbandonedConfig();
//在Maintenance的时候检查是否有泄漏
abandonedConfig.setRemoveAbandonedOnMaintenance(true);
//borrow 的时候检查泄漏
abandonedConfig.setRemoveAbandonedOnBorrow(true);
//如果一个对象borrow之后10秒还没有返还给pool,认为是泄漏的对象
abandonedConfig.setRemoveAbandonedTimeout(10);
// 对象池
faceEngineGenericObjectPool = new GenericObjectPool<>(personPoolFactory, objectPoolConfig);
faceEngineGenericObjectPool.setAbandonedConfig(abandonedConfig);
faceEngineGenericObjectPool.setTimeBetweenEvictionRunsMillis(5000); //5秒运行一次维护任务
log.info("引擎池开启成功");
}
private String getOsName() {
String os = System.getProperty("os.name");
String osName = os.toLowerCase().startsWith("win") ? "/face_lib/win64" : "/face_lib/linux";
return osName;
}
private String getSdkKey(String sdkLibPath) {
return sdkLibPath.equals("/face_lib/win64") ? winSdkKey : linuxSdkKey;
}
/**
* 人脸检测
*
* @param fileInputStream
* @return
*/
public List<FaceInfo> faceFind(InputStream fileInputStream) throws IOException {
FaceEngine faceEngine = null;
try {
faceEngine = faceEngineGenericObjectPool.borrowObject();
ImageInfo imageInfo = getRGBData(fileInputStream);
List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
int errorCode = faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList);
return faceInfoList;
} catch (Exception e) {
log.error("人脸检测出现了异常");
e.printStackTrace();
return new ArrayList<FaceInfo>();
} finally {
fileInputStream.close();
// 回收对象到对象池
if (faceEngine != null) {
faceEngineGenericObjectPool.returnObject(faceEngine);
}
}
}
/**
* 人脸截取
*
* @param fileInputStream
* @param rect
* @return
*/
public String faceCrop(InputStream fileInputStream, Rect rect) {
try {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
BufferedImage bufImage = ImageIO.read(fileInputStream);
int height = bufImage.getHeight();
int width = bufImage.getWidth();
int top = rect.getTop();
int bottom = rect.getBottom();
int left = rect.getLeft();
int right = rect.getRight();
//System.out.println(top + "-" + bottom + "-" + left + "-" + right);
try {
BufferedImage subimage = bufImage.getSubimage(left, top, right - left, bottom - left);
ImageIO.write(subimage, "png", stream);
String base64 = Base64.encode(stream.toByteArray());
return base64;
}catch (Exception e){
return null;
}finally {
stream.close();
fileInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
}
return null;
}
/**
* 人脸特征值提取
*/
public byte[] faceFeature(byte[] bytes) {
FaceEngine faceEngine = null;
try {
faceEngine = faceEngineGenericObjectPool.borrowObject();
ImageInfo imageInfo = getRGBData(bytes);
//人脸检测得到人脸列表
List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList);
FaceFeature faceFeature = new FaceFeature();
faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature);
byte[] featureData = faceFeature.getFeatureData();
return featureData;
} catch (Exception e) {
log.error("人脸特征值提取出现了异常");
e.printStackTrace();
return new byte[0];
} finally {
// 回收对象到对象池
if (faceEngine != null) {
faceEngineGenericObjectPool.returnObject(faceEngine);
}
}
}
/**
* 人脸对比
*/
public float faceCompared(byte [] source,byte [] des) throws IOException {
FaceEngine faceEngine = null;
try {
faceEngine = faceEngineGenericObjectPool.borrowObject();
FaceFeature targetFaceFeature = new FaceFeature();
targetFaceFeature.setFeatureData(source);
FaceFeature sourceFaceFeature = new FaceFeature();
sourceFaceFeature.setFeatureData(des);
FaceSimilar faceSimilar = new FaceSimilar();
faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar);
float score = faceSimilar.getScore();
return score;
} catch (Exception e) {
log.error("人脸对比出现了异常");
e.printStackTrace();
return 0;
} finally {
// 回收对象到对象池
if (faceEngine != null) {
faceEngineGenericObjectPool.returnObject(faceEngine);
}
}
}
/**
* 人脸搜索
*/
public List<SysFaceEntity> faceSearch(FaceFeature targetFaceFeature,List<SysFaceEntity> sourceList) throws IOException {
FaceEngine faceEngine = null;
List<SysFaceEntity> resultFaceInfoList = Lists.newLinkedList();//识别到的人脸列表
try {
faceEngine = faceEngineGenericObjectPool.borrowObject();
for(SysFaceEntity faceUserInfo : sourceList) {
FaceFeature sourceFaceFeature = new FaceFeature();
sourceFaceFeature.setFeatureData(faceUserInfo.getFaceFeature());
FaceSimilar faceSimilar = new FaceSimilar();
faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar);
float score = faceSimilar.getScore();
if(score > 0.8){
faceUserInfo.setSimilarValue(plusHundred(score));
resultFaceInfoList.add(faceUserInfo);
}
}
} catch (Exception e) {
log.error("人脸对比出现了异常");
e.printStackTrace();
} finally {
// 回收对象到对象池
if (faceEngine != null) {
faceEngineGenericObjectPool.returnObject(faceEngine);
}
}
return resultFaceInfoList;
}
private int plusHundred(Float value) {
BigDecimal target = new BigDecimal(value);
BigDecimal hundred = new BigDecimal(100f);
return target.multiply(hundred).intValue();
}
}
package com.mortals.xhx.face.factory;
import com.arcsoft.face.ActiveFileInfo;
import com.arcsoft.face.EngineConfiguration;
import com.arcsoft.face.FaceEngine;
import com.arcsoft.face.FunctionConfiguration;
import com.arcsoft.face.enums.DetectMode;
import com.arcsoft.face.enums.DetectOrient;
import com.arcsoft.face.enums.ErrorInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.pool2.BasePooledObjectFactory;
import org.apache.commons.pool2.PooledObject;
import org.apache.commons.pool2.impl.DefaultPooledObject;
@Slf4j
public class FaceEnginePoolFactory extends BasePooledObjectFactory<FaceEngine> {
private String appId;
private String sdkKey;
private String sdkLibPath;
public FaceEnginePoolFactory(String appId, String sdkKey, String sdkLibPath) {
this.appId = appId;
this.sdkKey = sdkKey;
this.sdkLibPath = sdkLibPath;
//this.sdkLibPath = "D:\\face\\win64";
}
/**
* 在对象池中创建对象
* @return
* @throws Exception
*/
@Override
public FaceEngine create() throws Exception {
FaceEngine faceEngine = new FaceEngine(sdkLibPath);
//激活引擎
int errorCode = faceEngine.activeOnline(appId, sdkKey);
if (errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) {
log.warn("引擎激活失败");
}
ActiveFileInfo activeFileInfo=new ActiveFileInfo();
errorCode = faceEngine.getActiveFileInfo(activeFileInfo);
if (errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) {
log.warn("获取激活文件信息失败");
}
//引擎配置
EngineConfiguration engineConfiguration = new EngineConfiguration();
engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE);
engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT);
engineConfiguration.setDetectFaceMaxNum(10);
engineConfiguration.setDetectFaceScaleVal(16);
//功能配置
FunctionConfiguration functionConfiguration = new FunctionConfiguration();
functionConfiguration.setSupportAge(true);
functionConfiguration.setSupportFace3dAngle(true);
functionConfiguration.setSupportFaceDetect(true);
functionConfiguration.setSupportFaceRecognition(true);
functionConfiguration.setSupportGender(true);
functionConfiguration.setSupportLiveness(true);
functionConfiguration.setSupportIRLiveness(true);
engineConfiguration.setFunctionConfiguration(functionConfiguration);
//初始化引擎
errorCode = faceEngine.init(engineConfiguration);
if (errorCode != ErrorInfo.MOK.getValue()) {
log.error("初始化引擎失败");
}
return faceEngine;
}
/**
* 包装对象
* @param faceEngine
* @return
*/
@Override
public PooledObject<FaceEngine> wrap(FaceEngine faceEngine) {
return new DefaultPooledObject<>(faceEngine);
}
/**
* 销毁对象
* @param faceEngine 对象池
* @throws Exception 异常
*/
@Override
public void destroyObject(PooledObject<FaceEngine> faceEngine) throws Exception {
super.destroyObject(faceEngine);
}
/**
* 校验对象是否可用
* @param faceEngine 对象池
* @return 对象是否可用结果,boolean
*/
@Override
public boolean validateObject(PooledObject<FaceEngine> faceEngine) {
return super.validateObject(faceEngine);
}
/**
* 激活钝化的对象系列操作
* @param faceEngine 对象池
* @throws Exception 异常信息
*/
@Override
public void activateObject(PooledObject<FaceEngine> faceEngine) throws Exception {
super.activateObject(faceEngine);
}
/**
* 钝化未使用的对象
* @param faceEngine 对象池
* @throws Exception 异常信息
*/
@Override
public void passivateObject(PooledObject<FaceEngine> faceEngine) throws Exception {
super.passivateObject(faceEngine);
}
}
......@@ -19,6 +19,8 @@ import com.mortals.xhx.module.dept.model.DeptEntity;
import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.model.vo.DeptVo;
import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.matter.model.MatterQuery;
import com.mortals.xhx.module.matter.service.MatterService;
import com.mortals.xhx.module.matters.model.MattersDeptEntity;
import com.mortals.xhx.module.matters.model.MattersDeptQuery;
import com.mortals.xhx.module.matters.service.MattersDeptService;
......@@ -64,11 +66,13 @@ public class DeptServiceImpl extends AbstractCRUDCacheServiceImpl<DeptDao, DeptE
private WindowMatterService windowMatterService;
@Autowired
private SiteMatterService siteMatterService;
@Autowired
private MatterService matterService;
@Override
protected String getExtKey(DeptEntity data) {
return data.getDeptNumber()+"_"+data.getSiteId();
return data.getDeptNumber() + "_" + data.getSiteId();
}
/**
......@@ -80,7 +84,7 @@ public class DeptServiceImpl extends AbstractCRUDCacheServiceImpl<DeptDao, DeptE
protected void saveBefore(DeptEntity entity, Context context) throws AppException {
super.saveBefore(entity, context);
//新增校验部门编码与站点是否重复
DeptEntity extCache = this.getExtCache(entity.getDeptNumber()+"_"+entity.getSiteId());
DeptEntity extCache = this.getExtCache(entity.getDeptNumber() + "_" + entity.getSiteId());
if (!ObjectUtils.isEmpty(extCache)) {
throw new AppException("部门编码重复!deptCode:" + extCache.getDeptNumber());
}
......@@ -95,12 +99,30 @@ public class DeptServiceImpl extends AbstractCRUDCacheServiceImpl<DeptDao, DeptE
protected void updateBefore(DeptEntity entity, Context context) throws AppException {
super.updateBefore(entity, context);
DeptEntity beforeEntity = this.get(entity.getId(), context);
if (!(beforeEntity.getDeptNumber()+"_"+beforeEntity.getSiteId()).equals(entity.getDeptNumber()+"_"+entity.getSiteId())) {
DeptEntity extCache = this.getExtCache(entity.getDeptNumber()+"_"+entity.getSiteId());
if (!(beforeEntity.getDeptNumber() + "_" + beforeEntity.getSiteId()).equals(entity.getDeptNumber() + "_" + entity.getSiteId())) {
DeptEntity extCache = this.getExtCache(entity.getDeptNumber() + "_" + entity.getSiteId());
if (!ObjectUtils.isEmpty(extCache)) {
throw new AppException("部门编码重复!deptCode:" + extCache.getDeptNumber());
}
}
//todo 判断部门名称是否修改,如果一体化的部门 修改名称则同步修改对应事项的部门名称
if (!ObjectUtils.isEmpty(entity.getSiteId()) &&
!ObjectUtils.isEmpty(entity.getName()) &&
!ObjectUtils.isEmpty(beforeEntity) &&
!entity.getName().equals(beforeEntity.getName())) {
SiteEntity siteCache = siteService.getCache(entity.getSiteId().toString());
//matterService.
MatterQuery condition = new MatterQuery();
condition.setAreaCode(siteCache.getAreaCode());
condition.setDeptName(beforeEntity.getName());
MatterQuery updateQuery = new MatterQuery();
updateQuery.setDeptName(entity.getName());
matterService.getDao().update(updateQuery, condition);
}
}
@Override
......
package com.mortals.xhx.module.identity.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.identity.model.PeopleInfoEntity;
import java.util.List;
/**
* 用户信息Dao
* 用户信息 DAO接口
*
* @author zxfei
* @date 2022-08-08
*/
public interface PeopleInfoDao extends ICRUDDao<PeopleInfoEntity,Long>{
}
package com.mortals.xhx.module.identity.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
import java.util.List;
/**
* 人脸识别信息Dao
* 人脸识别信息 DAO接口
*
* @author zxfei
* @date 2022-08-03
*/
public interface SysFaceDao extends ICRUDDao<SysFaceEntity,String>{
}
package com.mortals.xhx.module.identity.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
import java.util.List;
/**
* 人员身份信息Dao
* 人员身份信息 DAO接口
*
* @author zxfei
* @date 2022-08-03
*/
public interface SysIdentityDao extends ICRUDDao<SysIdentityEntity,String>{
/**
* 身份证号查询
* @param region
* @param birthday
* @param ase
* @param name
* @param id
* @return
*/
SysIdentityEntity findIdentity(Long region,Long birthday,String ase, String name, String id);
}
package com.mortals.xhx.module.identity.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.identity.dao.PeopleInfoDao;
import com.mortals.xhx.module.identity.model.PeopleInfoEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 用户信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-08-08
*/
@Repository("peopleInfoDao")
public class PeopleInfoDaoImpl extends BaseCRUDDaoMybatis<PeopleInfoEntity,Long> implements PeopleInfoDao {
}
package com.mortals.xhx.module.identity.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.identity.dao.SysFaceDao;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 人脸识别信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-08-03
*/
@Repository("sysFaceDao")
public class SysFaceDaoImpl extends BaseCRUDDaoMybatis<SysFaceEntity,String> implements SysFaceDao {
}
package com.mortals.xhx.module.identity.dao.ibatis;
import com.mortals.framework.model.BaseEntity;
import com.mortals.framework.model.ParamDto;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.identity.dao.SysIdentityDao;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 人员身份信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-08-03
*/
@Repository("sysIdentityDao")
public class SysIdentityDaoImpl extends BaseCRUDDaoMybatis<SysIdentityEntity,String> implements SysIdentityDao {
@Override
public SysIdentityEntity findIdentity(Long region, Long birthday, String ase, String name, String id) {
Map<String,Object> condition = new HashMap<>();
condition.put("region",region);
condition.put("birthday",birthday);
condition.put("ase",ase);
condition.put("name",name);
condition.put("id",id);
return (SysIdentityEntity)this.getSqlSession().selectOne(this.getSqlId("findIdentity"), condition);
}
}
package com.mortals.xhx.module.identity.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.identity.model.vo.PeopleInfoVo;
/**
* 用户信息实体对象
*
* @author zxfei
* @date 2022-08-08
*/
public class PeopleInfoEntity extends PeopleInfoVo {
private static final long serialVersionUID = 1L;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
/**
* 民族
*/
private String nation;
/**
* 出生日期
*/
private String born;
/**
* 地址
*/
private String address;
/**
* 身份证号
*/
private String idCardNo;
/**
* 发证机关
*/
private String grantDept;
/**
* 有效期开始
*/
private String userLifeBegin;
/**
* 有效期结束
*/
private String userLifeEnd;
/**
* 照片
*/
private String photoFileName;
/**
* 手机
*/
private String phone;
/**
* 微信开放认证id
*/
private String openid;
/**
* 最近登录时间
*/
private Date lastTime;
/**
*
*/
private Date upTime;
/**
* 微信头像
*/
private String icon;
/**
* 微信昵称
*/
private String nickname;
/**
* 身份证正面照片
*/
private String zImg;
/**
* 身份证背面照片
*/
private String bImg;
/**
* 默认选择的站点id
*/
private Long siteid;
/**
* 天府通办用户名
*/
private String username;
public PeopleInfoEntity(){}
/**
* 获取 姓名
* @return String
*/
public String getName(){
return name;
}
/**
* 设置 姓名
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 性别
* @return String
*/
public String getSex(){
return sex;
}
/**
* 设置 性别
* @param sex
*/
public void setSex(String sex){
this.sex = sex;
}
/**
* 获取 民族
* @return String
*/
public String getNation(){
return nation;
}
/**
* 设置 民族
* @param nation
*/
public void setNation(String nation){
this.nation = nation;
}
/**
* 获取 出生日期
* @return String
*/
public String getBorn(){
return born;
}
/**
* 设置 出生日期
* @param born
*/
public void setBorn(String born){
this.born = born;
}
/**
* 获取 地址
* @return String
*/
public String getAddress(){
return address;
}
/**
* 设置 地址
* @param address
*/
public void setAddress(String address){
this.address = address;
}
/**
* 获取 身份证号
* @return String
*/
public String getIdCardNo(){
return idCardNo;
}
/**
* 设置 身份证号
* @param idCardNo
*/
public void setIdCardNo(String idCardNo){
this.idCardNo = idCardNo;
}
/**
* 获取 发证机关
* @return String
*/
public String getGrantDept(){
return grantDept;
}
/**
* 设置 发证机关
* @param grantDept
*/
public void setGrantDept(String grantDept){
this.grantDept = grantDept;
}
/**
* 获取 有效期开始
* @return String
*/
public String getUserLifeBegin(){
return userLifeBegin;
}
/**
* 设置 有效期开始
* @param userLifeBegin
*/
public void setUserLifeBegin(String userLifeBegin){
this.userLifeBegin = userLifeBegin;
}
/**
* 获取 有效期结束
* @return String
*/
public String getUserLifeEnd(){
return userLifeEnd;
}
/**
* 设置 有效期结束
* @param userLifeEnd
*/
public void setUserLifeEnd(String userLifeEnd){
this.userLifeEnd = userLifeEnd;
}
/**
* 获取 照片
* @return String
*/
public String getPhotoFileName(){
return photoFileName;
}
/**
* 设置 照片
* @param photoFileName
*/
public void setPhotoFileName(String photoFileName){
this.photoFileName = photoFileName;
}
/**
* 获取 手机
* @return String
*/
public String getPhone(){
return phone;
}
/**
* 设置 手机
* @param phone
*/
public void setPhone(String phone){
this.phone = phone;
}
/**
* 获取
* @return String
*/
public String getOpenid(){
return openid;
}
/**
* 设置
* @param openid
*/
public void setOpenid(String openid){
this.openid = openid;
}
/**
* 获取 最近登录时间
* @return Date
*/
public Date getLastTime(){
return lastTime;
}
/**
* 设置 最近登录时间
* @param lastTime
*/
public void setLastTime(Date lastTime){
this.lastTime = lastTime;
}
/**
* 获取
* @return Date
*/
public Date getUpTime(){
return upTime;
}
/**
* 设置
* @param upTime
*/
public void setUpTime(Date upTime){
this.upTime = upTime;
}
/**
* 获取 微信头像
* @return String
*/
public String getIcon(){
return icon;
}
/**
* 设置 微信头像
* @param icon
*/
public void setIcon(String icon){
this.icon = icon;
}
/**
* 获取 微信昵称
* @return String
*/
public String getNickname(){
return nickname;
}
/**
* 设置 微信昵称
* @param nickname
*/
public void setNickname(String nickname){
this.nickname = nickname;
}
/**
* 获取 身份证正面照片
* @return String
*/
public String getZImg(){
return zImg;
}
/**
* 设置 身份证正面照片
* @param zImg
*/
public void setZImg(String zImg){
this.zImg = zImg;
}
/**
* 获取 身份证背面照片
* @return String
*/
public String getBImg(){
return bImg;
}
/**
* 设置 身份证背面照片
* @param bImg
*/
public void setBImg(String bImg){
this.bImg = bImg;
}
/**
* 获取 默认选择的站点id
* @return Long
*/
public Long getSiteid(){
return siteid;
}
/**
* 设置 默认选择的站点id
* @param siteid
*/
public void setSiteid(Long siteid){
this.siteid = siteid;
}
/**
* 获取 天府通办用户名
* @return String
*/
public String getUsername(){
return username;
}
/**
* 设置 天府通办用户名
* @param username
*/
public void setUsername(String username){
this.username = username;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof PeopleInfoEntity) {
PeopleInfoEntity tmp = (PeopleInfoEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",name:").append(getName());
sb.append(",sex:").append(getSex());
sb.append(",nation:").append(getNation());
sb.append(",born:").append(getBorn());
sb.append(",address:").append(getAddress());
sb.append(",idCardNo:").append(getIdCardNo());
sb.append(",grantDept:").append(getGrantDept());
sb.append(",userLifeBegin:").append(getUserLifeBegin());
sb.append(",userLifeEnd:").append(getUserLifeEnd());
sb.append(",photoFileName:").append(getPhotoFileName());
sb.append(",phone:").append(getPhone());
sb.append(",openid:").append(getOpenid());
sb.append(",lastTime:").append(getLastTime());
sb.append(",upTime:").append(getUpTime());
sb.append(",icon:").append(getIcon());
sb.append(",nickname:").append(getNickname());
sb.append(",zImg:").append(getZImg());
sb.append(",bImg:").append(getBImg());
sb.append(",siteid:").append(getSiteid());
sb.append(",username:").append(getUsername());
return sb.toString();
}
public void initAttrValue(){
this.name = "";
this.sex = "";
this.nation = "";
this.born = "";
this.address = "";
this.idCardNo = "";
this.grantDept = "";
this.userLifeBegin = "";
this.userLifeEnd = "";
this.photoFileName = "";
this.phone = "";
this.openid = "微信开放认证id";
this.lastTime = null;
this.upTime = null;
this.icon = "";
this.nickname = "";
this.zImg = "";
this.bImg = "";
this.siteid = 0L;
this.username = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.identity.model.PeopleInfoEntity;
/**
* 用户信息查询对象
*
* @author zxfei
* @date 2022-08-08
*/
public class PeopleInfoQuery extends PeopleInfoEntity {
/** 开始 */
private Long idStart;
/** 结束 */
private Long idEnd;
/** 增加 */
private Long idIncrement;
/** 列表 */
private List <Long> idList;
/** 姓名 */
private List<String> nameList;
/** 性别 */
private List<String> sexList;
/** 民族 */
private List<String> nationList;
/** 出生日期 */
private List<String> bornList;
/** 地址 */
private List<String> addressList;
/** 身份证号 */
private List<String> idCardNoList;
/** 发证机关 */
private List<String> grantDeptList;
/** 有效期开始 */
private List<String> userLifeBeginList;
/** 有效期结束 */
private List<String> userLifeEndList;
/** 照片 */
private List<String> photoFileNameList;
/** 手机 */
private List<String> phoneList;
/** */
private List<String> openidList;
/** 开始 最近登录时间 */
private String lastTimeStart;
/** 结束 最近登录时间 */
private String lastTimeEnd;
/** 开始 */
private String upTimeStart;
/** 结束 */
private String upTimeEnd;
/** 微信头像 */
private List<String> iconList;
/** 微信昵称 */
private List<String> nicknameList;
/** 身份证正面照片 */
private List<String> zImgList;
/** 身份证背面照片 */
private List<String> bImgList;
/** 开始 默认选择的站点id */
private Long siteidStart;
/** 结束 默认选择的站点id */
private Long siteidEnd;
/** 增加 默认选择的站点id */
private Long siteidIncrement;
/** 默认选择的站点id列表 */
private List <Long> siteidList;
/** 天府通办用户名 */
private List<String> usernameList;
/** 开始 申请预约时间 */
private String createTimeStart;
/** 结束 申请预约时间 */
private String createTimeEnd;
/** 开始 */
private String updateTimeStart;
/** 结束 */
private String updateTimeEnd;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<PeopleInfoQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<PeopleInfoQuery> andConditionList;
public PeopleInfoQuery(){}
/**
* 获取 开始
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 姓名
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 姓名
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 性别
* @return sexList
*/
public List<String> getSexList(){
return this.sexList;
}
/**
* 设置 性别
* @param sexList
*/
public void setSexList(List<String> sexList){
this.sexList = sexList;
}
/**
* 获取 民族
* @return nationList
*/
public List<String> getNationList(){
return this.nationList;
}
/**
* 设置 民族
* @param nationList
*/
public void setNationList(List<String> nationList){
this.nationList = nationList;
}
/**
* 获取 出生日期
* @return bornList
*/
public List<String> getBornList(){
return this.bornList;
}
/**
* 设置 出生日期
* @param bornList
*/
public void setBornList(List<String> bornList){
this.bornList = bornList;
}
/**
* 获取 地址
* @return addressList
*/
public List<String> getAddressList(){
return this.addressList;
}
/**
* 设置 地址
* @param addressList
*/
public void setAddressList(List<String> addressList){
this.addressList = addressList;
}
/**
* 获取 身份证号
* @return idCardNoList
*/
public List<String> getIdCardNoList(){
return this.idCardNoList;
}
/**
* 设置 身份证号
* @param idCardNoList
*/
public void setIdCardNoList(List<String> idCardNoList){
this.idCardNoList = idCardNoList;
}
/**
* 获取 发证机关
* @return grantDeptList
*/
public List<String> getGrantDeptList(){
return this.grantDeptList;
}
/**
* 设置 发证机关
* @param grantDeptList
*/
public void setGrantDeptList(List<String> grantDeptList){
this.grantDeptList = grantDeptList;
}
/**
* 获取 有效期开始
* @return userLifeBeginList
*/
public List<String> getUserLifeBeginList(){
return this.userLifeBeginList;
}
/**
* 设置 有效期开始
* @param userLifeBeginList
*/
public void setUserLifeBeginList(List<String> userLifeBeginList){
this.userLifeBeginList = userLifeBeginList;
}
/**
* 获取 有效期结束
* @return userLifeEndList
*/
public List<String> getUserLifeEndList(){
return this.userLifeEndList;
}
/**
* 设置 有效期结束
* @param userLifeEndList
*/
public void setUserLifeEndList(List<String> userLifeEndList){
this.userLifeEndList = userLifeEndList;
}
/**
* 获取 照片
* @return photoFileNameList
*/
public List<String> getPhotoFileNameList(){
return this.photoFileNameList;
}
/**
* 设置 照片
* @param photoFileNameList
*/
public void setPhotoFileNameList(List<String> photoFileNameList){
this.photoFileNameList = photoFileNameList;
}
/**
* 获取 手机
* @return phoneList
*/
public List<String> getPhoneList(){
return this.phoneList;
}
/**
* 设置 手机
* @param phoneList
*/
public void setPhoneList(List<String> phoneList){
this.phoneList = phoneList;
}
/**
* 获取
* @return openidList
*/
public List<String> getOpenidList(){
return this.openidList;
}
/**
* 设置
* @param openidList
*/
public void setOpenidList(List<String> openidList){
this.openidList = openidList;
}
/**
* 获取 开始 最近登录时间
* @return lastTimeStart
*/
public String getLastTimeStart(){
return this.lastTimeStart;
}
/**
* 设置 开始 最近登录时间
* @param lastTimeStart
*/
public void setLastTimeStart(String lastTimeStart){
this.lastTimeStart = lastTimeStart;
}
/**
* 获取 结束 最近登录时间
* @return lastTimeEnd
*/
public String getLastTimeEnd(){
return this.lastTimeEnd;
}
/**
* 设置 结束 最近登录时间
* @param lastTimeEnd
*/
public void setLastTimeEnd(String lastTimeEnd){
this.lastTimeEnd = lastTimeEnd;
}
/**
* 获取 开始
* @return upTimeStart
*/
public String getUpTimeStart(){
return this.upTimeStart;
}
/**
* 设置 开始
* @param upTimeStart
*/
public void setUpTimeStart(String upTimeStart){
this.upTimeStart = upTimeStart;
}
/**
* 获取 结束
* @return upTimeEnd
*/
public String getUpTimeEnd(){
return this.upTimeEnd;
}
/**
* 设置 结束
* @param upTimeEnd
*/
public void setUpTimeEnd(String upTimeEnd){
this.upTimeEnd = upTimeEnd;
}
/**
* 获取 微信头像
* @return iconList
*/
public List<String> getIconList(){
return this.iconList;
}
/**
* 设置 微信头像
* @param iconList
*/
public void setIconList(List<String> iconList){
this.iconList = iconList;
}
/**
* 获取 微信昵称
* @return nicknameList
*/
public List<String> getNicknameList(){
return this.nicknameList;
}
/**
* 设置 微信昵称
* @param nicknameList
*/
public void setNicknameList(List<String> nicknameList){
this.nicknameList = nicknameList;
}
/**
* 获取 身份证正面照片
* @return zImgList
*/
public List<String> getZImgList(){
return this.zImgList;
}
/**
* 设置 身份证正面照片
* @param zImgList
*/
public void setZImgList(List<String> zImgList){
this.zImgList = zImgList;
}
/**
* 获取 身份证背面照片
* @return bImgList
*/
public List<String> getBImgList(){
return this.bImgList;
}
/**
* 设置 身份证背面照片
* @param bImgList
*/
public void setBImgList(List<String> bImgList){
this.bImgList = bImgList;
}
/**
* 获取 开始 默认选择的站点id
* @return siteidStart
*/
public Long getSiteidStart(){
return this.siteidStart;
}
/**
* 设置 开始 默认选择的站点id
* @param siteidStart
*/
public void setSiteidStart(Long siteidStart){
this.siteidStart = siteidStart;
}
/**
* 获取 结束 默认选择的站点id
* @return $siteidEnd
*/
public Long getSiteidEnd(){
return this.siteidEnd;
}
/**
* 设置 结束 默认选择的站点id
* @param siteidEnd
*/
public void setSiteidEnd(Long siteidEnd){
this.siteidEnd = siteidEnd;
}
/**
* 获取 增加 默认选择的站点id
* @return siteidIncrement
*/
public Long getSiteidIncrement(){
return this.siteidIncrement;
}
/**
* 设置 增加 默认选择的站点id
* @param siteidIncrement
*/
public void setSiteidIncrement(Long siteidIncrement){
this.siteidIncrement = siteidIncrement;
}
/**
* 获取 默认选择的站点id
* @return siteidList
*/
public List<Long> getSiteidList(){
return this.siteidList;
}
/**
* 设置 默认选择的站点id
* @param siteidList
*/
public void setSiteidList(List<Long> siteidList){
this.siteidList = siteidList;
}
/**
* 获取 天府通办用户名
* @return usernameList
*/
public List<String> getUsernameList(){
return this.usernameList;
}
/**
* 设置 天府通办用户名
* @param usernameList
*/
public void setUsernameList(List<String> usernameList){
this.usernameList = usernameList;
}
/**
* 获取 开始 申请预约时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 申请预约时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 申请预约时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 申请预约时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始
* @return updateTimeStart
*/
public String getUpdateTimeStart(){
return this.updateTimeStart;
}
/**
* 设置 开始
* @param updateTimeStart
*/
public void setUpdateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
}
/**
* 获取 结束
* @return updateTimeEnd
*/
public String getUpdateTimeEnd(){
return this.updateTimeEnd;
}
/**
* 设置 结束
* @param updateTimeEnd
*/
public void setUpdateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
}
/**
* 设置
* @param id
*/
public PeopleInfoQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始
* @param idStart
*/
public PeopleInfoQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束
* @param idEnd
*/
public PeopleInfoQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加
* @param idIncrement
*/
public PeopleInfoQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置
* @param idList
*/
public PeopleInfoQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 姓名
* @param name
*/
public PeopleInfoQuery name(String name){
setName(name);
return this;
}
/**
* 设置 姓名
* @param nameList
*/
public PeopleInfoQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 性别
* @param sex
*/
public PeopleInfoQuery sex(String sex){
setSex(sex);
return this;
}
/**
* 设置 性别
* @param sexList
*/
public PeopleInfoQuery sexList(List<String> sexList){
this.sexList = sexList;
return this;
}
/**
* 设置 民族
* @param nation
*/
public PeopleInfoQuery nation(String nation){
setNation(nation);
return this;
}
/**
* 设置 民族
* @param nationList
*/
public PeopleInfoQuery nationList(List<String> nationList){
this.nationList = nationList;
return this;
}
/**
* 设置 出生日期
* @param born
*/
public PeopleInfoQuery born(String born){
setBorn(born);
return this;
}
/**
* 设置 出生日期
* @param bornList
*/
public PeopleInfoQuery bornList(List<String> bornList){
this.bornList = bornList;
return this;
}
/**
* 设置 地址
* @param address
*/
public PeopleInfoQuery address(String address){
setAddress(address);
return this;
}
/**
* 设置 地址
* @param addressList
*/
public PeopleInfoQuery addressList(List<String> addressList){
this.addressList = addressList;
return this;
}
/**
* 设置 身份证号
* @param idCardNo
*/
public PeopleInfoQuery idCardNo(String idCardNo){
setIdCardNo(idCardNo);
return this;
}
/**
* 设置 身份证号
* @param idCardNoList
*/
public PeopleInfoQuery idCardNoList(List<String> idCardNoList){
this.idCardNoList = idCardNoList;
return this;
}
/**
* 设置 发证机关
* @param grantDept
*/
public PeopleInfoQuery grantDept(String grantDept){
setGrantDept(grantDept);
return this;
}
/**
* 设置 发证机关
* @param grantDeptList
*/
public PeopleInfoQuery grantDeptList(List<String> grantDeptList){
this.grantDeptList = grantDeptList;
return this;
}
/**
* 设置 有效期开始
* @param userLifeBegin
*/
public PeopleInfoQuery userLifeBegin(String userLifeBegin){
setUserLifeBegin(userLifeBegin);
return this;
}
/**
* 设置 有效期开始
* @param userLifeBeginList
*/
public PeopleInfoQuery userLifeBeginList(List<String> userLifeBeginList){
this.userLifeBeginList = userLifeBeginList;
return this;
}
/**
* 设置 有效期结束
* @param userLifeEnd
*/
public PeopleInfoQuery userLifeEnd(String userLifeEnd){
setUserLifeEnd(userLifeEnd);
return this;
}
/**
* 设置 有效期结束
* @param userLifeEndList
*/
public PeopleInfoQuery userLifeEndList(List<String> userLifeEndList){
this.userLifeEndList = userLifeEndList;
return this;
}
/**
* 设置 照片
* @param photoFileName
*/
public PeopleInfoQuery photoFileName(String photoFileName){
setPhotoFileName(photoFileName);
return this;
}
/**
* 设置 照片
* @param photoFileNameList
*/
public PeopleInfoQuery photoFileNameList(List<String> photoFileNameList){
this.photoFileNameList = photoFileNameList;
return this;
}
/**
* 设置 手机
* @param phone
*/
public PeopleInfoQuery phone(String phone){
setPhone(phone);
return this;
}
/**
* 设置 手机
* @param phoneList
*/
public PeopleInfoQuery phoneList(List<String> phoneList){
this.phoneList = phoneList;
return this;
}
/**
* 设置
* @param openid
*/
public PeopleInfoQuery openid(String openid){
setOpenid(openid);
return this;
}
/**
* 设置
* @param openidList
*/
public PeopleInfoQuery openidList(List<String> openidList){
this.openidList = openidList;
return this;
}
/**
* 设置 微信头像
* @param icon
*/
public PeopleInfoQuery icon(String icon){
setIcon(icon);
return this;
}
/**
* 设置 微信头像
* @param iconList
*/
public PeopleInfoQuery iconList(List<String> iconList){
this.iconList = iconList;
return this;
}
/**
* 设置 微信昵称
* @param nickname
*/
public PeopleInfoQuery nickname(String nickname){
setNickname(nickname);
return this;
}
/**
* 设置 微信昵称
* @param nicknameList
*/
public PeopleInfoQuery nicknameList(List<String> nicknameList){
this.nicknameList = nicknameList;
return this;
}
/**
* 设置 身份证正面照片
* @param zImg
*/
public PeopleInfoQuery zImg(String zImg){
setZImg(zImg);
return this;
}
/**
* 设置 身份证正面照片
* @param zImgList
*/
public PeopleInfoQuery zImgList(List<String> zImgList){
this.zImgList = zImgList;
return this;
}
/**
* 设置 身份证背面照片
* @param bImg
*/
public PeopleInfoQuery bImg(String bImg){
setBImg(bImg);
return this;
}
/**
* 设置 身份证背面照片
* @param bImgList
*/
public PeopleInfoQuery bImgList(List<String> bImgList){
this.bImgList = bImgList;
return this;
}
/**
* 设置 默认选择的站点id
* @param siteid
*/
public PeopleInfoQuery siteid(Long siteid){
setSiteid(siteid);
return this;
}
/**
* 设置 开始 默认选择的站点id
* @param siteidStart
*/
public PeopleInfoQuery siteidStart(Long siteidStart){
this.siteidStart = siteidStart;
return this;
}
/**
* 设置 结束 默认选择的站点id
* @param siteidEnd
*/
public PeopleInfoQuery siteidEnd(Long siteidEnd){
this.siteidEnd = siteidEnd;
return this;
}
/**
* 设置 增加 默认选择的站点id
* @param siteidIncrement
*/
public PeopleInfoQuery siteidIncrement(Long siteidIncrement){
this.siteidIncrement = siteidIncrement;
return this;
}
/**
* 设置 默认选择的站点id
* @param siteidList
*/
public PeopleInfoQuery siteidList(List<Long> siteidList){
this.siteidList = siteidList;
return this;
}
/**
* 设置 天府通办用户名
* @param username
*/
public PeopleInfoQuery username(String username){
setUsername(username);
return this;
}
/**
* 设置 天府通办用户名
* @param usernameList
*/
public PeopleInfoQuery usernameList(List<String> usernameList){
this.usernameList = usernameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<PeopleInfoQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<PeopleInfoQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<PeopleInfoQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<PeopleInfoQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityStr;
import com.mortals.xhx.module.identity.model.vo.SysFaceVo;
/**
* 人脸识别信息实体对象
*
* @author zxfei
* @date 2022-08-03
*/
public class SysFaceEntity extends SysFaceVo {
private static final long serialVersionUID = 1L;
/**
* 场所名称
*/
private String placeName;
/**
* 场所ID
*/
private String placeId;
/**
* 人脸缩略图
*/
private byte[] face;
/**
* 人脸特征
*/
private byte[] faceFeature;
/**
* 身份ID
*/
private String idCard;
/**
* 删除标识
*/
private Integer deleted;
public SysFaceEntity(){}
/**
* 获取 场所名称
* @return String
*/
public String getPlaceName(){
return placeName;
}
/**
* 设置 场所名称
* @param placeName
*/
public void setPlaceName(String placeName){
this.placeName = placeName;
}
/**
* 获取 场所ID
* @return String
*/
public String getPlaceId(){
return placeId;
}
/**
* 设置 场所ID
* @param placeId
*/
public void setPlaceId(String placeId){
this.placeId = placeId;
}
/**
* 获取 人脸缩略图
* @return String
*/
public byte[] getFace(){
return face;
}
/**
* 设置 人脸缩略图
* @param face
*/
public void setFace(byte[] face){
this.face = face;
}
/**
* 获取 人脸特征
* @return String
*/
public byte[] getFaceFeature(){
return faceFeature;
}
/**
* 设置 人脸特征
* @param faceFeature
*/
public void setFaceFeature(byte[] faceFeature){
this.faceFeature = faceFeature;
}
/**
* 获取 身份ID
* @return String
*/
public String getIdCard(){
return idCard;
}
/**
* 设置 身份ID
* @param idCard
*/
public void setIdCard(String idCard){
this.idCard = idCard;
}
/**
* 获取 删除标识
* @return Integer
*/
public Integer getDeleted(){
return deleted;
}
/**
* 设置 删除标识
* @param deleted
*/
public void setDeleted(Integer deleted){
this.deleted = deleted;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof SysFaceEntity) {
SysFaceEntity tmp = (SysFaceEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",placeName:").append(getPlaceName());
sb.append(",placeId:").append(getPlaceId());
sb.append(",face:").append(getFace());
sb.append(",faceFeature:").append(getFaceFeature());
sb.append(",idCard:").append(getIdCard());
sb.append(",deleted:").append(getDeleted());
return sb.toString();
}
public void initAttrValue(){
this.placeName = "";
this.placeId = "";
this.face = null;
this.faceFeature = null;
this.idCard = "0";
this.deleted = 0;
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model;
import java.util.List;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
/**
* 人脸识别信息查询对象
*
* @author zxfei
* @date 2022-08-03
*/
public class SysFaceQuery extends SysFaceEntity {
/** 序号,主键 */
private List<String> idList;
/** 场所名称 */
private List<String> placeNameList;
/** 场所ID */
private List<String> placeIdList;
/** 人脸缩略图 */
private List<String> faceList;
/** 人脸特征 */
private List<String> faceFeatureList;
/** 身份ID */
private List<String> idCardList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 修改时间 */
private String updateTimeStart;
/** 结束 修改时间 */
private String updateTimeEnd;
/** 开始 删除标识 */
private Integer deletedStart;
/** 结束 删除标识 */
private Integer deletedEnd;
/** 增加 删除标识 */
private Integer deletedIncrement;
/** 删除标识列表 */
private List <Integer> deletedList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<SysFaceQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<SysFaceQuery> andConditionList;
public SysFaceQuery(){}
/**
* 获取 序号,主键
* @return idList
*/
public List<String> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键
* @param idList
*/
public void setIdList(List<String> idList){
this.idList = idList;
}
/**
* 获取 场所名称
* @return placeNameList
*/
public List<String> getPlaceNameList(){
return this.placeNameList;
}
/**
* 设置 场所名称
* @param placeNameList
*/
public void setPlaceNameList(List<String> placeNameList){
this.placeNameList = placeNameList;
}
/**
* 获取 场所ID
* @return placeIdList
*/
public List<String> getPlaceIdList(){
return this.placeIdList;
}
/**
* 设置 场所ID
* @param placeIdList
*/
public void setPlaceIdList(List<String> placeIdList){
this.placeIdList = placeIdList;
}
/**
* 获取 人脸缩略图
* @return faceList
*/
public List<String> getFaceList(){
return this.faceList;
}
/**
* 设置 人脸缩略图
* @param faceList
*/
public void setFaceList(List<String> faceList){
this.faceList = faceList;
}
/**
* 获取 人脸特征
* @return faceFeatureList
*/
public List<String> getFaceFeatureList(){
return this.faceFeatureList;
}
/**
* 设置 人脸特征
* @param faceFeatureList
*/
public void setFaceFeatureList(List<String> faceFeatureList){
this.faceFeatureList = faceFeatureList;
}
/**
* 获取 身份ID
* @return idCardList
*/
public List<String> getIdCardList(){
return this.idCardList;
}
/**
* 设置 身份ID
* @param idCardList
*/
public void setIdCardList(List<String> idCardList){
this.idCardList = idCardList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 修改时间
* @return updateTimeStart
*/
public String getUpdateTimeStart(){
return this.updateTimeStart;
}
/**
* 设置 开始 修改时间
* @param updateTimeStart
*/
public void setUpdateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
}
/**
* 获取 结束 修改时间
* @return updateTimeEnd
*/
public String getUpdateTimeEnd(){
return this.updateTimeEnd;
}
/**
* 设置 结束 修改时间
* @param updateTimeEnd
*/
public void setUpdateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
}
/**
* 获取 开始 删除标识
* @return deletedStart
*/
public Integer getDeletedStart(){
return this.deletedStart;
}
/**
* 设置 开始 删除标识
* @param deletedStart
*/
public void setDeletedStart(Integer deletedStart){
this.deletedStart = deletedStart;
}
/**
* 获取 结束 删除标识
* @return $deletedEnd
*/
public Integer getDeletedEnd(){
return this.deletedEnd;
}
/**
* 设置 结束 删除标识
* @param deletedEnd
*/
public void setDeletedEnd(Integer deletedEnd){
this.deletedEnd = deletedEnd;
}
/**
* 获取 增加 删除标识
* @return deletedIncrement
*/
public Integer getDeletedIncrement(){
return this.deletedIncrement;
}
/**
* 设置 增加 删除标识
* @param deletedIncrement
*/
public void setDeletedIncrement(Integer deletedIncrement){
this.deletedIncrement = deletedIncrement;
}
/**
* 获取 删除标识
* @return deletedList
*/
public List<Integer> getDeletedList(){
return this.deletedList;
}
/**
* 设置 删除标识
* @param deletedList
*/
public void setDeletedList(List<Integer> deletedList){
this.deletedList = deletedList;
}
/**
* 设置 序号,主键
* @param id
*/
public SysFaceQuery id(String id){
setId(id);
return this;
}
/**
* 设置 序号,主键
* @param idList
*/
public SysFaceQuery idList(List<String> idList){
this.idList = idList;
return this;
}
/**
* 设置 场所名称
* @param placeName
*/
public SysFaceQuery placeName(String placeName){
setPlaceName(placeName);
return this;
}
/**
* 设置 场所名称
* @param placeNameList
*/
public SysFaceQuery placeNameList(List<String> placeNameList){
this.placeNameList = placeNameList;
return this;
}
/**
* 设置 场所ID
* @param placeId
*/
public SysFaceQuery placeId(String placeId){
setPlaceId(placeId);
return this;
}
/**
* 设置 场所ID
* @param placeIdList
*/
public SysFaceQuery placeIdList(List<String> placeIdList){
this.placeIdList = placeIdList;
return this;
}
/**
* 设置 人脸缩略图
* @param face
*/
public SysFaceQuery face(byte[] face){
setFace(face);
return this;
}
/**
* 设置 人脸缩略图
* @param faceList
*/
public SysFaceQuery faceList(List<String> faceList){
this.faceList = faceList;
return this;
}
/**
* 设置 人脸特征
* @param faceFeature
*/
public SysFaceQuery faceFeature(byte[] faceFeature){
setFaceFeature(faceFeature);
return this;
}
/**
* 设置 人脸特征
* @param faceFeatureList
*/
public SysFaceQuery faceFeatureList(List<String> faceFeatureList){
this.faceFeatureList = faceFeatureList;
return this;
}
/**
* 设置 身份ID
* @param idCard
*/
public SysFaceQuery idCard(String idCard){
setIdCard(idCard);
return this;
}
/**
* 设置 身份ID
* @param idCardList
*/
public SysFaceQuery idCardList(List<String> idCardList){
this.idCardList = idCardList;
return this;
}
/**
* 设置 删除标识
* @param deleted
*/
public SysFaceQuery deleted(Integer deleted){
setDeleted(deleted);
return this;
}
/**
* 设置 开始 删除标识
* @param deletedStart
*/
public SysFaceQuery deletedStart(Integer deletedStart){
this.deletedStart = deletedStart;
return this;
}
/**
* 设置 结束 删除标识
* @param deletedEnd
*/
public SysFaceQuery deletedEnd(Integer deletedEnd){
this.deletedEnd = deletedEnd;
return this;
}
/**
* 设置 增加 删除标识
* @param deletedIncrement
*/
public SysFaceQuery deletedIncrement(Integer deletedIncrement){
this.deletedIncrement = deletedIncrement;
return this;
}
/**
* 设置 删除标识
* @param deletedList
*/
public SysFaceQuery deletedList(List<Integer> deletedList){
this.deletedList = deletedList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<SysFaceQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<SysFaceQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<SysFaceQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<SysFaceQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model;
import com.mortals.xhx.module.identity.model.vo.SysIdentityVo;
/**
* 人员身份信息实体对象
*
* @author zxfei
* @date 2022-08-03
*/
public class SysIdentityEntity extends SysIdentityVo {
private static final long serialVersionUID = 1L;
/**
* 区域
*/
private Long region;
/**
* 生日
*/
private Long birthday;
/**
* 序列号
*/
private String ase;
/**
* 姓名
*/
private String name;
/**
* 电话
*/
private String phone;
/**
* 删除标识
*/
private Integer deleted;
public SysIdentityEntity(){}
/**
* 获取 区域
* @return Long
*/
public Long getRegion(){
return region;
}
/**
* 设置 区域
* @param region
*/
public void setRegion(Long region){
this.region = region;
}
/**
* 获取 生日
* @return Long
*/
public Long getBirthday(){
return birthday;
}
/**
* 设置 生日
* @param birthday
*/
public void setBirthday(Long birthday){
this.birthday = birthday;
}
/**
* 获取 序列号
* @return String
*/
public String getAse(){
return ase;
}
/**
* 设置 序列号
* @param ase
*/
public void setAse(String ase){
this.ase = ase;
}
/**
* 获取 姓名
* @return String
*/
public String getName(){
return name;
}
/**
* 设置 姓名
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 电话
* @return String
*/
public String getPhone(){
return phone;
}
/**
* 设置 电话
* @param phone
*/
public void setPhone(String phone){
this.phone = phone;
}
/**
* 获取 删除标识
* @return Integer
*/
public Integer getDeleted(){
return deleted;
}
/**
* 设置 删除标识
* @param deleted
*/
public void setDeleted(Integer deleted){
this.deleted = deleted;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof SysIdentityEntity) {
SysIdentityEntity tmp = (SysIdentityEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",region:").append(getRegion());
sb.append(",birthday:").append(getBirthday());
sb.append(",ase:").append(getAse());
sb.append(",name:").append(getName());
sb.append(",phone:").append(getPhone());
sb.append(",deleted:").append(getDeleted());
return sb.toString();
}
public void initAttrValue(){
this.region = null;
this.birthday = null;
this.ase = "";
this.name = "0";
this.phone = "";
this.deleted = 0;
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model;
import java.util.List;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
/**
* 人员身份信息查询对象
*
* @author zxfei
* @date 2022-08-03
*/
public class SysIdentityQuery extends SysIdentityEntity {
/** 序号,主键 */
private List<String> idList;
/** 开始 区域 */
private Long regionStart;
/** 结束 区域 */
private Long regionEnd;
/** 增加 区域 */
private Long regionIncrement;
/** 区域列表 */
private List <Long> regionList;
/** 开始 生日 */
private Long birthdayStart;
/** 结束 生日 */
private Long birthdayEnd;
/** 增加 生日 */
private Long birthdayIncrement;
/** 生日列表 */
private List <Long> birthdayList;
/** 序列号 */
private List<String> aseList;
/** 姓名 */
private List<String> nameList;
/** 电话 */
private List<String> phoneList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 修改时间 */
private String updateTimeStart;
/** 结束 修改时间 */
private String updateTimeEnd;
/** 开始 删除标识 */
private Integer deletedStart;
/** 结束 删除标识 */
private Integer deletedEnd;
/** 增加 删除标识 */
private Integer deletedIncrement;
/** 删除标识列表 */
private List <Integer> deletedList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<SysIdentityQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<SysIdentityQuery> andConditionList;
public SysIdentityQuery(){}
/**
* 获取 序号,主键
* @return idList
*/
public List<String> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键
* @param idList
*/
public void setIdList(List<String> idList){
this.idList = idList;
}
/**
* 获取 开始 区域
* @return regionStart
*/
public Long getRegionStart(){
return this.regionStart;
}
/**
* 设置 开始 区域
* @param regionStart
*/
public void setRegionStart(Long regionStart){
this.regionStart = regionStart;
}
/**
* 获取 结束 区域
* @return $regionEnd
*/
public Long getRegionEnd(){
return this.regionEnd;
}
/**
* 设置 结束 区域
* @param regionEnd
*/
public void setRegionEnd(Long regionEnd){
this.regionEnd = regionEnd;
}
/**
* 获取 增加 区域
* @return regionIncrement
*/
public Long getRegionIncrement(){
return this.regionIncrement;
}
/**
* 设置 增加 区域
* @param regionIncrement
*/
public void setRegionIncrement(Long regionIncrement){
this.regionIncrement = regionIncrement;
}
/**
* 获取 区域
* @return regionList
*/
public List<Long> getRegionList(){
return this.regionList;
}
/**
* 设置 区域
* @param regionList
*/
public void setRegionList(List<Long> regionList){
this.regionList = regionList;
}
/**
* 获取 开始 生日
* @return birthdayStart
*/
public Long getBirthdayStart(){
return this.birthdayStart;
}
/**
* 设置 开始 生日
* @param birthdayStart
*/
public void setBirthdayStart(Long birthdayStart){
this.birthdayStart = birthdayStart;
}
/**
* 获取 结束 生日
* @return $birthdayEnd
*/
public Long getBirthdayEnd(){
return this.birthdayEnd;
}
/**
* 设置 结束 生日
* @param birthdayEnd
*/
public void setBirthdayEnd(Long birthdayEnd){
this.birthdayEnd = birthdayEnd;
}
/**
* 获取 增加 生日
* @return birthdayIncrement
*/
public Long getBirthdayIncrement(){
return this.birthdayIncrement;
}
/**
* 设置 增加 生日
* @param birthdayIncrement
*/
public void setBirthdayIncrement(Long birthdayIncrement){
this.birthdayIncrement = birthdayIncrement;
}
/**
* 获取 生日
* @return birthdayList
*/
public List<Long> getBirthdayList(){
return this.birthdayList;
}
/**
* 设置 生日
* @param birthdayList
*/
public void setBirthdayList(List<Long> birthdayList){
this.birthdayList = birthdayList;
}
/**
* 获取 序列号
* @return aseList
*/
public List<String> getAseList(){
return this.aseList;
}
/**
* 设置 序列号
* @param aseList
*/
public void setAseList(List<String> aseList){
this.aseList = aseList;
}
/**
* 获取 姓名
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 姓名
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 电话
* @return phoneList
*/
public List<String> getPhoneList(){
return this.phoneList;
}
/**
* 设置 电话
* @param phoneList
*/
public void setPhoneList(List<String> phoneList){
this.phoneList = phoneList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 修改时间
* @return updateTimeStart
*/
public String getUpdateTimeStart(){
return this.updateTimeStart;
}
/**
* 设置 开始 修改时间
* @param updateTimeStart
*/
public void setUpdateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
}
/**
* 获取 结束 修改时间
* @return updateTimeEnd
*/
public String getUpdateTimeEnd(){
return this.updateTimeEnd;
}
/**
* 设置 结束 修改时间
* @param updateTimeEnd
*/
public void setUpdateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
}
/**
* 获取 开始 删除标识
* @return deletedStart
*/
public Integer getDeletedStart(){
return this.deletedStart;
}
/**
* 设置 开始 删除标识
* @param deletedStart
*/
public void setDeletedStart(Integer deletedStart){
this.deletedStart = deletedStart;
}
/**
* 获取 结束 删除标识
* @return $deletedEnd
*/
public Integer getDeletedEnd(){
return this.deletedEnd;
}
/**
* 设置 结束 删除标识
* @param deletedEnd
*/
public void setDeletedEnd(Integer deletedEnd){
this.deletedEnd = deletedEnd;
}
/**
* 获取 增加 删除标识
* @return deletedIncrement
*/
public Integer getDeletedIncrement(){
return this.deletedIncrement;
}
/**
* 设置 增加 删除标识
* @param deletedIncrement
*/
public void setDeletedIncrement(Integer deletedIncrement){
this.deletedIncrement = deletedIncrement;
}
/**
* 获取 删除标识
* @return deletedList
*/
public List<Integer> getDeletedList(){
return this.deletedList;
}
/**
* 设置 删除标识
* @param deletedList
*/
public void setDeletedList(List<Integer> deletedList){
this.deletedList = deletedList;
}
/**
* 设置 序号,主键
* @param id
*/
public SysIdentityQuery id(String id){
setId(id);
return this;
}
/**
* 设置 序号,主键
* @param idList
*/
public SysIdentityQuery idList(List<String> idList){
this.idList = idList;
return this;
}
/**
* 设置 区域
* @param region
*/
public SysIdentityQuery region(Long region){
setRegion(region);
return this;
}
/**
* 设置 开始 区域
* @param regionStart
*/
public SysIdentityQuery regionStart(Long regionStart){
this.regionStart = regionStart;
return this;
}
/**
* 设置 结束 区域
* @param regionEnd
*/
public SysIdentityQuery regionEnd(Long regionEnd){
this.regionEnd = regionEnd;
return this;
}
/**
* 设置 增加 区域
* @param regionIncrement
*/
public SysIdentityQuery regionIncrement(Long regionIncrement){
this.regionIncrement = regionIncrement;
return this;
}
/**
* 设置 区域
* @param regionList
*/
public SysIdentityQuery regionList(List<Long> regionList){
this.regionList = regionList;
return this;
}
/**
* 设置 生日
* @param birthday
*/
public SysIdentityQuery birthday(Long birthday){
setBirthday(birthday);
return this;
}
/**
* 设置 开始 生日
* @param birthdayStart
*/
public SysIdentityQuery birthdayStart(Long birthdayStart){
this.birthdayStart = birthdayStart;
return this;
}
/**
* 设置 结束 生日
* @param birthdayEnd
*/
public SysIdentityQuery birthdayEnd(Long birthdayEnd){
this.birthdayEnd = birthdayEnd;
return this;
}
/**
* 设置 增加 生日
* @param birthdayIncrement
*/
public SysIdentityQuery birthdayIncrement(Long birthdayIncrement){
this.birthdayIncrement = birthdayIncrement;
return this;
}
/**
* 设置 生日
* @param birthdayList
*/
public SysIdentityQuery birthdayList(List<Long> birthdayList){
this.birthdayList = birthdayList;
return this;
}
/**
* 设置 序列号
* @param ase
*/
public SysIdentityQuery ase(String ase){
setAse(ase);
return this;
}
/**
* 设置 序列号
* @param aseList
*/
public SysIdentityQuery aseList(List<String> aseList){
this.aseList = aseList;
return this;
}
/**
* 设置 姓名
* @param name
*/
public SysIdentityQuery name(String name){
setName(name);
return this;
}
/**
* 设置 姓名
* @param nameList
*/
public SysIdentityQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 电话
* @param phone
*/
public SysIdentityQuery phone(String phone){
setPhone(phone);
return this;
}
/**
* 设置 电话
* @param phoneList
*/
public SysIdentityQuery phoneList(List<String> phoneList){
this.phoneList = phoneList;
return this;
}
/**
* 设置 删除标识
* @param deleted
*/
public SysIdentityQuery deleted(Integer deleted){
setDeleted(deleted);
return this;
}
/**
* 设置 开始 删除标识
* @param deletedStart
*/
public SysIdentityQuery deletedStart(Integer deletedStart){
this.deletedStart = deletedStart;
return this;
}
/**
* 设置 结束 删除标识
* @param deletedEnd
*/
public SysIdentityQuery deletedEnd(Integer deletedEnd){
this.deletedEnd = deletedEnd;
return this;
}
/**
* 设置 增加 删除标识
* @param deletedIncrement
*/
public SysIdentityQuery deletedIncrement(Integer deletedIncrement){
this.deletedIncrement = deletedIncrement;
return this;
}
/**
* 设置 删除标识
* @param deletedList
*/
public SysIdentityQuery deletedList(List<Integer> deletedList){
this.deletedList = deletedList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<SysIdentityQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<SysIdentityQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<SysIdentityQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<SysIdentityQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model.vo;
import lombok.Data;
@Data
public class FaceInfoResVO {
/** id */
private String id;
/** 场所ID */
private String placeId;
/** 场所名称 */
private String placeName;
/** 人脸缩略图 */
private String face;
/** 人脸特征 */
private String faceFeature;
/** 身份信息ID */
private String cardId;
/** 身份证ID */
private String idCard;
/** 身份证名称 */
private String name;
/** 手机号 */
private String phone;
}
package com.mortals.xhx.module.identity.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.identity.model.PeopleInfoEntity;
import java.util.ArrayList;
import java.util.List;
/**
* 用户信息视图对象
*
* @author zxfei
* @date 2022-08-08
*/
public class PeopleInfoVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model.vo;
import com.mortals.framework.model.BaseEntityStr;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
import java.util.ArrayList;
import java.util.List;
/**
* 人脸识别信息视图对象
*
* @author zxfei
* @date 2022-08-03
*/
public class SysFaceVo extends BaseEntityStr {
/** 相似度 */
private Integer similarValue;
public Integer getSimilarValue() {
return similarValue;
}
public void setSimilarValue(Integer similarValue) {
this.similarValue = similarValue;
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.model.vo;
import com.mortals.framework.model.BaseEntityStr;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 人员身份信息视图对象
*
* @author zxfei
* @date 2022-08-03
*/
@Data
public class SysIdentityVo extends BaseEntityStr {
/**
* 身份证编码
*/
private String idCard;
}
\ No newline at end of file
package com.mortals.xhx.module.identity.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.identity.model.PeopleInfoEntity;
/**
* PeopleInfoService
*
* 用户信息 service接口
*
* @author zxfei
* @date 2022-08-08
*/
public interface PeopleInfoService extends ICRUDService<PeopleInfoEntity,Long>{
/**
* 获取身份详细数据
* @param reqVo
* @return
* @throws AppException
*/
PeopleInfoEntity findPeopleInfo(PeopleInfoEntity reqVo) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.identity.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
import com.mortals.xhx.module.identity.model.vo.FaceInfoResVO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.concurrent.ExecutionException;
/**
* SysFaceService
*
* 人脸识别信息 service接口
*
* @author zxfei
* @date 2022-08-03
*/
public interface SysFaceService extends ICRUDService<SysFaceEntity,String>{
/**
* 注册人脸
*/
FaceInfoResVO uploadImage(MultipartFile multipartFile, String name, String idCard, String placeId, String placeName) throws AppException;
/**
* 下发人脸列表
*
* @param placeId
* @return
*/
List<FaceInfoResVO> findFaceList(String placeId) throws AppException;
/**
* 批量录入人脸
*
* @param
* @return
*/
void batchAddFace( List<MultipartFile> files,String placeId,String placeName);
/**
* 人脸特征识别
* @param faceFeature
* @return
*/
List<FaceInfoResVO> searchUserByFace(byte[] faceFeature) throws InterruptedException, ExecutionException;
}
\ No newline at end of file
package com.mortals.xhx.module.identity.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
/**
* SysIdentityService
*
* 人员身份信息 service接口
*
* @author zxfei
* @date 2022-08-03
*/
public interface SysIdentityService extends ICRUDService<SysIdentityEntity,String>{
/**
* 添加身份数据
*
* @param reqVO
* @return
*/
SysIdentityEntity saveIdEntity(SysIdentityEntity reqVO) throws AppException;
/**
* 获取身份ID
*
* @param reqVO
* @return
*/
String findIdEntity(SysIdentityEntity reqVO) throws AppException;
/**
* 获取身份详细数据
*
* @param id
* @param type 系统内部使用 1
* @return
*/
SysIdentityEntity findIdEntityDetail(String id,int type) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.identity.service.impl;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.PhoneUtil;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.identity.dao.PeopleInfoDao;
import com.mortals.xhx.module.identity.model.PeopleInfoEntity;
import com.mortals.xhx.module.identity.service.PeopleInfoService;
import java.util.List;
/**
* PeopleInfoService
* 用户信息 service实现
*
* @author zxfei
* @date 2022-08-08
*/
@Service("peopleInfoService")
public class PeopleInfoServiceImpl extends AbstractCRUDServiceImpl<PeopleInfoDao, PeopleInfoEntity, Long> implements PeopleInfoService {
@Override
protected void validData(PeopleInfoEntity entity, Context context) throws AppException {
if(StringUtils.isEmpty(entity.getIdCardNo())){
throw new AppException("身份证号不能为空");
}
if(StringUtils.isEmpty(entity.getName())){
throw new AppException("身份证姓名不能为空");
}
if(!IdcardUtil.isValidCard18(entity.getIdCardNo())){
throw new AppException("身份证号码格式不正确");
}
if(StringUtils.isEmpty(entity.getPhone())){
throw new AppException("手机号不能为空");
}
if(!PhoneUtil.isPhone(entity.getPhone())){
throw new AppException("手机号码格式不正确");
}
}
@Override
protected void saveBefore(PeopleInfoEntity entity, Context context) throws AppException {
this.validData(entity, context);
PeopleInfoEntity query = new PeopleInfoEntity();
query.setIdCardNo(entity.getIdCardNo());
List<PeopleInfoEntity> list = dao.getList(query);
if(CollectionUtils.isNotEmpty(list)){
throw new AppException("身份证号码重复");
}
}
@Override
public PeopleInfoEntity findPeopleInfo(PeopleInfoEntity reqVo) throws AppException {
// if(StringUtils.isEmpty(reqVo.getIdCardNo())){
// throw new AppException("身份证号不能为空");
// }
// if(!IdcardUtil.isValidCard18(reqVo.getIdCardNo())){
// throw new AppException("身份证号码格式不正确");
// }
List<PeopleInfoEntity> list = dao.getList(reqVo);
if(CollectionUtils.isEmpty(list)){
throw new AppException("无身份数据");
}
return list.get(0);
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.img.Img;
import cn.hutool.core.util.IdUtil;
import com.arcsoft.face.FaceEngine;
import com.arcsoft.face.FaceFeature;
import com.arcsoft.face.FaceSimilar;
import com.google.common.collect.Lists;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.common.utils.FaceUtil;
import com.mortals.xhx.face.ArcsoftFaceUtil;
import com.mortals.xhx.module.identity.dao.SysFaceDao;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
import com.mortals.xhx.module.identity.model.vo.FaceInfoResVO;
import com.mortals.xhx.module.identity.service.SysFaceService;
import com.mortals.xhx.module.identity.service.SysIdentityService;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.PostConstruct;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.Date;
import java.util.List;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* SysFaceService
* 人脸识别信息 service实现
*
* @author zxfei
* @date 2022-08-03
*/
@Service("sysFaceService")
public class SysFaceServiceImpl extends AbstractCRUDServiceImpl<SysFaceDao, SysFaceEntity, String> implements SysFaceService {
private Integer passRate = 80;
public static final int WIDTH = 100;
public static final int HEIGHT = 100;
@Value(value = "${faceAppId}")
private String appId;
@Value(value = "${winSdkKey}")
private String winSdkKey;
@Value(value = "${linuxSdkkey}")
private String linuxSdkKey;
public Integer threadPoolSize = 5;
@Autowired
private FaceUtil faceUtil;
@Autowired
private SysIdentityService sysIdentityService;
@Autowired
private ArcsoftFaceUtil arcsoftFaceUtil;
private ExecutorService executorService;
@PostConstruct
public void init() {
executorService = Executors.newFixedThreadPool(threadPoolSize);
}
@Override
protected void saveBefore(SysFaceEntity entity, Context context) throws AppException {
//非系统自增,需这里设置主键
entity.setId(IdUtil.fastSimpleUUID());
super.saveBefore(entity, context);
}
@Override
public FaceInfoResVO uploadImage(MultipartFile multipartFile, String name, String idCard, String placeId, String placeName) throws AppException {
String clientName = multipartFile.getOriginalFilename();
if(!(clientName.endsWith(".png") || clientName.endsWith(".jpg") || clientName.endsWith(".jpeg"))){
throw new AppException("请上传图片格式(" + clientName + ")");
}
FaceInfoResVO resVO = new FaceInfoResVO();
SysIdentityEntity idEntityReqVO = new SysIdentityEntity();
idEntityReqVO.setName(name);
idEntityReqVO.setIdCard(idCard);
String entityId = sysIdentityService.saveIdEntity(idEntityReqVO).getId();
SysFaceEntity query = new SysFaceEntity();
query.setIdCard(entityId);
List<SysFaceEntity> sysFaceList = dao.getList(query);
if(CollectionUtils.isNotEmpty(sysFaceList)){
throw new AppException("该用户(" + idEntityReqVO.getName() + "_" + idEntityReqVO.getIdCard() + ")人脸数据已存在");
}
try {
byte[] file = multipartFile.getBytes();
//激活引擎
FaceEngine faceEngine = faceUtil.initFace(appId, getSdkKey());
byte[] featureData = faceUtil.featureData(faceEngine, file);
//创建缩略图
BufferedImage image = Thumbnails.of(multipartFile.getInputStream()).size(WIDTH, HEIGHT).asBufferedImage();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//此方法会造成png图片有阴影
// ImageIO.write(image, "jpg", byteArrayOutputStream);
Img.from(image).write(byteArrayOutputStream);
byteArrayOutputStream.flush();
SysFaceEntity sysFace = new SysFaceEntity();
sysFace.setId(IdUtil.fastSimpleUUID());
sysFace.setFace(byteArrayOutputStream.toByteArray());
sysFace.setFaceFeature(featureData);
sysFace.setIdCard(entityId);
sysFace.setPlaceId(placeId);
sysFace.setPlaceName(placeName);
sysFace.setCreateTime(new Date());
sysFace.setUpdateTime(sysFace.getCreateTime());
sysFace.setDeleted(0);
dao.insert(sysFace);
resVO.setFace(Base64.getEncoder().encodeToString(file));
resVO.setFaceFeature(Base64.getEncoder().encodeToString(featureData));
resVO.setIdCard(idCard);
resVO.setName(name);
resVO.setPhone("");
resVO.setId(sysFace.getId());
} catch (IOException e) {
log.error("提取特征失败:", e);
}
return resVO;
}
@Override
public List<FaceInfoResVO> findFaceList(String placeId) throws AppException {
SysFaceEntity query = new SysFaceEntity();
query.setPlaceId(placeId);
List<SysFaceEntity> sysFaceList = dao.getList(query);
if(CollectionUtils.isEmpty(sysFaceList)){
throw new AppException("该场所无人脸数据");
}
return sysFaceList.stream().map(o -> {
FaceInfoResVO resVO = new FaceInfoResVO();
SysIdentityEntity resVO1 = sysIdentityService.findIdEntityDetail(o.getIdCard(), 1);
resVO.setId(o.getId());
resVO.setPlaceId(o.getPlaceId());
resVO.setPlaceName(o.getPlaceName());
resVO.setCardId(resVO1.getId());
resVO.setName(resVO1.getName());
resVO.setPhone(resVO1.getPhone());
resVO.setFace(Base64.getEncoder().encodeToString(o.getFace()));
resVO.setFaceFeature(Base64.getEncoder().encodeToString(o.getFaceFeature()));
return resVO;
}).collect(Collectors.toList());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void batchAddFace(List<MultipartFile> files, String placeId, String placeName) {
for (int j = 0; j < files.size(); j++) {
String fileName = files.get(j).getOriginalFilename();
if(StringUtils.isEmpty(fileName)){
throw new AppException("文件名称(" + fileName + ")不能为空!");
}
String[] info = fileName.split("/");
if(info.length != 2){
throw new AppException("(" + fileName + ")文件命名错误,请按照规定文件模版上传!");
}
String[] infos = info[1].split("\\.");
if(infos.length != 2){
throw new AppException("(" + fileName + ")文件命名错误,请按照规定文件模版上传!");
}
String[] strings = infos[0].split("_");
if(strings.length != 2){
throw new AppException("(" + fileName + ")文件命名错误,请按照规定文件模版上传!");
}
uploadImage(files.get(j), strings[0], strings[1], placeId, placeName);
}
}
private String getSdkKey() {
return faceUtil.getOsName().equals("/win") ? winSdkKey : linuxSdkKey;
}
@Override
public List<FaceInfoResVO> searchUserByFace(byte[] bytes) throws InterruptedException, ExecutionException{
List<SysFaceEntity> resultFaceInfoList = Lists.newLinkedList();//识别到的人脸列表
byte[] faceFeature = arcsoftFaceUtil.faceFeature(bytes);
FaceFeature targetFaceFeature = new FaceFeature();
targetFaceFeature.setFeatureData(faceFeature);
List<SysFaceEntity> faceInfoList = this.find(new SysFaceEntity());
List<List<SysFaceEntity>> faceUserInfoPartList = Lists.partition(faceInfoList, 1000);//分成1000一组,多线程处理
CompletionService<List<SysFaceEntity>> completionService = new ExecutorCompletionService(executorService);
for (List<SysFaceEntity> part : faceUserInfoPartList) {
completionService.submit(new CompareFaceTask(part, targetFaceFeature));
}
for (int i = 0; i < faceUserInfoPartList.size(); i++) {
List<SysFaceEntity> faceUserInfoList = completionService.take().get();
if (CollectionUtil.isNotEmpty(faceInfoList)) {
resultFaceInfoList.addAll(faceUserInfoList);
}
}
resultFaceInfoList.sort((h1, h2) -> h2.getSimilarValue().compareTo(h1.getSimilarValue()));//从大到小排序
return resultFaceInfoList.stream().map(o -> {
FaceInfoResVO resVO = new FaceInfoResVO();
SysIdentityEntity resVO1 = sysIdentityService.findIdEntityDetail(o.getIdCard(), 1);
resVO.setId(o.getId());
resVO.setPlaceId(o.getPlaceId());
resVO.setPlaceName(o.getPlaceName());
resVO.setCardId(resVO1.getId());
resVO.setName(resVO1.getName());
resVO.setPhone(resVO1.getPhone());
resVO.setFace(Base64.getEncoder().encodeToString(o.getFace()));
resVO.setFaceFeature(Base64.getEncoder().encodeToString(o.getFaceFeature()));
return resVO;
}).collect(Collectors.toList());
}
private class CompareFaceTask implements Callable<List<SysFaceEntity>> {
private List<SysFaceEntity> faceUserInfoList;
private FaceFeature targetFaceFeature;
public CompareFaceTask(List<SysFaceEntity> faceUserInfoList, FaceFeature targetFaceFeature) {
this.faceUserInfoList = faceUserInfoList;
this.targetFaceFeature = targetFaceFeature;
}
@Override
public List<SysFaceEntity> call() throws Exception {
return arcsoftFaceUtil.faceSearch(targetFaceFeature,faceUserInfoList);
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.service.impl;
import cn.hutool.core.util.IdcardUtil;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.common.utils.RioUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.identity.dao.SysIdentityDao;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
import com.mortals.xhx.module.identity.service.SysIdentityService;
import cn.hutool.core.util.IdUtil;
import java.util.Date;
/**
* SysIdentityService
* 人员身份信息 service实现
*
* @author zxfei
* @date 2022-08-03
*/
@Service("sysIdentityService")
public class SysIdentityServiceImpl extends AbstractCRUDServiceImpl<SysIdentityDao, SysIdentityEntity, String> implements SysIdentityService {
@Value(value = "${sm4key}")
private String sm4key;
@Override
protected void saveBefore(SysIdentityEntity entity, Context context) throws AppException {
//非系统自增,需这里设置主键
entity.setId(IdUtil.fastSimpleUUID());
super.saveBefore(entity, context);
}
@Override
public SysIdentityEntity saveIdEntity(SysIdentityEntity entity) throws AppException {
if(StringUtils.isEmpty(entity.getIdCard())){
throw new AppException("身份证号不能为空");
}
if(StringUtils.isEmpty(entity.getName())){
throw new AppException("身份证姓名不能为空");
}
if(!IdcardUtil.isValidCard18(entity.getIdCard())){
throw new AppException("身份证号码格式不正确");
}
//获取区域
String region = StringUtils.substring(entity.getIdCard(), 0, 6);
//获取生日
String birthday = StringUtils.substring(entity.getIdCard(), 6, 14);
//获取序列号
String serial = StringUtils.substring(entity.getIdCard(), 14, 18);
SysIdentityEntity sysIdentity = dao.findIdentity(Long.parseLong(region), Long.parseLong(birthday), serial, entity.getName(), "");
if (sysIdentity == null) {
sysIdentity = new SysIdentityEntity();
sysIdentity.setId(IdUtil.fastSimpleUUID());
sysIdentity.setPhone(entity.getPhone());
sysIdentity.setName(entity.getName());
sysIdentity.setRegion(Long.parseLong(region));
sysIdentity.setBirthday(Long.parseLong(birthday));
sysIdentity.setAse(serial);
sysIdentity.setCreateTime(new Date());
sysIdentity.setDeleted(0);
dao.insert(sysIdentity);
}else {
if(StringUtils.isNotEmpty(entity.getPhone())){
SysIdentityEntity update = new SysIdentityEntity();
update.setId(sysIdentity.getId());
update.setPhone(entity.getPhone());
dao.update(update);
sysIdentity.setPhone(entity.getPhone());
}
}
return sysIdentity;
}
@Override
public String findIdEntity(SysIdentityEntity reqVO) throws AppException {
if(StringUtils.isEmpty(reqVO.getIdCard())){
throw new AppException("身份证号不能为空");
}
if(!IdcardUtil.isValidCard18(reqVO.getIdCard())){
throw new AppException("身份证号码格式不正确");
}
//获取区域
String region = StringUtils.substring(reqVO.getIdCard(), 0, 6);
//获取生日
String birthday = StringUtils.substring(reqVO.getIdCard(), 6, 14);
//获取序列号
String serial = StringUtils.substring(reqVO.getIdCard(), 14, 18);
SysIdentityEntity sysIdentity = dao.findIdentity(Long.parseLong(region), Long.parseLong(birthday), serial, reqVO.getName(), "");
if (sysIdentity == null) {
throw new AppException("无身份数据");
}
return sysIdentity.getId();
}
@Override
public SysIdentityEntity findIdEntityDetail(String id, int type) throws AppException {
SysIdentityEntity sysIdentity = dao.findIdentity(null, null, "", "", id);
if (sysIdentity == null) {
throw new AppException("无身份数据");
}
String idCard = sysIdentity.getRegion() + sysIdentity.getBirthday() + sysIdentity.getAse();
SysIdentityEntity resVO = new SysIdentityEntity();
if (type == 0) {
resVO.setIdCard(RioUtil.encryptHex(idCard, sm4key));
resVO.setName(RioUtil.encryptHex(sysIdentity.getName(), sm4key));
resVO.setPhone(RioUtil.encryptHex(sysIdentity.getPhone(), sm4key));
} else {
resVO.setIdCard(idCard);
resVO.setName(sysIdentity.getName());
resVO.setPhone(sysIdentity.getPhone());
}
return resVO;
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.web;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.service.IUser;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.identity.model.PeopleInfoEntity;
import com.mortals.xhx.module.identity.service.PeopleInfoService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 用户信息
*
* @author zxfei
* @date 2022-08-08
*/
@RestController
@RequestMapping("people/info")
public class PeopleInfoController extends BaseCRUDJsonBodyMappingController<PeopleInfoService,PeopleInfoEntity,Long> {
@Autowired
private ParamService paramService;
public PeopleInfoController(){
super.setModuleDesc( "用户信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
@PostMapping({"save"})
@RepeatSubmit
@UnAuth
public String save(@RequestBody PeopleInfoEntity entity) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
int code = 1;
String busiDesc = "保存" + this.getModuleDesc();
try {
this.saveBefore(entity, model, context);
IUser user;
if (entity.newEntity()) {
busiDesc = "新增" + this.getModuleDesc();
entity.setCreateTime(new Date());
entity.setUpdateTime(entity.getCreateTime());
user = this.getCurUser();
if (user != null) {
entity.setCreateUserId(user.getId());
entity.setCreateUser(user.getLoginName());
entity.setCreateUserName(user.getRealName());
entity.setCreateUserDeptId(user.getDeptId());
entity.setCreateUserDeptName(user.getDeptName());
entity.setUpdateUserId(user.getId());
entity.setUpdateUser(user.getLoginName());
entity.setUpdateUserName(user.getRealName());
entity.setUpdateUserDeptId(user.getDeptId());
entity.setUpdateUserDeptName(user.getDeptName());
}
this.service.save(entity, context);
} else {
busiDesc = "修改" + this.getModuleDesc();
entity.setUpdateTime(new Date());
user = this.getCurUser();
if (user != null) {
entity.setUpdateUserId(user.getId());
entity.setUpdateUser(user.getLoginName());
entity.setUpdateUserName(user.getRealName());
entity.setUpdateUserDeptId(user.getDeptId());
entity.setUpdateUserDeptName(user.getDeptName());
}
this.service.update(entity, context);
}
model.put("id", entity.getId());
code = this.saveAfter(entity, model, context);
model.put("entity", entity);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
this.init(model, context);
JSONObject ret = new JSONObject();
ret.put("code", code);
ret.put("msg", model.remove("message_info"));
ret.put("data", model);
return ret.toJSONString();
}
@PostMapping({"findIdEntity"})
@UnAuth
public String findIdEntity(@RequestBody PeopleInfoEntity entity) {
Map<String, Object> model = new HashMap();
JSONObject ret = new JSONObject();
String busiDesc = "获取基础信息";
Context context = this.getContext();
try {
PeopleInfoEntity peopleInfo = service.findPeopleInfo(entity);
model.put("data",peopleInfo);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var8) {
this.doException(this.request, busiDesc, model, var8);
Object msg = model.get("message_info");
return this.createFailJsonResp(msg == null ? "系统异常" : msg.toString());
}
this.init(model, context);
ret.put("data", model.get("data"));
ret.put("code", 1);
ret.put("msg", model.remove("message_info"));
return ret.toJSONString();
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.identity.model.SysFaceEntity;
import com.mortals.xhx.module.identity.model.vo.FaceInfoResVO;
import com.mortals.xhx.module.identity.service.SysFaceService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* 人脸识别信息
*
* @author zxfei
* @date 2022-08-03
*/
@RestController
@RequestMapping("face")
public class SysFaceController extends BaseCRUDJsonBodyMappingController<SysFaceService,SysFaceEntity,String> {
public SysFaceController(){
super.setModuleDesc( "人脸识别信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
@PostMapping({"uploadImage"})
@UnAuth
public String uploadImage(@RequestPart("file") MultipartFile file,
@RequestParam("name") String name,
@RequestParam("idCard") String idCard,
@RequestParam(value = "placeId") String placeId,
@RequestParam(value = "placeName") String placeName) {
Map<String, Object> model = new HashMap();
JSONObject ret = new JSONObject();
String busiDesc = "人脸特征解析";
Context context = this.getContext();
try {
FaceInfoResVO resVO = service.uploadImage(file, name, idCard, placeId, placeName);
model.put("data",resVO);
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var8) {
this.doException(this.request, busiDesc, model, var8);
Object msg = model.get("message_info");
return this.createFailJsonResp(msg == null ? "系统异常" : msg.toString());
}
this.init(model, context);
ret.put("data", model.get("data"));
ret.put("code", 1);
ret.put("msg", model.remove("message_info"));
return ret.toJSONString();
}
@GetMapping({"findFaceList"})
@UnAuth
public String findFaceList(@RequestParam("placeId") String placeId) {
Map<String, Object> model = new HashMap();
JSONObject ret = new JSONObject();
String busiDesc = "下发人脸列表";
Context context = this.getContext();
try {
List<FaceInfoResVO> list = service.findFaceList(placeId);
model.put("data",list);
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var8) {
this.doException(this.request, busiDesc, model, var8);
Object msg = model.get("message_info");
return this.createFailJsonResp(msg == null ? "系统异常" : msg.toString());
}
this.init(model, context);
ret.put("data", model.get("data"));
ret.put("code", 1);
ret.put("msg", model.remove("message_info"));
return ret.toJSONString();
}
@PostMapping({"batchAddFace"})
@UnAuth
public String batchAddFace(@RequestPart("files") List<MultipartFile> files,
@RequestParam("placeId") String placeId,
@RequestParam("placeName") String placeName) {
Map<String, Object> model = new HashMap();
JSONObject ret = new JSONObject();
String busiDesc = "批量上传人脸";
Context context = this.getContext();
try {
service.batchAddFace(files, placeId, placeName);
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var8) {
this.doException(this.request, busiDesc, model, var8);
Object msg = model.get("message_info");
return this.createFailJsonResp(msg == null ? "系统异常" : msg.toString());
}
this.init(model, context);
ret.put("data", null);
ret.put("code", 1);
ret.put("msg", model.remove("message_info"));
return ret.toJSONString();
}
@PostMapping({"search"})
@UnAuth
public String search(@RequestPart("file") MultipartFile file) {
Map<String, Object> model = new HashMap();
JSONObject ret = new JSONObject();
String busiDesc = "人脸识别";
Context context = this.getContext();
try {
List<FaceInfoResVO> list = service.searchUserByFace(file.getBytes());
model.put("data",list);
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var8) {
this.doException(this.request, busiDesc, model, var8);
Object msg = model.get("message_info");
return this.createFailJsonResp(msg == null ? "系统异常" : msg.toString());
}
this.init(model, context);
ret.put("data", model.get("data"));
ret.put("code", 1);
ret.put("msg", model.remove("message_info"));
return ret.toJSONString();
}
}
\ No newline at end of file
package com.mortals.xhx.module.identity.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.model.Context;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.identity.model.SysIdentityEntity;
import com.mortals.xhx.module.identity.service.SysIdentityService;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
/**
*
* 人员身份信息
*
* @author zxfei
* @date 2022-08-03
*/
@RestController
@RequestMapping("identity")
public class SysIdentityController extends BaseCRUDJsonBodyMappingController<SysIdentityService,SysIdentityEntity,String> {
public SysIdentityController(){
super.setModuleDesc( "人员身份信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
@PostMapping({"saveIdEntity"})
@RepeatSubmit
@UnAuth
public String save(@RequestBody SysIdentityEntity entity) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
int code = 1;
String busiDesc = "保存人员身份信息";
try {
entity = this.service.saveIdEntity(entity);
model.put("id", entity.getId());
code = this.saveAfter(entity, model, context);
model.put("entity", entity);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
this.init(model, context);
JSONObject ret = new JSONObject();
ret.put("code", code);
ret.put("msg", model.remove("message_info"));
ret.put("data", model);
return ret.toJSONString();
}
@PostMapping({"findIdEntity"})
@UnAuth
public String findIdEntity(@RequestBody SysIdentityEntity entity) {
Map<String, Object> model = new HashMap();
JSONObject ret = new JSONObject();
String busiDesc = "获取基础信息唯一ID";
Context context = this.getContext();
try {
String id = service.findIdEntity(entity);
model.put("data",id);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var8) {
this.doException(this.request, busiDesc, model, var8);
Object msg = model.get("message_info");
return this.createFailJsonResp(msg == null ? "系统异常" : msg.toString());
}
this.init(model, context);
ret.put("data", model.get("data"));
ret.put("code", 1);
ret.put("msg", model.remove("message_info"));
return ret.toJSONString();
}
@RequestMapping(value = {"findIdEntityDetail"},method = {RequestMethod.POST, RequestMethod.GET})
@UnAuth
public String findIdEntityDetail(@RequestParam("id") String id) {
Map<String, Object> model = new HashMap();
if (StringUtils.isEmpty(id)) {
return this.createFailJsonResp("请选择待查看人员身份信息");
} else {
JSONObject ret = new JSONObject();
String busiDesc = "获取身份证详细信息";
Context context = this.getContext();
try {
SysIdentityEntity entity = this.service.findIdEntityDetail(id, 1);
if (entity == null) {
throw new Exception(busiDesc + ",不存在或已被删除");
}
model.putAll(model);
model.put("entity", entity);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var8) {
this.doException(this.request, busiDesc, model, var8);
Object msg = model.get("message_info");
return this.createFailJsonResp(msg == null ? "系统异常" : msg.toString());
}
this.init(model, context);
ret.put("data", model);
ret.put("code", 1);
ret.put("msg", model.remove("message_info"));
return ret.toJSONString();
}
}
}
\ No newline at end of file
......@@ -1325,9 +1325,9 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
//由于附件连接有效性,强制更新材料属性与附件地址
saveDatumInfo(matterEntity, context, dom, sqclInfoSetting);
if (matterEditionLocal >= matterEditionRemote) {
/* if (matterEditionLocal >= matterEditionRemote) {
return Rest.fail("本地事项版本大于等于远端,不需要更新!");
}
}*/
// log.info("更新详细事项==>{},id===>{},localVersion===>{},newVersion==>{}", matterEntity.getMatterName(),matterEntity.getId(),matterEntity.getMatterEdition(), matterEditionRemote);
//更新部门信息
......
......@@ -46,7 +46,5 @@ application:
auth:
unloginUrl: /refresh,/error,/login/login,/login/index,/login/logout,/securitycode/createCode,/file/common/*,/test*,/padsign/*,/terminal/*,/resource/list,/api/asset/*,/api/*,/flow/*,/uploads/*,/project/file/*,/file/*,/assessment/*
uncheckUrl: /refresh,/error,/login/login,/login/index,/login/logout,/securitycode/createCode,/file/common/*,/test*,/padsign/*,/terminal/*,/resource/list,/api/asset/*,/api/*,/flow/*,/uploads/*,/project/file/*,/file/*,/assessment/*
dm:
enable: true
jsonCheck: @profiles.req.json.check@
trustedReferer : @profiles.trustedReferer@
\ No newline at end of file
......@@ -22,11 +22,5 @@
<property name="showSql" value="false" />
</plugin>
<!--
<plugin interceptor="com.mortals.framework.thirty.dm.DmTransInterceptor">
<property name="showSql" value="false" />
</plugin>
-->
</plugins>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.identity.dao.ibatis.PeopleInfoDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="PeopleInfoEntity" id="PeopleInfoEntity-Map">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="sex" column="sex" />
<result property="nation" column="nation" />
<result property="born" column="born" />
<result property="address" column="address" />
<result property="idCardNo" column="idCardNo" />
<result property="grantDept" column="grantDept" />
<result property="userLifeBegin" column="userLifeBegin" />
<result property="userLifeEnd" column="userLifeEnd" />
<result property="photoFileName" column="photoFileName" />
<result property="phone" column="phone" />
<result property="openid" column="openid" />
<result property="lastTime" column="last_time" />
<result property="upTime" column="up_time" />
<result property="icon" column="icon" />
<result property="nickname" column="nickname" />
<result property="zImg" column="z_img" />
<result property="bImg" column="b_img" />
<result property="siteid" column="siteid" />
<result property="username" column="username" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('name') or colPickMode == 1 and data.containsKey('name')))">
a.name,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sex') or colPickMode == 1 and data.containsKey('sex')))">
a.sex,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('nation') or colPickMode == 1 and data.containsKey('nation')))">
a.nation,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('born') or colPickMode == 1 and data.containsKey('born')))">
a.born,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('address') or colPickMode == 1 and data.containsKey('address')))">
a.address,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('idCardNo') or colPickMode == 1 and data.containsKey('idCardNo')))">
a.idCardNo,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('grantDept') or colPickMode == 1 and data.containsKey('grantDept')))">
a.grantDept,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('userLifeBegin') or colPickMode == 1 and data.containsKey('userLifeBegin')))">
a.userLifeBegin,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('userLifeEnd') or colPickMode == 1 and data.containsKey('userLifeEnd')))">
a.userLifeEnd,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('photoFileName') or colPickMode == 1 and data.containsKey('photoFileName')))">
a.photoFileName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('phone') or colPickMode == 1 and data.containsKey('phone')))">
a.phone,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('openid') or colPickMode == 1 and data.containsKey('openid')))">
a.openid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('lastTime') or colPickMode == 1 and data.containsKey('lastTime')))">
a.last_time,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('upTime') or colPickMode == 1 and data.containsKey('upTime')))">
a.up_time,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('icon') or colPickMode == 1 and data.containsKey('icon')))">
a.icon,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('nickname') or colPickMode == 1 and data.containsKey('nickname')))">
a.nickname,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('zImg') or colPickMode == 1 and data.containsKey('zImg')))">
a.z_img,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('bImg') or colPickMode == 1 and data.containsKey('bImg')))">
a.b_img,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteid') or colPickMode == 1 and data.containsKey('siteid')))">
a.siteid,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('username') or colPickMode == 1 and data.containsKey('username')))">
a.username,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.create_time,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.update_time,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="PeopleInfoEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_sys_people_info
(name,sex,nation,born,address,idCardNo,grantDept,userLifeBegin,userLifeEnd,photoFileName,phone,openid,last_time,up_time,icon,nickname,z_img,b_img,siteid,username,create_time,update_time)
VALUES
(#{name},#{sex},#{nation},#{born},#{address},#{idCardNo},#{grantDept},#{userLifeBegin},#{userLifeEnd},#{photoFileName},#{phone},#{openid},#{lastTime},#{upTime},#{icon},#{nickname},#{zImg},#{bImg},#{siteid},#{username},#{createTime},#{updateTime})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_sys_people_info
(name,sex,nation,born,address,idCardNo,grantDept,userLifeBegin,userLifeEnd,photoFileName,phone,openid,last_time,up_time,icon,nickname,z_img,b_img,siteid,username,create_time,update_time)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.name},#{item.sex},#{item.nation},#{item.born},#{item.address},#{item.idCardNo},#{item.grantDept},#{item.userLifeBegin},#{item.userLifeEnd},#{item.photoFileName},#{item.phone},#{item.openid},#{item.lastTime},#{item.upTime},#{item.icon},#{item.nickname},#{item.zImg},#{item.bImg},#{item.siteid},#{item.username},#{item.createTime},#{item.updateTime})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_sys_people_info as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('name')) or (colPickMode==1 and !data.containsKey('name'))">
a.name=#{data.name},
</if>
<if test="(colPickMode==0 and data.containsKey('sex')) or (colPickMode==1 and !data.containsKey('sex'))">
a.sex=#{data.sex},
</if>
<if test="(colPickMode==0 and data.containsKey('nation')) or (colPickMode==1 and !data.containsKey('nation'))">
a.nation=#{data.nation},
</if>
<if test="(colPickMode==0 and data.containsKey('born')) or (colPickMode==1 and !data.containsKey('born'))">
a.born=#{data.born},
</if>
<if test="(colPickMode==0 and data.containsKey('address')) or (colPickMode==1 and !data.containsKey('address'))">
a.address=#{data.address},
</if>
<if test="(colPickMode==0 and data.containsKey('idCardNo')) or (colPickMode==1 and !data.containsKey('idCardNo'))">
a.idCardNo=#{data.idCardNo},
</if>
<if test="(colPickMode==0 and data.containsKey('grantDept')) or (colPickMode==1 and !data.containsKey('grantDept'))">
a.grantDept=#{data.grantDept},
</if>
<if test="(colPickMode==0 and data.containsKey('userLifeBegin')) or (colPickMode==1 and !data.containsKey('userLifeBegin'))">
a.userLifeBegin=#{data.userLifeBegin},
</if>
<if test="(colPickMode==0 and data.containsKey('userLifeEnd')) or (colPickMode==1 and !data.containsKey('userLifeEnd'))">
a.userLifeEnd=#{data.userLifeEnd},
</if>
<if test="(colPickMode==0 and data.containsKey('photoFileName')) or (colPickMode==1 and !data.containsKey('photoFileName'))">
a.photoFileName=#{data.photoFileName},
</if>
<if test="(colPickMode==0 and data.containsKey('phone')) or (colPickMode==1 and !data.containsKey('phone'))">
a.phone=#{data.phone},
</if>
<if test="(colPickMode==0 and data.containsKey('openid')) or (colPickMode==1 and !data.containsKey('openid'))">
a.openid=#{data.openid},
</if>
<if test="(colPickMode==0 and data.containsKey('lastTime')) or (colPickMode==1 and !data.containsKey('lastTime'))">
a.last_time=#{data.lastTime},
</if>
<if test="(colPickMode==0 and data.containsKey('upTime')) or (colPickMode==1 and !data.containsKey('upTime'))">
a.up_time=#{data.upTime},
</if>
<if test="(colPickMode==0 and data.containsKey('icon')) or (colPickMode==1 and !data.containsKey('icon'))">
a.icon=#{data.icon},
</if>
<if test="(colPickMode==0 and data.containsKey('nickname')) or (colPickMode==1 and !data.containsKey('nickname'))">
a.nickname=#{data.nickname},
</if>
<if test="(colPickMode==0 and data.containsKey('zImg')) or (colPickMode==1 and !data.containsKey('zImg'))">
a.z_img=#{data.zImg},
</if>
<if test="(colPickMode==0 and data.containsKey('bImg')) or (colPickMode==1 and !data.containsKey('bImg'))">
a.b_img=#{data.bImg},
</if>
<if test="(colPickMode==0 and data.containsKey('siteid')) or (colPickMode==1 and !data.containsKey('siteid'))">
a.siteid=#{data.siteid},
</if>
<if test="(colPickMode==0 and data.containsKey('siteidIncrement')) or (colPickMode==1 and !data.containsKey('siteidIncrement'))">
a.siteid=ifnull(a.siteid,0) + #{data.siteidIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('username')) or (colPickMode==1 and !data.containsKey('username'))">
a.username=#{data.username},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.create_time=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.update_time=#{data.updateTime},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="paramDto">
update mortals_sys_people_info as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="name=(case" suffix="ELSE name end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('name')) or (colPickMode==1 and !item.containsKey('name'))">
when a.id=#{item.id} then #{item.name}
</if>
</foreach>
</trim>
<trim prefix="sex=(case" suffix="ELSE sex end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('sex')) or (colPickMode==1 and !item.containsKey('sex'))">
when a.id=#{item.id} then #{item.sex}
</if>
</foreach>
</trim>
<trim prefix="nation=(case" suffix="ELSE nation end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('nation')) or (colPickMode==1 and !item.containsKey('nation'))">
when a.id=#{item.id} then #{item.nation}
</if>
</foreach>
</trim>
<trim prefix="born=(case" suffix="ELSE born end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('born')) or (colPickMode==1 and !item.containsKey('born'))">
when a.id=#{item.id} then #{item.born}
</if>
</foreach>
</trim>
<trim prefix="address=(case" suffix="ELSE address end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('address')) or (colPickMode==1 and !item.containsKey('address'))">
when a.id=#{item.id} then #{item.address}
</if>
</foreach>
</trim>
<trim prefix="idCardNo=(case" suffix="ELSE idCardNo end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('idCardNo')) or (colPickMode==1 and !item.containsKey('idCardNo'))">
when a.id=#{item.id} then #{item.idCardNo}
</if>
</foreach>
</trim>
<trim prefix="grantDept=(case" suffix="ELSE grantDept end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('grantDept')) or (colPickMode==1 and !item.containsKey('grantDept'))">
when a.id=#{item.id} then #{item.grantDept}
</if>
</foreach>
</trim>
<trim prefix="userLifeBegin=(case" suffix="ELSE userLifeBegin end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('userLifeBegin')) or (colPickMode==1 and !item.containsKey('userLifeBegin'))">
when a.id=#{item.id} then #{item.userLifeBegin}
</if>
</foreach>
</trim>
<trim prefix="userLifeEnd=(case" suffix="ELSE userLifeEnd end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('userLifeEnd')) or (colPickMode==1 and !item.containsKey('userLifeEnd'))">
when a.id=#{item.id} then #{item.userLifeEnd}
</if>
</foreach>
</trim>
<trim prefix="photoFileName=(case" suffix="ELSE photoFileName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('photoFileName')) or (colPickMode==1 and !item.containsKey('photoFileName'))">
when a.id=#{item.id} then #{item.photoFileName}
</if>
</foreach>
</trim>
<trim prefix="phone=(case" suffix="ELSE phone end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('phone')) or (colPickMode==1 and !item.containsKey('phone'))">
when a.id=#{item.id} then #{item.phone}
</if>
</foreach>
</trim>
<trim prefix="openid=(case" suffix="ELSE openid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('openid')) or (colPickMode==1 and !item.containsKey('openid'))">
when a.id=#{item.id} then #{item.openid}
</if>
</foreach>
</trim>
<trim prefix="last_time=(case" suffix="ELSE last_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('lastTime')) or (colPickMode==1 and !item.containsKey('lastTime'))">
when a.id=#{item.id} then #{item.lastTime}
</if>
</foreach>
</trim>
<trim prefix="up_time=(case" suffix="ELSE up_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('upTime')) or (colPickMode==1 and !item.containsKey('upTime'))">
when a.id=#{item.id} then #{item.upTime}
</if>
</foreach>
</trim>
<trim prefix="icon=(case" suffix="ELSE icon end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('icon')) or (colPickMode==1 and !item.containsKey('icon'))">
when a.id=#{item.id} then #{item.icon}
</if>
</foreach>
</trim>
<trim prefix="nickname=(case" suffix="ELSE nickname end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('nickname')) or (colPickMode==1 and !item.containsKey('nickname'))">
when a.id=#{item.id} then #{item.nickname}
</if>
</foreach>
</trim>
<trim prefix="z_img=(case" suffix="ELSE z_img end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('zImg')) or (colPickMode==1 and !item.containsKey('zImg'))">
when a.id=#{item.id} then #{item.zImg}
</if>
</foreach>
</trim>
<trim prefix="b_img=(case" suffix="ELSE b_img end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('bImg')) or (colPickMode==1 and !item.containsKey('bImg'))">
when a.id=#{item.id} then #{item.bImg}
</if>
</foreach>
</trim>
<trim prefix="siteid=(case" suffix="ELSE siteid end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('siteid')) or (colPickMode==1 and !item.containsKey('siteid'))">
when a.id=#{item.id} then #{item.siteid}
</when>
<when test="(colPickMode==0 and item.containsKey('siteidIncrement')) or (colPickMode==1 and !item.containsKey('siteidIncrement'))">
when a.id=#{item.id} then ifnull(a.siteid,0) + #{item.siteidIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="username=(case" suffix="ELSE username end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('username')) or (colPickMode==1 and !item.containsKey('username'))">
when a.id=#{item.id} then #{item.username}
</if>
</foreach>
</trim>
<trim prefix="create_time=(case" suffix="ELSE create_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="update_time=(case" suffix="ELSE update_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
when a.id=#{item.id} then #{item.updateTime}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<!-- 根据主健查询 -->
<select id="getByKey" parameterType="paramDto" resultMap="PeopleInfoEntity-Map">
select <include refid="_columns"/>
from mortals_sys_people_info as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_sys_people_info as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_sys_people_info where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_sys_people_info as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="PeopleInfoEntity-Map">
select <include refid="_columns"/>
from mortals_sys_people_info as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_sys_people_info as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_condition_">
<if test="condition != null and !condition.isEmpty()">
<!-- 条件映射-普通条件 -->
<include refid="_condition_param_">
<property name="_conditionParam_" value="condition"/>
<property name="_conditionType_" value="and"/>
</include>
<!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
<if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
and
<foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
<trim prefixOverrides="or" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="andCondition"/>
<property name="_conditionType_" value="or"/>
</include>
</trim>
</foreach>
</if>
<!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
<if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
and
<foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
<trim prefixOverrides="and" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="orCondition"/>
<property name="_conditionType_" value="and"/>
</include>
</trim>
</foreach>
</if>
</if>
</sql>
<!-- 条件映射-代参数 -->
<sql id="_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null">
${_conditionType_} a.id=#{${_conditionParam_}.id}
</if>
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null ">
${_conditionType_} a.id = #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
</if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
</if>
<if test="conditionParamRef.containsKey('name')">
<if test="conditionParamRef.name != null and conditionParamRef.name != ''">
${_conditionType_} a.name like #{${_conditionParam_}.name}
</if>
<if test="conditionParamRef.name == null">
${_conditionType_} a.name is null
</if>
</if>
<if test="conditionParamRef.containsKey('nameList')">
${_conditionType_} a.name in
<foreach collection="conditionParamRef.nameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sex')">
<if test="conditionParamRef.sex != null and conditionParamRef.sex != ''">
${_conditionType_} a.sex like #{${_conditionParam_}.sex}
</if>
<if test="conditionParamRef.sex == null">
${_conditionType_} a.sex is null
</if>
</if>
<if test="conditionParamRef.containsKey('sexList')">
${_conditionType_} a.sex in
<foreach collection="conditionParamRef.sexList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('nation')">
<if test="conditionParamRef.nation != null and conditionParamRef.nation != ''">
${_conditionType_} a.nation like #{${_conditionParam_}.nation}
</if>
<if test="conditionParamRef.nation == null">
${_conditionType_} a.nation is null
</if>
</if>
<if test="conditionParamRef.containsKey('nationList')">
${_conditionType_} a.nation in
<foreach collection="conditionParamRef.nationList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('born')">
<if test="conditionParamRef.born != null and conditionParamRef.born != ''">
${_conditionType_} a.born like #{${_conditionParam_}.born}
</if>
<if test="conditionParamRef.born == null">
${_conditionType_} a.born is null
</if>
</if>
<if test="conditionParamRef.containsKey('bornList')">
${_conditionType_} a.born in
<foreach collection="conditionParamRef.bornList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('address')">
<if test="conditionParamRef.address != null and conditionParamRef.address != ''">
${_conditionType_} a.address like #{${_conditionParam_}.address}
</if>
<if test="conditionParamRef.address == null">
${_conditionType_} a.address is null
</if>
</if>
<if test="conditionParamRef.containsKey('addressList')">
${_conditionType_} a.address in
<foreach collection="conditionParamRef.addressList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idCardNo')">
<if test="conditionParamRef.idCardNo != null and conditionParamRef.idCardNo != ''">
${_conditionType_} a.idCardNo like #{${_conditionParam_}.idCardNo}
</if>
<if test="conditionParamRef.idCardNo == null">
${_conditionType_} a.idCardNo is null
</if>
</if>
<if test="conditionParamRef.containsKey('idCardNoList')">
${_conditionType_} a.idCardNo in
<foreach collection="conditionParamRef.idCardNoList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('grantDept')">
<if test="conditionParamRef.grantDept != null and conditionParamRef.grantDept != ''">
${_conditionType_} a.grantDept like #{${_conditionParam_}.grantDept}
</if>
<if test="conditionParamRef.grantDept == null">
${_conditionType_} a.grantDept is null
</if>
</if>
<if test="conditionParamRef.containsKey('grantDeptList')">
${_conditionType_} a.grantDept in
<foreach collection="conditionParamRef.grantDeptList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('userLifeBegin')">
<if test="conditionParamRef.userLifeBegin != null and conditionParamRef.userLifeBegin != ''">
${_conditionType_} a.userLifeBegin like #{${_conditionParam_}.userLifeBegin}
</if>
<if test="conditionParamRef.userLifeBegin == null">
${_conditionType_} a.userLifeBegin is null
</if>
</if>
<if test="conditionParamRef.containsKey('userLifeBeginList')">
${_conditionType_} a.userLifeBegin in
<foreach collection="conditionParamRef.userLifeBeginList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('userLifeEnd')">
<if test="conditionParamRef.userLifeEnd != null and conditionParamRef.userLifeEnd != ''">
${_conditionType_} a.userLifeEnd like #{${_conditionParam_}.userLifeEnd}
</if>
<if test="conditionParamRef.userLifeEnd == null">
${_conditionType_} a.userLifeEnd is null
</if>
</if>
<if test="conditionParamRef.containsKey('userLifeEndList')">
${_conditionType_} a.userLifeEnd in
<foreach collection="conditionParamRef.userLifeEndList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('photoFileName')">
<if test="conditionParamRef.photoFileName != null and conditionParamRef.photoFileName != ''">
${_conditionType_} a.photoFileName like #{${_conditionParam_}.photoFileName}
</if>
<if test="conditionParamRef.photoFileName == null">
${_conditionType_} a.photoFileName is null
</if>
</if>
<if test="conditionParamRef.containsKey('photoFileNameList')">
${_conditionType_} a.photoFileName in
<foreach collection="conditionParamRef.photoFileNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('phone')">
<if test="conditionParamRef.phone != null and conditionParamRef.phone != ''">
${_conditionType_} a.phone like #{${_conditionParam_}.phone}
</if>
<if test="conditionParamRef.phone == null">
${_conditionType_} a.phone is null
</if>
</if>
<if test="conditionParamRef.containsKey('phoneList')">
${_conditionType_} a.phone in
<foreach collection="conditionParamRef.phoneList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('openid')">
<if test="conditionParamRef.openid != null and conditionParamRef.openid != ''">
${_conditionType_} a.openid like #{${_conditionParam_}.openid}
</if>
<if test="conditionParamRef.openid == null">
${_conditionType_} a.openid is null
</if>
</if>
<if test="conditionParamRef.containsKey('openidList')">
${_conditionType_} a.openid in
<foreach collection="conditionParamRef.openidList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('lastTime')">
<if test="conditionParamRef.lastTime != null ">
${_conditionType_} a.last_time = #{${_conditionParam_}.lastTime}
</if>
<if test="conditionParamRef.lastTime == null">
${_conditionType_} a.last_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('lastTimeStart') and conditionParamRef.lastTimeStart != null and conditionParamRef.lastTimeStart!=''">
${_conditionType_} a.last_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.lastTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('lastTimeEnd') and conditionParamRef.lastTimeEnd != null and conditionParamRef.lastTimeEnd!=''">
${_conditionType_} a.last_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.lastTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('upTime')">
<if test="conditionParamRef.upTime != null ">
${_conditionType_} a.up_time = #{${_conditionParam_}.upTime}
</if>
<if test="conditionParamRef.upTime == null">
${_conditionType_} a.up_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('upTimeStart') and conditionParamRef.upTimeStart != null and conditionParamRef.upTimeStart!=''">
${_conditionType_} a.up_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.upTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('upTimeEnd') and conditionParamRef.upTimeEnd != null and conditionParamRef.upTimeEnd!=''">
${_conditionType_} a.up_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.upTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('icon')">
<if test="conditionParamRef.icon != null and conditionParamRef.icon != ''">
${_conditionType_} a.icon like #{${_conditionParam_}.icon}
</if>
<if test="conditionParamRef.icon == null">
${_conditionType_} a.icon is null
</if>
</if>
<if test="conditionParamRef.containsKey('iconList')">
${_conditionType_} a.icon in
<foreach collection="conditionParamRef.iconList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('nickname')">
<if test="conditionParamRef.nickname != null and conditionParamRef.nickname != ''">
${_conditionType_} a.nickname like #{${_conditionParam_}.nickname}
</if>
<if test="conditionParamRef.nickname == null">
${_conditionType_} a.nickname is null
</if>
</if>
<if test="conditionParamRef.containsKey('nicknameList')">
${_conditionType_} a.nickname in
<foreach collection="conditionParamRef.nicknameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('zImg')">
<if test="conditionParamRef.zImg != null and conditionParamRef.zImg != ''">
${_conditionType_} a.z_img like #{${_conditionParam_}.zImg}
</if>
<if test="conditionParamRef.zImg == null">
${_conditionType_} a.z_img is null
</if>
</if>
<if test="conditionParamRef.containsKey('zImgList')">
${_conditionType_} a.z_img in
<foreach collection="conditionParamRef.zImgList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('bImg')">
<if test="conditionParamRef.bImg != null and conditionParamRef.bImg != ''">
${_conditionType_} a.b_img like #{${_conditionParam_}.bImg}
</if>
<if test="conditionParamRef.bImg == null">
${_conditionType_} a.b_img is null
</if>
</if>
<if test="conditionParamRef.containsKey('bImgList')">
${_conditionType_} a.b_img in
<foreach collection="conditionParamRef.bImgList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('siteid')">
<if test="conditionParamRef.siteid != null ">
${_conditionType_} a.siteid = #{${_conditionParam_}.siteid}
</if>
<if test="conditionParamRef.siteid == null">
${_conditionType_} a.siteid is null
</if>
</if>
<if test="conditionParamRef.containsKey('siteidList')">
${_conditionType_} a.siteid in
<foreach collection="conditionParamRef.siteidList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('siteidStart') and conditionParamRef.siteidStart != null">
${_conditionType_} a.siteid <![CDATA[ >= ]]> #{${_conditionParam_}.siteidStart}
</if>
<if test="conditionParamRef.containsKey('siteidEnd') and conditionParamRef.siteidEnd != null">
${_conditionType_} a.siteid <![CDATA[ <= ]]> #{${_conditionParam_}.siteidEnd}
</if>
<if test="conditionParamRef.containsKey('username')">
<if test="conditionParamRef.username != null and conditionParamRef.username != ''">
${_conditionType_} a.username like #{${_conditionParam_}.username}
</if>
<if test="conditionParamRef.username == null">
${_conditionType_} a.username is null
</if>
</if>
<if test="conditionParamRef.containsKey('usernameList')">
${_conditionType_} a.username in
<foreach collection="conditionParamRef.usernameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.create_time = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.create_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.create_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.create_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.update_time = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.updateTime == null">
${_conditionType_} a.update_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} a.update_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.update_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('name')">
a.name
<if test='orderCol.name != null and "DESC".equalsIgnoreCase(orderCol.name)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sex')">
a.sex
<if test='orderCol.sex != null and "DESC".equalsIgnoreCase(orderCol.sex)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('nation')">
a.nation
<if test='orderCol.nation != null and "DESC".equalsIgnoreCase(orderCol.nation)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('born')">
a.born
<if test='orderCol.born != null and "DESC".equalsIgnoreCase(orderCol.born)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('address')">
a.address
<if test='orderCol.address != null and "DESC".equalsIgnoreCase(orderCol.address)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('idCardNo')">
a.idCardNo
<if test='orderCol.idCardNo != null and "DESC".equalsIgnoreCase(orderCol.idCardNo)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('grantDept')">
a.grantDept
<if test='orderCol.grantDept != null and "DESC".equalsIgnoreCase(orderCol.grantDept)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('userLifeBegin')">
a.userLifeBegin
<if test='orderCol.userLifeBegin != null and "DESC".equalsIgnoreCase(orderCol.userLifeBegin)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('userLifeEnd')">
a.userLifeEnd
<if test='orderCol.userLifeEnd != null and "DESC".equalsIgnoreCase(orderCol.userLifeEnd)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('photoFileName')">
a.photoFileName
<if test='orderCol.photoFileName != null and "DESC".equalsIgnoreCase(orderCol.photoFileName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('phone')">
a.phone
<if test='orderCol.phone != null and "DESC".equalsIgnoreCase(orderCol.phone)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('openid')">
a.openid
<if test='orderCol.openid != null and "DESC".equalsIgnoreCase(orderCol.openid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('lastTime')">
a.last_time
<if test='orderCol.lastTime != null and "DESC".equalsIgnoreCase(orderCol.lastTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('upTime')">
a.up_time
<if test='orderCol.upTime != null and "DESC".equalsIgnoreCase(orderCol.upTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('icon')">
a.icon
<if test='orderCol.icon != null and "DESC".equalsIgnoreCase(orderCol.icon)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('nickname')">
a.nickname
<if test='orderCol.nickname != null and "DESC".equalsIgnoreCase(orderCol.nickname)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('zImg')">
a.z_img
<if test='orderCol.zImg != null and "DESC".equalsIgnoreCase(orderCol.zImg)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('bImg')">
a.b_img
<if test='orderCol.bImg != null and "DESC".equalsIgnoreCase(orderCol.bImg)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('siteid')">
a.siteid
<if test='orderCol.siteid != null and "DESC".equalsIgnoreCase(orderCol.siteid)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('username')">
a.username
<if test='orderCol.username != null and "DESC".equalsIgnoreCase(orderCol.username)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.create_time
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.update_time
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
<sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()">
GROUP BY
<trim suffixOverrides="," suffix="">
<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
${item}
</foreach>
</trim>
</if>
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.identity.dao.ibatis.SysFaceDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="SysFaceEntity" id="SysFaceEntity-Map">
<id property="id" column="id" />
<result property="placeName" column="place_name" />
<result property="placeId" column="place_id" />
<result property="face" column="face" />
<result property="faceFeature" column="face_feature" />
<result property="idCard" column="id_card" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="deleted" column="deleted" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('placeName') or colPickMode == 1 and data.containsKey('placeName')))">
a.place_name,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('placeId') or colPickMode == 1 and data.containsKey('placeId')))">
a.place_id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('face') or colPickMode == 1 and data.containsKey('face')))">
a.face,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('faceFeature') or colPickMode == 1 and data.containsKey('faceFeature')))">
a.face_feature,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('idCard') or colPickMode == 1 and data.containsKey('idCard')))">
a.id_card,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.create_time,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.update_time,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deleted') or colPickMode == 1 and data.containsKey('deleted')))">
a.deleted,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="SysFaceEntity" >
insert into mortals_sys_face
(id,place_name,place_id,face,face_feature,id_card,create_time,update_time,deleted)
VALUES
(#{id},#{placeName},#{placeId},#{face},#{faceFeature},#{idCard},#{createTime},#{updateTime},#{deleted})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_sys_face
(id,place_name,place_id,face,face_feature,id_card,create_time,update_time,deleted)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.id},#{item.placeName},#{item.placeId},#{item.face},#{item.faceFeature},#{item.idCard},#{item.createTime},#{item.updateTime},#{item.deleted})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_sys_face as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('placeName')) or (colPickMode==1 and !data.containsKey('placeName'))">
a.place_name=#{data.placeName},
</if>
<if test="(colPickMode==0 and data.containsKey('placeId')) or (colPickMode==1 and !data.containsKey('placeId'))">
a.place_id=#{data.placeId},
</if>
<if test="(colPickMode==0 and data.containsKey('face')) or (colPickMode==1 and !data.containsKey('face'))">
a.face=#{data.face},
</if>
<if test="(colPickMode==0 and data.containsKey('faceFeature')) or (colPickMode==1 and !data.containsKey('faceFeature'))">
a.face_feature=#{data.faceFeature},
</if>
<if test="(colPickMode==0 and data.containsKey('idCard')) or (colPickMode==1 and !data.containsKey('idCard'))">
a.id_card=#{data.idCard},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.create_time=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.update_time=#{data.updateTime},
</if>
<if test="(colPickMode==0 and data.containsKey('deleted')) or (colPickMode==1 and !data.containsKey('deleted'))">
a.deleted=#{data.deleted},
</if>
<if test="(colPickMode==0 and data.containsKey('deletedIncrement')) or (colPickMode==1 and !data.containsKey('deletedIncrement'))">
a.deleted=ifnull(a.deleted,0) + #{data.deletedIncrement},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="paramDto">
update mortals_sys_face as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="place_name=(case" suffix="ELSE place_name end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('placeName')) or (colPickMode==1 and !item.containsKey('placeName'))">
when a.id=#{item.id} then #{item.placeName}
</if>
</foreach>
</trim>
<trim prefix="place_id=(case" suffix="ELSE place_id end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('placeId')) or (colPickMode==1 and !item.containsKey('placeId'))">
when a.id=#{item.id} then #{item.placeId}
</if>
</foreach>
</trim>
<trim prefix="face=(case" suffix="ELSE face end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('face')) or (colPickMode==1 and !item.containsKey('face'))">
when a.id=#{item.id} then #{item.face}
</if>
</foreach>
</trim>
<trim prefix="face_feature=(case" suffix="ELSE face_feature end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('faceFeature')) or (colPickMode==1 and !item.containsKey('faceFeature'))">
when a.id=#{item.id} then #{item.faceFeature}
</if>
</foreach>
</trim>
<trim prefix="id_card=(case" suffix="ELSE id_card end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('idCard')) or (colPickMode==1 and !item.containsKey('idCard'))">
when a.id=#{item.id} then #{item.idCard}
</if>
</foreach>
</trim>
<trim prefix="create_time=(case" suffix="ELSE create_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="update_time=(case" suffix="ELSE update_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
when a.id=#{item.id} then #{item.updateTime}
</if>
</foreach>
</trim>
<trim prefix="deleted=(case" suffix="ELSE deleted end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('deleted')) or (colPickMode==1 and !item.containsKey('deleted'))">
when a.id=#{item.id} then #{item.deleted}
</when>
<when test="(colPickMode==0 and item.containsKey('deletedIncrement')) or (colPickMode==1 and !item.containsKey('deletedIncrement'))">
when a.id=#{item.id} then ifnull(a.deleted,0) + #{item.deletedIncrement}
</when>
</choose>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<!-- 根据主健查询 -->
<select id="getByKey" parameterType="paramDto" resultMap="SysFaceEntity-Map">
select <include refid="_columns"/>
from mortals_sys_face as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_sys_face as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_sys_face where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_sys_face as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="SysFaceEntity-Map">
select <include refid="_columns"/>
from mortals_sys_face as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_sys_face as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_condition_">
<if test="condition != null and !condition.isEmpty()">
<!-- 条件映射-普通条件 -->
<include refid="_condition_param_">
<property name="_conditionParam_" value="condition"/>
<property name="_conditionType_" value="and"/>
</include>
<!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
<if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
and
<foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
<trim prefixOverrides="or" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="andCondition"/>
<property name="_conditionType_" value="or"/>
</include>
</trim>
</foreach>
</if>
<!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
<if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
and
<foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
<trim prefixOverrides="and" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="orCondition"/>
<property name="_conditionType_" value="and"/>
</include>
</trim>
</foreach>
</if>
</if>
</sql>
<!-- 条件映射-代参数 -->
<sql id="_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null">
${_conditionType_} a.id=#{${_conditionParam_}.id}
</if>
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null and conditionParamRef.id != ''">
${_conditionType_} a.id like #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('placeName')">
<if test="conditionParamRef.placeName != null and conditionParamRef.placeName != ''">
${_conditionType_} a.place_name like #{${_conditionParam_}.placeName}
</if>
<if test="conditionParamRef.placeName == null">
${_conditionType_} a.place_name is null
</if>
</if>
<if test="conditionParamRef.containsKey('placeNameList')">
${_conditionType_} a.place_name in
<foreach collection="conditionParamRef.placeNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('placeId')">
<if test="conditionParamRef.placeId != null and conditionParamRef.placeId != ''">
${_conditionType_} a.place_id like #{${_conditionParam_}.placeId}
</if>
<if test="conditionParamRef.placeId == null">
${_conditionType_} a.place_id is null
</if>
</if>
<if test="conditionParamRef.containsKey('placeIdList')">
${_conditionType_} a.place_id in
<foreach collection="conditionParamRef.placeIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('face')">
<if test="conditionParamRef.face != null and conditionParamRef.face != ''">
${_conditionType_} a.face like #{${_conditionParam_}.face}
</if>
<if test="conditionParamRef.face == null">
${_conditionType_} a.face is null
</if>
</if>
<if test="conditionParamRef.containsKey('faceList')">
${_conditionType_} a.face in
<foreach collection="conditionParamRef.faceList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('faceFeature')">
<if test="conditionParamRef.faceFeature != null and conditionParamRef.faceFeature != ''">
${_conditionType_} a.face_feature like #{${_conditionParam_}.faceFeature}
</if>
<if test="conditionParamRef.faceFeature == null">
${_conditionType_} a.face_feature is null
</if>
</if>
<if test="conditionParamRef.containsKey('faceFeatureList')">
${_conditionType_} a.face_feature in
<foreach collection="conditionParamRef.faceFeatureList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idCard')">
<if test="conditionParamRef.idCard != null and conditionParamRef.idCard != ''">
${_conditionType_} a.id_card like #{${_conditionParam_}.idCard}
</if>
<if test="conditionParamRef.idCard == null">
${_conditionType_} a.id_card is null
</if>
</if>
<if test="conditionParamRef.containsKey('idCardList')">
${_conditionType_} a.id_card in
<foreach collection="conditionParamRef.idCardList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.create_time = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.create_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.create_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.create_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.update_time = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.updateTime == null">
${_conditionType_} a.update_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} a.update_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.update_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('deleted')">
<if test="conditionParamRef.deleted != null ">
${_conditionType_} a.deleted = #{${_conditionParam_}.deleted}
</if>
<if test="conditionParamRef.deleted == null">
${_conditionType_} a.deleted is null
</if>
</if>
<if test="conditionParamRef.containsKey('deletedList')">
${_conditionType_} a.deleted in
<foreach collection="conditionParamRef.deletedList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('deletedStart') and conditionParamRef.deletedStart != null">
${_conditionType_} a.deleted <![CDATA[ >= ]]> #{${_conditionParam_}.deletedStart}
</if>
<if test="conditionParamRef.containsKey('deletedEnd') and conditionParamRef.deletedEnd != null">
${_conditionType_} a.deleted <![CDATA[ <= ]]> #{${_conditionParam_}.deletedEnd}
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('placeName')">
a.place_name
<if test='orderCol.placeName != null and "DESC".equalsIgnoreCase(orderCol.placeName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('placeId')">
a.place_id
<if test='orderCol.placeId != null and "DESC".equalsIgnoreCase(orderCol.placeId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('face')">
a.face
<if test='orderCol.face != null and "DESC".equalsIgnoreCase(orderCol.face)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('faceFeature')">
a.face_feature
<if test='orderCol.faceFeature != null and "DESC".equalsIgnoreCase(orderCol.faceFeature)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('idCard')">
a.id_card
<if test='orderCol.idCard != null and "DESC".equalsIgnoreCase(orderCol.idCard)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.create_time
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.update_time
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('deleted')">
a.deleted
<if test='orderCol.deleted != null and "DESC".equalsIgnoreCase(orderCol.deleted)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
<sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()">
GROUP BY
<trim suffixOverrides="," suffix="">
<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
${item}
</foreach>
</trim>
</if>
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.identity.dao.ibatis.SysIdentityDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="SysIdentityEntity" id="SysIdentityEntity-Map">
<id property="id" column="id" />
<result property="region" column="region" />
<result property="birthday" column="birthday" />
<result property="ase" column="ase" />
<result property="name" column="name" />
<result property="phone" column="phone" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="deleted" column="deleted" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('region') or colPickMode == 1 and data.containsKey('region')))">
a.region,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('birthday') or colPickMode == 1 and data.containsKey('birthday')))">
a.birthday,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ase') or colPickMode == 1 and data.containsKey('ase')))">
AES_DECRYPT(UNHEX(a.ase),'${@com.mortals.xhx.common.key.Constant@MYSQL_KEY}') as ase,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('name') or colPickMode == 1 and data.containsKey('name')))">
a.name,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('phone') or colPickMode == 1 and data.containsKey('phone')))">
a.phone,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.create_time,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.update_time,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deleted') or colPickMode == 1 and data.containsKey('deleted')))">
a.deleted,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="SysIdentityEntity" >
insert into mortals_sys_identity
(id,region,birthday,ase,name,phone,create_time,update_time,deleted)
VALUES
(#{id},#{region},#{birthday},
HEX(AES_ENCRYPT(#{ase},'${@com.mortals.xhx.common.key.Constant@MYSQL_KEY}')),
#{name},#{phone},#{createTime},#{updateTime},#{deleted})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_sys_identity
(id,region,birthday,ase,name,phone,create_time,update_time,deleted)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.id},#{item.region},#{item.birthday},
HEX(AES_ENCRYPT(#{item.ase},'${@com.mortals.xhx.common.key.Constant@MYSQL_KEY}')),
#{item.name},#{item.phone},#{item.createTime},#{item.updateTime},#{item.deleted})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_sys_identity as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('region')) or (colPickMode==1 and !data.containsKey('region'))">
a.region=#{data.region},
</if>
<if test="(colPickMode==0 and data.containsKey('regionIncrement')) or (colPickMode==1 and !data.containsKey('regionIncrement'))">
a.region=ifnull(a.region,0) + #{data.regionIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('birthday')) or (colPickMode==1 and !data.containsKey('birthday'))">
a.birthday=#{data.birthday},
</if>
<if test="(colPickMode==0 and data.containsKey('birthdayIncrement')) or (colPickMode==1 and !data.containsKey('birthdayIncrement'))">
a.birthday=ifnull(a.birthday,0) + #{data.birthdayIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('ase')) or (colPickMode==1 and !data.containsKey('ase'))">
a.ase=HEX(AES_ENCRYPT(#{data.ase},'${@com.mortals.xhx.common.key.Constant@MYSQL_KEY}')),
</if>
<if test="(colPickMode==0 and data.containsKey('name')) or (colPickMode==1 and !data.containsKey('name'))">
a.name=#{data.name},
</if>
<if test="(colPickMode==0 and data.containsKey('phone')) or (colPickMode==1 and !data.containsKey('phone'))">
a.phone=#{data.phone},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.create_time=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.update_time=#{data.updateTime},
</if>
<if test="(colPickMode==0 and data.containsKey('deleted')) or (colPickMode==1 and !data.containsKey('deleted'))">
a.deleted=#{data.deleted},
</if>
<if test="(colPickMode==0 and data.containsKey('deletedIncrement')) or (colPickMode==1 and !data.containsKey('deletedIncrement'))">
a.deleted=ifnull(a.deleted,0) + #{data.deletedIncrement},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="paramDto">
update mortals_sys_identity as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="region=(case" suffix="ELSE region end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('region')) or (colPickMode==1 and !item.containsKey('region'))">
when a.id=#{item.id} then #{item.region}
</when>
<when test="(colPickMode==0 and item.containsKey('regionIncrement')) or (colPickMode==1 and !item.containsKey('regionIncrement'))">
when a.id=#{item.id} then ifnull(a.region,0) + #{item.regionIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="birthday=(case" suffix="ELSE birthday end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('birthday')) or (colPickMode==1 and !item.containsKey('birthday'))">
when a.id=#{item.id} then #{item.birthday}
</when>
<when test="(colPickMode==0 and item.containsKey('birthdayIncrement')) or (colPickMode==1 and !item.containsKey('birthdayIncrement'))">
when a.id=#{item.id} then ifnull(a.birthday,0) + #{item.birthdayIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="ase=(case" suffix="ELSE ase end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('ase')) or (colPickMode==1 and !item.containsKey('ase'))">
when a.id=#{item.id} then HEX(AES_ENCRYPT(#{item.ase},'${@com.mortals.xhx.common.key.Constant@MYSQL_KEY}')),
</if>
</foreach>
</trim>
<trim prefix="name=(case" suffix="ELSE name end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('name')) or (colPickMode==1 and !item.containsKey('name'))">
when a.id=#{item.id} then #{item.name}
</if>
</foreach>
</trim>
<trim prefix="phone=(case" suffix="ELSE phone end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('phone')) or (colPickMode==1 and !item.containsKey('phone'))">
when a.id=#{item.id} then #{item.phone}
</if>
</foreach>
</trim>
<trim prefix="create_time=(case" suffix="ELSE create_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="update_time=(case" suffix="ELSE update_time end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
when a.id=#{item.id} then #{item.updateTime}
</if>
</foreach>
</trim>
<trim prefix="deleted=(case" suffix="ELSE deleted end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('deleted')) or (colPickMode==1 and !item.containsKey('deleted'))">
when a.id=#{item.id} then #{item.deleted}
</when>
<when test="(colPickMode==0 and item.containsKey('deletedIncrement')) or (colPickMode==1 and !item.containsKey('deletedIncrement'))">
when a.id=#{item.id} then ifnull(a.deleted,0) + #{item.deletedIncrement}
</when>
</choose>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<!-- 根据主健查询 -->
<select id="getByKey" parameterType="paramDto" resultMap="SysIdentityEntity-Map">
select <include refid="_columns"/>
from mortals_sys_identity as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_sys_identity as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_sys_identity where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_sys_identity as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="SysIdentityEntity-Map">
select <include refid="_columns"/>
from mortals_sys_identity as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_sys_identity as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_condition_">
<if test="condition != null and !condition.isEmpty()">
<!-- 条件映射-普通条件 -->
<include refid="_condition_param_">
<property name="_conditionParam_" value="condition"/>
<property name="_conditionType_" value="and"/>
</include>
<!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
<if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
and
<foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
<trim prefixOverrides="or" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="andCondition"/>
<property name="_conditionType_" value="or"/>
</include>
</trim>
</foreach>
</if>
<!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
<if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
and
<foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
<trim prefixOverrides="and" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="orCondition"/>
<property name="_conditionType_" value="and"/>
</include>
</trim>
</foreach>
</if>
</if>
</sql>
<!-- 条件映射-代参数 -->
<sql id="_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null">
${_conditionType_} a.id=#{${_conditionParam_}.id}
</if>
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null and conditionParamRef.id != ''">
${_conditionType_} a.id like #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('region')">
<if test="conditionParamRef.region != null ">
${_conditionType_} a.region = #{${_conditionParam_}.region}
</if>
<if test="conditionParamRef.region == null">
${_conditionType_} a.region is null
</if>
</if>
<if test="conditionParamRef.containsKey('regionList')">
${_conditionType_} a.region in
<foreach collection="conditionParamRef.regionList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('regionStart') and conditionParamRef.regionStart != null">
${_conditionType_} a.region <![CDATA[ >= ]]> #{${_conditionParam_}.regionStart}
</if>
<if test="conditionParamRef.containsKey('regionEnd') and conditionParamRef.regionEnd != null">
${_conditionType_} a.region <![CDATA[ <= ]]> #{${_conditionParam_}.regionEnd}
</if>
<if test="conditionParamRef.containsKey('birthday')">
<if test="conditionParamRef.birthday != null ">
${_conditionType_} a.birthday = #{${_conditionParam_}.birthday}
</if>
<if test="conditionParamRef.birthday == null">
${_conditionType_} a.birthday is null
</if>
</if>
<if test="conditionParamRef.containsKey('birthdayList')">
${_conditionType_} a.birthday in
<foreach collection="conditionParamRef.birthdayList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('birthdayStart') and conditionParamRef.birthdayStart != null">
${_conditionType_} a.birthday <![CDATA[ >= ]]> #{${_conditionParam_}.birthdayStart}
</if>
<if test="conditionParamRef.containsKey('birthdayEnd') and conditionParamRef.birthdayEnd != null">
${_conditionType_} a.birthday <![CDATA[ <= ]]> #{${_conditionParam_}.birthdayEnd}
</if>
<if test="conditionParamRef.containsKey('ase')">
<if test="conditionParamRef.ase != null and conditionParamRef.ase != ''">
${_conditionType_} a.ase like #{${_conditionParam_}.ase}
</if>
<if test="conditionParamRef.ase == null">
${_conditionType_} a.ase is null
</if>
</if>
<if test="conditionParamRef.containsKey('aseList')">
${_conditionType_} a.ase in
<foreach collection="conditionParamRef.aseList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('name')">
<if test="conditionParamRef.name != null and conditionParamRef.name != ''">
${_conditionType_} a.name like #{${_conditionParam_}.name}
</if>
<if test="conditionParamRef.name == null">
${_conditionType_} a.name is null
</if>
</if>
<if test="conditionParamRef.containsKey('nameList')">
${_conditionType_} a.name in
<foreach collection="conditionParamRef.nameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('phone')">
<if test="conditionParamRef.phone != null and conditionParamRef.phone != ''">
${_conditionType_} a.phone like #{${_conditionParam_}.phone}
</if>
<if test="conditionParamRef.phone == null">
${_conditionType_} a.phone is null
</if>
</if>
<if test="conditionParamRef.containsKey('phoneList')">
${_conditionType_} a.phone in
<foreach collection="conditionParamRef.phoneList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.create_time = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.create_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.create_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.create_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.update_time = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.updateTime == null">
${_conditionType_} a.update_time is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} a.update_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.update_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('deleted')">
<if test="conditionParamRef.deleted != null ">
${_conditionType_} a.deleted = #{${_conditionParam_}.deleted}
</if>
<if test="conditionParamRef.deleted == null">
${_conditionType_} a.deleted is null
</if>
</if>
<if test="conditionParamRef.containsKey('deletedList')">
${_conditionType_} a.deleted in
<foreach collection="conditionParamRef.deletedList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('deletedStart') and conditionParamRef.deletedStart != null">
${_conditionType_} a.deleted <![CDATA[ >= ]]> #{${_conditionParam_}.deletedStart}
</if>
<if test="conditionParamRef.containsKey('deletedEnd') and conditionParamRef.deletedEnd != null">
${_conditionType_} a.deleted <![CDATA[ <= ]]> #{${_conditionParam_}.deletedEnd}
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('region')">
a.region
<if test='orderCol.region != null and "DESC".equalsIgnoreCase(orderCol.region)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('birthday')">
a.birthday
<if test='orderCol.birthday != null and "DESC".equalsIgnoreCase(orderCol.birthday)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('ase')">
a.ase
<if test='orderCol.ase != null and "DESC".equalsIgnoreCase(orderCol.ase)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('name')">
a.name
<if test='orderCol.name != null and "DESC".equalsIgnoreCase(orderCol.name)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('phone')">
a.phone
<if test='orderCol.phone != null and "DESC".equalsIgnoreCase(orderCol.phone)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.create_time
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.update_time
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('deleted')">
a.deleted
<if test='orderCol.deleted != null and "DESC".equalsIgnoreCase(orderCol.deleted)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
<sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()">
GROUP BY
<trim suffixOverrides="," suffix="">
<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
${item}
</foreach>
</trim>
</if>
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.identity.dao.ibatis.SysIdentityDaoImpl">
<select id="findIdentity" resultMap="SysIdentityEntity-Map">
SELECT
id,region,birthday,
AES_DECRYPT(UNHEX(ase),'${@com.mortals.xhx.common.key.Constant@MYSQL_KEY}') as ase,
name,phone,create_time,update_time
FROM mortals_sys_identity
<where>
deleted = 0
<if test="region != null">
and region = #{region}
</if>
<if test="birthday != null">
and birthday = #{birthday}
</if>
<if test="ase != null and ase != ''">
and ase = HEX(AES_ENCRYPT(#{ase},'${@com.mortals.xhx.common.key.Constant@MYSQL_KEY}'))
</if>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="id != null and id != ''">
and id = #{id}
</if>
</where>
</select>
</mapper>
\ No newline at end of file
......@@ -146,7 +146,7 @@ POST {{baseUrl}}/site/syncGovMatterBySiteId
Content-Type: application/json
{
"id":72
"id":8
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment