UserServiceImp.java 3.42 KB
package com.example.dahua.service;

import com.example.dahua.async.SendUserInfoTask;
import com.example.dahua.bean.AttendanceBean;
import com.example.dahua.bean.TeacherBean;
import com.example.dahua.bean.UserInfoBean;
import com.example.dahua.dao.UserDao;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import java.util.List;

@Repository
@Service
public class UserServiceImp implements UserService {

    @Autowired
    UserDao userDao;

    @Autowired
    SendUserInfoTask myTask;

    @Override
    public List<AttendanceBean> getAttendanceBeans(String schoolId, String clint_type, String devid) {

        if (!StringUtils.isEmpty(devid)) return userDao.getAttendanceBeanWithId(schoolId, clint_type, devid);

        return userDao.getAttendanceBeans(schoolId, clint_type);
    }

    @Override
    public UserInfoBean getUserInfo(String schoolId, String studentCode) {
        return userDao.getUserInfo(schoolId, studentCode);
    }

    /**
     * 单个用户信息下发
     *
     * @param file
     * @param schoolId
     * @param studentCode
     * @param clint_type
     * @return
     */
    @Override
    public boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid) {
        List<AttendanceBean> attendanceBeans = getAttendanceBeans(schoolId, clint_type, devid);//获取学校下的大华设备
        System.out.println("设备数量:" + attendanceBeans.size());
        UserInfoBean userInfoBean = null;
        try {
            if (userType == 2) {
                //根据文件命名来判断学籍号
                String studentCodes = file.split("\\.")[0];
                String[] studentInfo = studentCodes.split("_");

                if (studentInfo.length > 1) {//附属卡

                    String studentCodeF = studentInfo[0];
                    String CardType = studentInfo[1];
                    userInfoBean = getUserInfo(schoolId, studentCodeF);
                    String cardNum = userDao.getCardNum(userInfoBean.getStudent_id(), CardType);
                    userInfoBean.setStudent_num(cardNum);

                } else {

                    userInfoBean = getUserInfo(schoolId, studentCode);//获取用户信息

                }
            } else if (userType == 1) {
                TeacherBean teacher = userDao.getTeacher(schoolId, studentCode);
                if (null != teacher) {
                    userInfoBean = new UserInfoBean();
                    userInfoBean.setStudent_num(teacher.getTeacher_num());
                    userInfoBean.setName(teacher.getName());
                    userInfoBean.setUser_id(teacher.getUser_id());
                    userInfoBean.setStudentcode(teacher.getNum());
                    userInfoBean.setStudent_id(teacher.getTeacher_id());
                }
            }

            myTask.doTaskOne(file, attendanceBeans, userInfoBean, schoolId, -1, userType);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }

    /**
     * 照片下放
     *
     * @param schoolId
     * @param clint_type
     * @param type       0:主卡 1:副卡
     */
    @Override
    public void sendUserInfos(String schoolId, String clint_type, int type) {
        myTask.doTaskSendUserInfos(schoolId, clint_type, type, -1);
    }

}