package com.template.services.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.template.mapper.SmartUserMapper;
import com.template.model.dto.WarningUserDto;
import com.template.model.enumModel.eIdentityStatu;
import com.template.model.pojo.SmartUser;
import com.template.model.pojo.SmartWarning;
import com.template.model.result.PageUtils;
import com.template.model.vo.*;
import com.template.services.SmartUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author ceshi
* @since 2023-12-04
*/
@Service
public class SmartUserServiceImpl extends ServiceImpl implements SmartUserService {
@Autowired
private SmartUserMapper smartUserMapper;
@Override
public int insertSmartUser(SmartUser sa) {
int result = smartUserMapper.insert(sa);
return sa.getId();
}
@Override
public int updateSmartUser(SmartUser sa) {
int result = smartUserMapper.updateById(sa);
return result;
}
@Override
public PageUtils queryPageSmartUsers(int currentPage, int pageCount, List departmentIds) {
Page page = new Page<>(currentPage, pageCount);
// QueryWrapper queryWrapper = new QueryWrapper<>();
// queryWrapper.eq(departmentId > 0, "department_id", departmentId);
IPage result = smartUserMapper.selectPage(page, null);
return new PageUtils<>(result);
}
@Override
public PageUtils querySmartUserPages(int currentPage, int pageCount, List departmentIds, String name) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage result = smartUserMapper.querySmartUserPages(page, departmentIds, name);
return new PageUtils(result);
}
@Override
public PageUtils querySmartSecordPage(int currentPage, int pageCount, String name, Integer userId) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage result = smartUserMapper.querySmartSecordPage(page, name, userId);
return new PageUtils(result);
}
@Override
public List querySmartUsers(List departmentIds, String name) {
List result = smartUserMapper.querySmartUsers(departmentIds, name);
return result;
}
@Override
public List getSmartUserByIds(List ids) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("id", ids);
queryWrapper.eq("is_cancel", 0);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public List getSmartUserIds(List ids) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("id", ids);
queryWrapper.eq("is_cancel", 0);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public int getSmartUserCountByIds(List ids) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("id", ids);
queryWrapper.eq("is_cancel", 0);
int result = smartUserMapper.selectCount(queryWrapper);
return result;
}
@Override
public boolean updateUserBatchById(List users) {
boolean result = this.updateBatchById(users);
return result;
}
@Override
public Integer querySmartUserByCardNo(String cardNo) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("card_no", cardNo);
queryWrapper.eq("is_cancel", 0);
int existCount = smartUserMapper.selectCount(queryWrapper);
return existCount;
}
@Override
public List queryStudentBySchoolClass(Integer schoolClass) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("school_class", schoolClass);
queryWrapper.eq("identity_id", eIdentityStatu.Student.getValue());
queryWrapper.eq("is_cancel", 0);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public int deleteSmartUserById(int id) {
int result = smartUserMapper.deleteById(id);
return result;
}
@Override
public int deleteSmartUserByIds(List ids) {
int result = smartUserMapper.deleteBatchIds(ids);
return result;
}
@Override
public SmartUser getSmartById(Integer id) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("is_cancel", 0);
queryWrapper.eq("id", id);
SmartUser result = smartUserMapper.selectOne(queryWrapper);
return result;
}
@Override
public List getSmartUserByxwuids(List xwuids) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("xw_student_uid", xwuids);
queryWrapper.eq("is_cancel", 0);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public List getListPush() {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SmartUser::getIsCancel, 0)
.eq(SmartUser::getIsPush, 1);
List smartUserList = this.list(wrapper);
return smartUserList;
}
@Override
public List getAffiliateList(Integer id) {
return smartUserMapper.getAffiliateList(id);
}
@Override
public List queryAffiliateUserById(Integer id) {
List result = smartUserMapper.queryAffiliateUserById(id);
return result;
}
@Override
public List queryDatasByDepartments(List departments) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("department_id", departments);
List users = smartUserMapper.selectList(queryWrapper);
return users;
}
@Override
public List queryStudentDatas() {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("is_cancel", 0);
queryWrapper.eq("identity_id", eIdentityStatu.Student.getValue());
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public List queryStudentDatas(Integer identityId, List gradeIds) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("is_cancel", 0);
queryWrapper.eq("identity_id", eIdentityStatu.Student.getValue());
queryWrapper.in(gradeIds != null && gradeIds.size() > 0 ,"grade",gradeIds);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public PageUtils warningUserList(int currentPage, int pageCount, String name) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage result = smartUserMapper.warningUserList(page, name);
return new PageUtils(result);
}
@Override
public List warningPushList() {
return smartUserMapper.warningPushList();
}
@Override
public List queryAffiliateParents(Integer userId) {
return smartUserMapper.queryAffiliateParents(userId);
}
@Override
public SmartUser queryUserInfo(String name, String cardNo, String idCard) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq(StringUtils.hasText(name), "name", name);
queryWrapper.eq(StringUtils.hasText(cardNo), "card_no", cardNo);
queryWrapper.eq(StringUtils.hasText(idCard), "id_card", idCard);
queryWrapper.eq("is_cancel", 0);
SmartUser result = smartUserMapper.selectOne(queryWrapper);
return result;
}
@Override
public List getSmartUserList(List ids) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("is_cancel", 0);
queryWrapper.in("id", ids);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public List querySmartUserByCardNos(List cardNos) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("is_cancel", 0);
queryWrapper.in("card_no", cardNos);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public SmartUserVo querySmartUserById(Integer id) {
SmartUserVo result = smartUserMapper.querySmartUserById(id);
return result;
}
@Override
public int deleteUserBatch(List list) {
int result = smartUserMapper.deleteUserBatch(list);
return result;
}
@Override
public PageUtils queryUserDeletePage(int currentPage, int pageCount) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage result = smartUserMapper.queryUserDeletePage(page);
return new PageUtils(result);
}
@Override
public SmartStudentVo querySmartStudentById(Integer userId) {
SmartStudentVo result = smartUserMapper.querySmartStudentById(userId);
return result;
}
@Override
public List queryStudentsByGrade(List gradeIds) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("identity_id", eIdentityStatu.Student.getValue());
queryWrapper.in(gradeIds != null && gradeIds.size() > 0, "grade", gradeIds);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public List queryUsersByClass(Integer schoolClass) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq(schoolClass != null, "school_class", schoolClass);
queryWrapper.eq("identity_id", eIdentityStatu.Student.getValue());
List users = smartUserMapper.selectList(queryWrapper);
return users;
}
@Override
public List getListUser() {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SmartUser::getIsCancel, 0);
List smartUserList = this.list(wrapper);
return smartUserList;
}
@Override
public SmartUser getPhoneUser(String phone) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SmartUser::getPhone, phone)
.eq(SmartUser::getIdentityId, 1);
SmartUser smartUser = this.getOne(wrapper);
return smartUser;
}
@Override
public List getPhoneUsers(String phone) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("phone", phone);
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public List getAffiliateUser(String affiliate) {
return smartUserMapper.getAffiliateUser(affiliate);
}
@Override
public SmartUser getCard(String certificateNumber) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper/*.eq(SmartUser::getIdCard,certificateNumber)
.or()*/
.eq(SmartUser::getCardNo, certificateNumber);
SmartUser one = this.getOne(wrapper);
return one;
}
@Override
public SmartUser getBsStudentNo(String idNum) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SmartUser::getBsStudentNo, idNum)
.or()
.eq(SmartUser::getBsStaffCode, idNum)
.or()
.eq(SmartUser::getIdCard, idNum);
SmartUser one = this.getOne(wrapper);
return one;
}
@Override
public List getChargeTeacher(Integer schoolClass) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SmartUser::getSchoolClass, schoolClass)
.eq(SmartUser::getDepartmentId, 137);
List list = this.list(wrapper);
return list;
}
@Override
public List studentSelect(String keyWord) {
return smartUserMapper.studentSelect(keyWord);
}
@Override
public List querySmartParentByIds(List studentIds) {
List result = smartUserMapper.querySmartParentByIds(studentIds);
return result;
}
@Override
public int queryStudentCount() {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("identity_id", eIdentityStatu.Student.getValue());
int result = smartUserMapper.selectCount(queryWrapper);
return result;
}
@Override
public List getAccessStatisticsCampus(Integer classId, LocalDateTime startTime, LocalDateTime endTime) {
return smartUserMapper.getAccessStatisticsCampus(classId, startTime, endTime);
}
@Override
public List getAttendanceStatisticsCampus(Integer classId, LocalDateTime startTime, LocalDateTime endTime) {
return smartUserMapper.getAttendanceStatisticsCampus(classId, startTime, endTime);
}
@Override
public List getFaceDiscernStatisticsCampus(Integer classId, LocalDateTime startTime, LocalDateTime endTime) {
return smartUserMapper.getFaceDiscernStatisticsCampus(classId, startTime, endTime);
}
@Override
public List getAckStatisticsCampus(Integer classId, LocalDateTime startTime, LocalDateTime endTime) {
return smartUserMapper.getAckStatisticsCampus(classId, startTime, endTime);
}
@Override
public List getClassStudent(Integer classId) {
return smartUserMapper.getClassStudent(classId);
}
@Override
public List queryTeachers() {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("identity_id", eIdentityStatu.Teacher.getValue());
List result = smartUserMapper.selectList(queryWrapper);
return result;
}
@Override
public List getAddressBook(Integer userId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SmartUser::getAffiliate, userId);
wrapper.eq(SmartUser::getIsCancel, 0);
List list = this.list(wrapper);
return list;
}
@Override
public List getAccessStatisticsCampusManage(Integer gradeId, Integer classId, LocalDateTime startTime, LocalDateTime endTime, String keyWord) {
return smartUserMapper.getAccessStatisticsCampusManage(gradeId, classId, startTime, endTime, keyWord);
}
@Override
public List getAttendanceStatisticsCampusManage(Integer gradeId, Integer classId, LocalDateTime startTime, LocalDateTime endTime, String keyWord) {
return smartUserMapper.getAttendanceStatisticsCampusManage(gradeId, classId, startTime, endTime, keyWord);
}
@Override
public List getFaceDiscernStatisticsCampusManage(Integer gradeId, Integer classId, LocalDateTime startTime, LocalDateTime endTime, String keyWord) {
return smartUserMapper.getFaceDiscernStatisticsCampusManage(gradeId, classId, startTime, endTime, keyWord);
}
@Override
public List getAckStatisticsCampusManage(Integer gradeId, Integer classId, LocalDateTime startTime, LocalDateTime endTime, String keyWord) {
return smartUserMapper.getAckStatisticsCampusManage(gradeId, classId, startTime, endTime, keyWord);
}
@Override
public List getClassStudentManage(Integer gradeId, Integer classId, String keyWord) {
return smartUserMapper.getClassStudentManage(gradeId, classId, keyWord);
}
@Override
public int queryParentByCount(String phone) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("identity_id", eIdentityStatu.Parent.getValue());
queryWrapper.eq("phone", phone);
int result = smartUserMapper.selectCount(queryWrapper);
return result;
}
@Override
public SmartUser queryParentByPhone(String phone) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("identity_id", eIdentityStatu.Parent.getValue());
queryWrapper.eq("phone", phone);
SmartUser result = smartUserMapper.selectOne(queryWrapper);
return result;
}
@Override
public PageUtils getPage(int currentPage, int pageCount, String keyWord, String schoolClass) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage result = smartUserMapper.getPage(page, keyWord, schoolClass);
return new PageUtils(result);
}
@Override
public List getUserClassTotal() {
return smartUserMapper.getUserClassTotal();
}
@Override
public List getUserAckTotal(LocalDateTime startTime, LocalDateTime endTime) {
return smartUserMapper.getUserAckTotal(startTime, endTime);
}
@Override
public List getUserNormalTotal(LocalDateTime startTime, LocalDateTime endTime) {
return smartUserMapper.getUserNormalTotal(startTime, endTime);
}
}