diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/controller/UserFaceController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/controller/UserFaceController.java new file mode 100644 index 0000000..09b26fe --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/controller/UserFaceController.java @@ -0,0 +1,115 @@ +package com.bonus.canteen.user.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import com.bonus.common.log.enums.OperaType; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.bonus.common.log.annotation.SysLog; +import com.bonus.canteen.user.domain.UserFace; +import com.bonus.canteen.user.service.IUserFaceService; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.page.TableDataInfo; + +/** + * 人员生物识别特征Controller + * + * @author xsheng + * @date 2025-04-03 + */ +@Api(tags = "人员生物识别特征接口") +@RestController +@RequestMapping("/sys_user_face") +public class UserFaceController extends BaseController { + @Autowired + private IUserFaceService UserFaceService; + + /** + * 查询人员生物识别特征列表 + */ + @ApiOperation(value = "查询人员生物识别特征列表") + //@RequiresPermissions("system:face:list") + @GetMapping("/list") + public TableDataInfo list(UserFace UserFace) { + startPage(); + List list = UserFaceService.selectUserFaceList(UserFace); + return getDataTable(list); + } + + /** + * 导出人员生物识别特征列表 + */ + @ApiOperation(value = "导出人员生物识别特征列表") + //@PreventRepeatSubmit + //@RequiresPermissions("system:face:export") + @SysLog(title = "人员生物识别特征", businessType = OperaType.EXPORT, logType = 1,module = "仓储管理->导出人员生物识别特征") + @PostMapping("/export") + public void export(HttpServletResponse response, UserFace UserFace) { + List list = UserFaceService.selectUserFaceList(UserFace); + ExcelUtil util = new ExcelUtil(UserFace.class); + util.exportExcel(response, list, "人员生物识别特征数据"); + } + + /** + * 获取人员生物识别特征详细信息 + */ + @ApiOperation(value = "获取人员生物识别特征详细信息") + //@RequiresPermissions("system:face:query") + @GetMapping(value = "/{faceId}") + public AjaxResult getInfo(@PathVariable("faceId") Long faceId) { + return success(UserFaceService.selectUserFaceByFaceId(faceId)); + } + + /** + * 新增人员生物识别特征 + */ + @ApiOperation(value = "新增人员生物识别特征") + //@PreventRepeatSubmit + //@RequiresPermissions("system:face:add") + @SysLog(title = "人员生物识别特征", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增人员生物识别特征") + @PostMapping + public AjaxResult add(@RequestBody UserFace UserFace) { + try { + return toAjax(UserFaceService.insertUserFace(UserFace)); + } catch (Exception e) { + return error("系统错误, " + e.getMessage()); + } + } + + /** + * 修改人员生物识别特征 + */ + @ApiOperation(value = "修改人员生物识别特征") + //@PreventRepeatSubmit + //@RequiresPermissions("system:face:edit") + @SysLog(title = "人员生物识别特征", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改人员生物识别特征") + @PostMapping("/edit") + public AjaxResult edit(@RequestBody UserFace UserFace) { + try { + return toAjax(UserFaceService.updateUserFace(UserFace)); + } catch (Exception e) { + return error("系统错误, " + e.getMessage()); + } + } + + /** + * 删除人员生物识别特征 + */ + @ApiOperation(value = "删除人员生物识别特征") + //@PreventRepeatSubmit + //@RequiresPermissions("system:face:remove") + @SysLog(title = "人员生物识别特征", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除人员生物识别特征") + @PostMapping("/del/{faceIds}") + public AjaxResult remove(@PathVariable Long[] faceIds) { + return toAjax(UserFaceService.deleteUserFaceByFaceIds(faceIds)); + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/domain/UserFace.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/domain/UserFace.java new file mode 100644 index 0000000..6b87413 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/domain/UserFace.java @@ -0,0 +1,77 @@ +package com.bonus.canteen.user.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.bonus.common.core.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; +import com.bonus.common.core.web.domain.BaseEntity; + +/** + * 人员生物识别特征对象 sys_user_face + * + * @author xsheng + * @date 2025-04-03 + */ + + +@Data +@ToString +public class UserFace extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 主键自增 */ + private Long faceId; + + /** 人员id */ + @Excel(name = "人员id") + @ApiModelProperty(value = "人员id") + private Long userId; + + /** 照片地址 */ + @Excel(name = "照片地址") + @ApiModelProperty(value = "照片地址") + private String photoUrl; + + /** 特征码 */ + @Excel(name = "特征码") + @ApiModelProperty(value = "特征码") + private String features; + + /** 类型 1-照片 2-指纹 3-掌纹 4-掌静脉 5-指静脉 6-虹膜 */ + @Excel(name = "类型 1-照片 2-指纹 3-掌纹 4-掌静脉 5-指静脉 6-虹膜") + @ApiModelProperty(value = "类型 1-照片 2-指纹 3-掌纹 4-掌静脉 5-指静脉 6-虹膜") + private Long photoType; + + /** 人脸算法版本 */ + @Excel(name = "人脸算法版本") + @ApiModelProperty(value = "人脸算法版本") + private Long faceVer; + + /** 特征码生成状态 1-未生成 2-生成成功 3-生成失败 */ + @Excel(name = "特征码生成状态 1-未生成 2-生成成功 3-生成失败") + @ApiModelProperty(value = "特征码生成状态 1-未生成 2-生成成功 3-生成失败") + private Long featuresBuildStatus; + + /** 特征码生成时间 */ + @ApiModelProperty(value = "特征码生成时间") + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "特征码生成时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date featuresBuildTime; + + /** 状态 1-正常 2-冻结 3-销户 4-挂失 */ + @Excel(name = "状态 1-正常 2-冻结 3-销户 4-挂失") + @ApiModelProperty(value = "状态 1-正常 2-冻结 3-销户 4-挂失") + private Long faceState; + + /** 特征码生成失败原因 */ + @Excel(name = "特征码生成失败原因") + @ApiModelProperty(value = "特征码生成失败原因") + private String errorMsg; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/mapper/UserFaceMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/mapper/UserFaceMapper.java new file mode 100644 index 0000000..ab03c36 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/mapper/UserFaceMapper.java @@ -0,0 +1,60 @@ +package com.bonus.canteen.user.mapper; + +import java.util.List; +import com.bonus.canteen.user.domain.UserFace; + +/** + * 人员生物识别特征Mapper接口 + * + * @author xsheng + * @date 2025-04-03 + */ +public interface UserFaceMapper { + /** + * 查询人员生物识别特征 + * + * @param faceId 人员生物识别特征主键 + * @return 人员生物识别特征 + */ + public UserFace selectUserFaceByFaceId(Long faceId); + + /** + * 查询人员生物识别特征列表 + * + * @param UserFace 人员生物识别特征 + * @return 人员生物识别特征集合 + */ + public List selectUserFaceList(UserFace UserFace); + + /** + * 新增人员生物识别特征 + * + * @param UserFace 人员生物识别特征 + * @return 结果 + */ + public int insertUserFace(UserFace UserFace); + + /** + * 修改人员生物识别特征 + * + * @param UserFace 人员生物识别特征 + * @return 结果 + */ + public int updateUserFace(UserFace UserFace); + + /** + * 删除人员生物识别特征 + * + * @param faceId 人员生物识别特征主键 + * @return 结果 + */ + public int deleteUserFaceByFaceId(Long faceId); + + /** + * 批量删除人员生物识别特征 + * + * @param faceIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteUserFaceByFaceIds(Long[] faceIds); +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/service/IUserFaceService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/service/IUserFaceService.java new file mode 100644 index 0000000..9baa433 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/service/IUserFaceService.java @@ -0,0 +1,60 @@ +package com.bonus.canteen.user.service; + +import java.util.List; +import com.bonus.canteen.user.domain.UserFace; + +/** + * 人员生物识别特征Service接口 + * + * @author xsheng + * @date 2025-04-03 + */ +public interface IUserFaceService { + /** + * 查询人员生物识别特征 + * + * @param faceId 人员生物识别特征主键 + * @return 人员生物识别特征 + */ + public UserFace selectUserFaceByFaceId(Long faceId); + + /** + * 查询人员生物识别特征列表 + * + * @param UserFace 人员生物识别特征 + * @return 人员生物识别特征集合 + */ + public List selectUserFaceList(UserFace UserFace); + + /** + * 新增人员生物识别特征 + * + * @param UserFace 人员生物识别特征 + * @return 结果 + */ + public int insertUserFace(UserFace UserFace); + + /** + * 修改人员生物识别特征 + * + * @param UserFace 人员生物识别特征 + * @return 结果 + */ + public int updateUserFace(UserFace UserFace); + + /** + * 批量删除人员生物识别特征 + * + * @param faceIds 需要删除的人员生物识别特征主键集合 + * @return 结果 + */ + public int deleteUserFaceByFaceIds(Long[] faceIds); + + /** + * 删除人员生物识别特征信息 + * + * @param faceId 人员生物识别特征主键 + * @return 结果 + */ + public int deleteUserFaceByFaceId(Long faceId); +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/service/impl/UserFaceServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/service/impl/UserFaceServiceImpl.java new file mode 100644 index 0000000..51f0777 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/user/service/impl/UserFaceServiceImpl.java @@ -0,0 +1,98 @@ +package com.bonus.canteen.user.service.impl; + +import java.util.List; +import com.bonus.common.core.exception.ServiceException; +import com.bonus.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bonus.canteen.user.mapper.UserFaceMapper; +import com.bonus.canteen.user.domain.UserFace; +import com.bonus.canteen.user.service.IUserFaceService; + +/** + * 人员生物识别特征Service业务层处理 + * + * @author xsheng + * @date 2025-04-03 + */ +@Service +public class UserFaceServiceImpl implements IUserFaceService { + @Autowired + private UserFaceMapper UserFaceMapper; + + /** + * 查询人员生物识别特征 + * + * @param faceId 人员生物识别特征主键 + * @return 人员生物识别特征 + */ + @Override + public UserFace selectUserFaceByFaceId(Long faceId) { + return UserFaceMapper.selectUserFaceByFaceId(faceId); + } + + /** + * 查询人员生物识别特征列表 + * + * @param UserFace 人员生物识别特征 + * @return 人员生物识别特征 + */ + @Override + public List selectUserFaceList(UserFace UserFace) { + return UserFaceMapper.selectUserFaceList(UserFace); + } + + /** + * 新增人员生物识别特征 + * + * @param UserFace 人员生物识别特征 + * @return 结果 + */ + @Override + public int insertUserFace(UserFace UserFace) { + UserFace.setCreateTime(DateUtils.getNowDate()); + try { + return UserFaceMapper.insertUserFace(UserFace); + } catch (Exception e) { + throw new ServiceException("错误信息描述"); + } + } + + /** + * 修改人员生物识别特征 + * + * @param UserFace 人员生物识别特征 + * @return 结果 + */ + @Override + public int updateUserFace(UserFace UserFace) { + UserFace.setUpdateTime(DateUtils.getNowDate()); + try { + return UserFaceMapper.updateUserFace(UserFace); + } catch (Exception e) { + throw new ServiceException("错误信息描述"); + } + } + + /** + * 批量删除人员生物识别特征 + * + * @param faceIds 需要删除的人员生物识别特征主键 + * @return 结果 + */ + @Override + public int deleteUserFaceByFaceIds(Long[] faceIds) { + return UserFaceMapper.deleteUserFaceByFaceIds(faceIds); + } + + /** + * 删除人员生物识别特征信息 + * + * @param faceId 人员生物识别特征主键 + * @return 结果 + */ + @Override + public int deleteUserFaceByFaceId(Long faceId) { + return UserFaceMapper.deleteUserFaceByFaceId(faceId); + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/user/UserFaceMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/user/UserFaceMapper.xml new file mode 100644 index 0000000..5961ae1 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/user/UserFaceMapper.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + select face_id, user_id, photo_url, features, photo_type, face_ver, features_build_status, features_build_time, face_state, error_msg, del_flag, create_by, create_time, update_by, update_time, remark from sys_user_face + + + + + + + + insert into sys_user_face + + user_id, + photo_url, + features, + photo_type, + face_ver, + features_build_status, + features_build_time, + face_state, + error_msg, + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{userId}, + #{photoUrl}, + #{features}, + #{photoType}, + #{faceVer}, + #{featuresBuildStatus}, + #{featuresBuildTime}, + #{faceState}, + #{errorMsg}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update sys_user_face + + user_id = #{userId}, + photo_url = #{photoUrl}, + features = #{features}, + photo_type = #{photoType}, + face_ver = #{faceVer}, + features_build_status = #{featuresBuildStatus}, + features_build_time = #{featuresBuildTime}, + face_state = #{faceState}, + error_msg = #{errorMsg}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where face_id = #{faceId} + + + + delete from sys_user_face where face_id = #{faceId} + + + + delete from sys_user_face where face_id in + + #{faceId} + + + \ No newline at end of file