1. 程式人生 > 其它 >工作總結-指紋

工作總結-指紋

技術標籤:儲存

1個使用者有多個指紋,
而1個指紋只能有1個使用者。

因此把使用者id放到指紋表,不單獨成中間表。
不過事實上是把finger表叫成user_finger。
在這裡插入圖片描述

create table `t_user_finger` (
	`id` bigint (11),
	`user_id` bigint (11),
	`finger_name` varchar (90),
	`finger_desc` varchar (765),
	`status` varchar (90),
	`reg_time` datetime ,
	`device_sn` varchar (192),
	`finger_detail` text ,
	`create_by` varchar (96),
	`create_at` timestamp 
); 
insert into `t_user_finger` (`id`, `user_id`, `finger_name`, `finger_desc`, `status`, `reg_time`, `device_sn`, `finger_detail`, `create_by`, `create_at`) values('1','4','','','ON','2021-01-12 13:30:54','','TRlTUjIyAAAEWloFBQUHCc7QAAAoW3YAAAAAhOkpo1rPARgOgwBxAA9VzAEAAScPAwCUWpcOYAD0AJoOBlvQARYI5gDXASxVlAFjAI0PkAAUW9sFjwA8ASUOWVpvAXYOsQCJAJJVaQFVAHsPHABGWpwKkwDDAEIP3VrqARwOmgDDAXxT7gG1ABgOZQAaW2AJsQAoAZMI3Fp0AZoP3ADsAStV0wFhABYPIwBjWpcOoQBDARgOkVpMAZoOlQCAABhUYwFMAdYEewDZWpcP3wDBAFAPeVr9AWIPkwBHAINVVwG0AG0OwQHAWpcIyAApAYANvFo7AGIOWQCyAPpV0gE8AUcHRQA4W9oN2QBJAZYBY1pLAQkN','admin','2021-01-12 13:30:54');
insert into `t_user_finger` (`id`, `user_id`, `finger_name`, `finger_desc`, `status`, `reg_time`, `device_sn`, `finger_detail`, `create_by`, `create_at`) values('9','4',NULL,NULL,'ON','2021-01-12 13:31:05','','','admin','2021-01-12 13:31:05');

finger_detail欄位,
https://www.cnblogs.com/wqbin/p/11927456.html
(text欄位描述)

指紋實際資料為一個字串,由指紋採集裝置(對應1個客戶端)-網路-傳入後端。

後端對指紋的操作有:
1.使用者註冊指紋 增
2.使用者對比指紋
3.使用者修改指紋 改
4.使用者指紋列表 查
5.使用者刪除指紋 刪

具體

1.使用者指紋註冊

 @Override
    public String registerFinger(RegFinger regFinger) throws McServiceException {
        UserFinger finger =
Convert.convert(UserFinger.class,regFinger); //把客戶端採集的指紋欄位裡面的fingerDesc轉化為pojo(UserFinger)的欄位,然後接下來為其補充資訊 finger.setRegTime(new Date()); finger.setStatus(NormalStatus.ON.name());//狀態設定為開啟 finger.setCreateAt(new Date());//當前時間 finger.setCreateBy(SysUtil.userName());
//當前登入使用者使用者名稱 finger.setUserId(SysUtil.getUser().getId());//當前登入使用者使用者Id int rct = UserFingerMapper.insertUseGeneratedKeys(finger); log.info("使用者[{}]註冊指紋成功,指紋名稱:{}",regFinger.getUserId(),regFinger.getFingerName());//記錄日誌 return finger.getId() + ""; }

2.使用者對比指紋
3.使用者修改指紋

傳入要修改的fingerid以及dto ModifyFinger
@Override
    public boolean modifyFinger(String fingerId, ModifyFinger mdFinger) throws ServiceException {
    //用fingerid在資料庫中查出對應的指紋pojo
        UserFinger oldFinger = UserFingerMapper.selectByPrimaryKey(Long.parseLong(fingerId));
        //如果查不到,拋異常

        if(oldFinger == null){
            throw new ServiceException(ServiceException.ErrorCode.BAD_REQUEST, ResultCode.REQUEST_RESOURCE_NOT_FOUND.getMessage());
        }
        /**
	 * 複製Bean物件屬性<br>
	 * 限制類用於限制拷貝的屬性,例如一個類我只想複製其父類的一些屬性,就可以將editable設定為父類
	 *
	 * @param source      源Bean物件
	 * @param target      目標Bean物件
	 * @param copyOptions 拷貝選項,見 {@link CopyOptions}
	 */ 
//類似於轉化器,拷貝屬性的	 BeanUtil.copyProperties(mdFinger,oldFinger,CopyOptions.create().setIgnoreNullValue(true));
		//根據新傳入的和老的進行合併,形成一個新的pojo,然後進行選擇更新。
        UserFingerMapper.updateByPrimaryKeySelective(oldFinger);
        log.info("使用者[{}]修改指紋成功,指紋名稱:{}",oldFinger.getUserId(),mdFinger.getFingerName());
        return true;
    }

4.使用者指紋列表 查

5.使用者刪除指紋 刪

   @Override
    public void deleteFinger(String fingerIds) {
        List<Long> idList = Arrays.stream(fingerIds.split(",")).map(p -> Long.valueOf(p)).collect(Collectors.toList());
        if (CollUtil.isEmpty(idList)) {
            throw new ServiceException("請輸入正確的列表引數");
        }
        Example example =new Example(McUserFinger.class);
        example.createCriteria().andIn("userId", idList);

        int cnt = mcUserFingerMapper.deleteByExample(example);

        example = new Example(McUser.class);
        example.createCriteria().andIn("id", idList);
        List<McUser> userName = mcUserMapper.selectByExample(example);
        StringBuffer names = new StringBuffer();
        int count = 0;
        for (McUser n : userName) {
            names.append(n.getUserName());
            count += 1;
            if (count != userName.size()) {
                names.append("、");
            }
        }
        McCenterUtil.setLogParam(0, names.toString());
        log.info("刪除使用者指紋成功,共刪除記錄:{}", cnt);
    }