| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- package com.xjrsoft.module.personnel.controller;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.StrUtil;
- 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.core.toolkit.Wrappers;
- import com.github.yulichang.toolkit.MPJWrappers;
- import com.xjrsoft.common.constant.GlobalConstant;
- import com.baomidou.mybatisplus.core.toolkit.StringPool;
- import com.xjrsoft.common.page.ConventPage;
- import com.xjrsoft.common.page.PageOutput;
- import com.xjrsoft.common.model.result.RT;
- import com.xjrsoft.common.utils.QrCodeUtil;
- import com.xjrsoft.common.utils.VoToColumnUtil;
- import com.xjrsoft.config.CommonPropertiesConfig;
- import com.xjrsoft.module.organization.entity.Department;
- import com.xjrsoft.module.personnel.dto.AddReservationSchoolDto;
- import com.xjrsoft.module.personnel.dto.ReservationSchoolVisitorPageDto;
- import com.xjrsoft.module.personnel.dto.UpdateReservationSchoolDto;
- import cn.dev33.satoken.annotation.SaCheckPermission;
- import com.xjrsoft.module.personnel.dto.ReservationSchoolPageDto;
- import com.xjrsoft.module.personnel.entity.ReservationSchool;
- import com.xjrsoft.module.personnel.entity.ReservationSchoolPeople;
- import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
- import com.xjrsoft.module.personnel.entity.TeacherFaceProcess;
- import com.xjrsoft.module.personnel.service.IReservationSchoolService;
- import com.xjrsoft.module.personnel.vo.ReservationSchoolPageVo;
- import com.xjrsoft.module.personnel.vo.ReservationSchoolVisitorPageVo;
- import com.xjrsoft.module.personnel.vo.ReservationSchoolVo;
- import com.xjrsoft.module.personnel.vo.StundentFaceProcessPageVo;
- import com.xjrsoft.module.room.entity.RoomValueWeek;
- import com.xjrsoft.module.system.entity.DictionaryDetail;
- import com.xjrsoft.module.teacher.entity.XjrUser;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.AllArgsConstructor;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- import javax.validation.constraints.NotNull;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
- /**
- * @title: 预约进校
- * @Author dzx
- * @Date: 2024-05-11
- * @Version 1.0
- */
- @RestController
- @RequestMapping("/personnel" + "/reservationSchool")
- @Api(value = "/personnel" + "/reservationSchool",tags = "预约进校代码")
- @AllArgsConstructor
- public class ReservationSchoolController {
- private final IReservationSchoolService reservationSchoolService;
- private final CommonPropertiesConfig commonPropertiesConfig;
- @GetMapping(value = "/page")
- @ApiOperation(value="预约进校列表(分页)")
- @SaCheckPermission("reservationschool:detail")
- public RT<PageOutput<ReservationSchoolPageVo>> page(@Valid ReservationSchoolPageDto dto){
- LambdaQueryWrapper<ReservationSchool> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper
- .orderByDesc(ReservationSchool::getId)
- .eq(ReservationSchool::getCreateUserId,StpUtil.getLoginIdAsLong())
- .select(ReservationSchool.class,x -> VoToColumnUtil.fieldsToColumns(ReservationSchoolPageVo.class).contains(x.getProperty()));
- if(ObjectUtil.isNotNull(dto.getType())) {
- Date date = new Date();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- if (dto.getType() == 1) {
- queryWrapper.le(ReservationSchool::getStartTime, sdf.format(date))
- .ge(ReservationSchool::getEndTime, sdf.format(date));
- }
- if (dto.getType() == 2) {
- queryWrapper.and(ext->ext.ge(ReservationSchool::getStartTime, sdf.format(date)).or(eee->eee.le(ReservationSchool::getEndTime, sdf.format(date))));
- }
- }
- IPage<ReservationSchool> page = reservationSchoolService.page(ConventPage.getPage(dto), queryWrapper);
- PageOutput<ReservationSchoolPageVo> pageOutput = ConventPage.getPageOutput(page, ReservationSchoolPageVo.class);
- return RT.ok(pageOutput);
- }
- @GetMapping(value = "/my-visitor-page")
- @ApiOperation(value="我的访客(分页)")
- @SaCheckPermission("reservationschool:detail")
- public RT<PageOutput<ReservationSchoolVisitorPageVo>> myVisitorPage(@Valid ReservationSchoolVisitorPageDto dto){
- IPage<ReservationSchoolVisitorPageVo> page = reservationSchoolService.selectJoinListPage(ConventPage.getPage(dto),
- ReservationSchoolVisitorPageVo.class
- , MPJWrappers.<ReservationSchool>lambdaJoin()
- .orderByDesc(ReservationSchoolPeople::getId)
- .disableSubLogicDel()
- .select("(SELECT COUNT(*) FROM reservation_school_people WHERE reservation_schooId = t.id) as people_count")
- .eq(ReservationSchool::getRespondentUserId,StpUtil.getLoginIdAsLong())
- .le(ObjectUtil.isNotNull(dto.getVisitTime()),ReservationSchool::getStartTime,dto.getVisitTime())
- .ge(ObjectUtil.isNotNull(dto.getVisitTime()),ReservationSchool::getEndTime,dto.getVisitTime())
- .like(ObjectUtil.isNotNull(dto.getName()),ReservationSchoolPeople::getName,dto.getName())
- .select(ReservationSchoolPeople::getId)
- .select(ReservationSchool.class,x -> VoToColumnUtil.fieldsToColumns(ReservationSchoolVisitorPageVo.class).contains(x.getProperty()))
- .leftJoin(ReservationSchoolPeople.class,ReservationSchoolPeople::getReservationSchooId,ReservationSchool::getId)
- .select(ReservationSchoolPeople.class,x -> VoToColumnUtil.fieldsToColumns(ReservationSchoolVisitorPageVo.class).contains(x.getProperty()))
- );
- PageOutput<ReservationSchoolVisitorPageVo> pageOutput = ConventPage.getPageOutput(page, ReservationSchoolVisitorPageVo.class);
- return RT.ok(pageOutput);
- }
- @GetMapping(value = "/visitor-page")
- @ApiOperation(value="访客记录(分页)")
- @SaCheckPermission("reservationschool:detail")
- public RT<PageOutput<ReservationSchoolVisitorPageVo>> visitorPage(@Valid ReservationSchoolVisitorPageDto dto){
- IPage<ReservationSchoolVisitorPageVo> page = reservationSchoolService.selectJoinListPage(ConventPage.getPage(dto),
- ReservationSchoolVisitorPageVo.class
- , MPJWrappers.<ReservationSchool>lambdaJoin()
- .orderByDesc(ReservationSchoolPeople::getId)
- .disableSubLogicDel()
- .select("(SELECT COUNT(*) FROM reservation_school_people WHERE reservation_schooId = t.id) as people_count")
- .le(ObjectUtil.isNotNull(dto.getVisitTime()),ReservationSchool::getStartTime,dto.getVisitTime())
- .ge(ObjectUtil.isNotNull(dto.getVisitTime()),ReservationSchool::getEndTime,dto.getVisitTime())
- .like(!StrUtil.isEmpty(dto.getName()),ReservationSchoolPeople::getName,dto.getName())
- .like(ObjectUtil.isNotNull(dto.getIdentityCard()),ReservationSchoolPeople::getIdentityCard,dto.getIdentityCard())
- .eq(ObjectUtil.isNotEmpty(dto.getDeptId())&&dto.getDeptId()!=0,ReservationSchool::getDeptId,dto.getDeptId())
- .select(ReservationSchoolPeople::getId)
- .selectAs(ReservationSchoolPeople::getReservationSchooId,ReservationSchoolVisitorPageVo::getPId)
- .select(ReservationSchool.class,x -> VoToColumnUtil.fieldsToColumns(ReservationSchoolVisitorPageVo.class).contains(x.getProperty()))
- .leftJoin(ReservationSchoolPeople.class,ReservationSchoolPeople::getReservationSchooId,ReservationSchool::getId)
- .leftJoin(Department.class,Department::getId,ReservationSchool::getDeptId,ext->ext.selectAs(Department::getName,ReservationSchoolVisitorPageVo::getDeptCn))
- .leftJoin(XjrUser.class,XjrUser::getId,ReservationSchool::getRespondentUserId,ext->ext.selectAs(XjrUser::getName,ReservationSchoolVisitorPageVo::getRespondentUserCn))
- .leftJoin(DictionaryDetail.class,DictionaryDetail::getCode, ReservationSchoolPeople::getGender, ext->ext.selectAs(DictionaryDetail::getName, ReservationSchoolVisitorPageVo::getGender))
- .select(ReservationSchoolPeople.class,x -> VoToColumnUtil.fieldsToColumns(ReservationSchoolVisitorPageVo.class).contains(x.getProperty()))
- );
- PageOutput<ReservationSchoolVisitorPageVo> pageOutput = ConventPage.getPageOutput(page, ReservationSchoolVisitorPageVo.class);
- return RT.ok(pageOutput);
- }
- @GetMapping(value = "/info")
- @ApiOperation(value="根据id查询预约进校信息")
- @SaCheckPermission("reservationschool:detail")
- public RT<ReservationSchoolVo> info(@RequestParam Long id){
- ReservationSchool reservationSchool = reservationSchoolService.getByIdDeep(id);
- if (reservationSchool == null) {
- return RT.error("找不到此数据!");
- }
- return RT.ok(BeanUtil.toBean(reservationSchool, ReservationSchoolVo.class));
- }
- @PostMapping
- @ApiOperation(value = "新增预约进校")
- @SaCheckPermission("reservationschool:add")
- public RT<Boolean> add(@Valid @RequestBody AddReservationSchoolDto dto){
- ReservationSchool reservationSchool = BeanUtil.toBean(dto, ReservationSchool.class);
- boolean isSuccess = reservationSchoolService.add(reservationSchool);
- return RT.ok(isSuccess);
- }
- @PutMapping
- @ApiOperation(value = "修改预约进校")
- @SaCheckPermission("reservationschool:edit")
- public RT<Boolean> update(@Valid @RequestBody UpdateReservationSchoolDto dto){
- ReservationSchool reservationSchool = BeanUtil.toBean(dto, ReservationSchool.class);
- return RT.ok(reservationSchoolService.update(reservationSchool));
- }
- @DeleteMapping
- @ApiOperation(value = "删除预约进校")
- @SaCheckPermission("reservationschool:delete")
- public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
- return RT.ok(reservationSchoolService.delete(ids));
- }
- @GetMapping(value = "/info-qrcode")
- @ApiOperation(value="预约进校-生成二维码")
- @SaCheckPermission("reservationschool:detail")
- public RT<String> qrcode(@RequestParam Long id) throws Exception {
- String url = "接口生成二维码";
- int width = 200;
- int height = 200;
- int margin = 1;
- try {
- String base64 = QrCodeUtil.createBase64(url, width, height, margin);
- return RT.ok(base64);
- } catch (Exception e) {
- throw e;
- }
- }
- }
|