首页>代码>spring boot+layui开发极简物业后台管理系统>/springboot-pms/src/main/java/com/simon/springbootpms/controller/ClockinController.java
package com.simon.springbootpms.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageInfo;
import com.simon.springbootpms.model.Clockin;
import com.simon.springbootpms.model.House;
import com.simon.springbootpms.model.Owner;
import com.simon.springbootpms.service.IBuildingService;
import com.simon.springbootpms.service.IClockinService;
import com.simon.springbootpms.service.IHouseService;
import com.simon.springbootpms.service.IOwnerService;
import com.simon.springbootpms.util.JsonObject;
import com.simon.springbootpms.util.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @author Simon
 */
@Api(tags = {""})
@RestController
@RequestMapping("/clockin")
public class ClockinController {

    private Logger log = LoggerFactory.getLogger(getClass());

    @Resource
    private IClockinService clockinService;

    @Resource
    private IOwnerService ownerService;

    @Resource
    private IBuildingService buildingService;

    @Resource
    private IHouseService houseService;

    @RequestMapping("/queryClockInAll")
    public JsonObject queryClockInAll(@RequestParam(defaultValue = "1") Integer pageNum,
                                      @RequestParam(defaultValue = "15") Integer pageSize,
                                      Clockin clockin) {
        PageInfo<Clockin> pageInfo = clockinService.queryClockInAll(pageNum, pageSize, clockin);
        return new JsonObject(0, "ok", pageInfo.getTotal(), pageInfo.getList());

    }

    @ApiOperation(value = "新增")
    @RequestMapping("/clockInAdd")
    public R add(String username) {

        /**
         * 打卡前先判断这个用户在当天是否已经打卡,若已打卡提示您已经打卡
         * 通过两个参数ownerId+clockTime判断是否已经打卡,就是业主名+打卡时间
         * queryCountByOwnIdAndTime(),返回查找到记录的条数,条数大于0,表示已经打卡,反之未打卡
         *
         * 若未打卡则,添加打卡信息
         * 1、通过username查找对应的owner,可获取到其id
         * 2、通过owner中house_id,查找house
         * 3、通过house得到building_id
         * 4、new Date作为打卡时间
         */
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
        String todayDate = df.format(new Date());//今天的日期
        System.out.println(todayDate);

        Owner owner = ownerService.queryOwnerByName(username);
        Integer ownerId = owner.getId();
        Date timeFlag = clockinService.queryCountByOwnIdAndTime(ownerId);//数据库查到业主的日期
        String timeFlag1 = df.format(timeFlag);

        if (timeFlag1.equals(todayDate)) {//若今天日期等于数据库中已经查到业主的时间,则说明已经打卡
            return R.fail(400, "今日已打卡,请勿重复打卡");
        }
        //不相等,证明数据库还没有这个业主今日的打卡记录,正常打卡
        Integer houId = owner.getHouseId();
        House house = houseService.queryHouseById(houId);

        Integer buildId = house.getBuildingId();
        //Building building = buildingService.queryBuildById(buildId);

        Clockin clockin = new Clockin();
        clockin.setClockInTime(new Date());
        clockin.setOwnerId(ownerId);
        clockin.setHouseId(houId);
        clockin.setBuildingId(buildId);
        System.out.println(clockin);
        int num = clockinService.add(clockin);
        return R.ok();
    }

    @ApiOperation(value = "删除")
    @RequestMapping("/deleteByIds")
    public R delete(String ids) {
        List<String> list = Arrays.asList(ids.split(","));
        for (String id : list) {
            Long idLong = new Long(id);
            clockinService.delete(idLong);
        }
        return R.ok();
    }

    @ApiOperation(value = "更新")
    @PutMapping()
    public int update(@RequestBody Clockin clockin) {
        return clockinService.updateData(clockin);
    }

    @ApiOperation(value = "查询分页数据")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "页码"),
            @ApiImplicitParam(name = "pageCount", value = "每页条数")
    })
    @GetMapping()
    public IPage<Clockin> findListByPage(@RequestParam Integer page,
                                         @RequestParam Integer pageCount) {
        return clockinService.findListByPage(page, pageCount);
    }

    @ApiOperation(value = "id查询")
    @GetMapping("{id}")
    public Clockin findById(@PathVariable Long id) {
        return clockinService.findById(id);
    }

}
最近下载更多
ma406805131  LV11 前天
YhXyHx523  LV6 4月13日
wanglinddad  LV55 3月31日
eagerwujin  LV4 3月2日
jiyun2021  LV9 1月23日
Lcovde  LV19 1月10日
AceSpilker  LV4 2023年10月13日
skook7  LV2 2023年6月1日
最近浏览更多
ma406805131  LV11 前天
1941549176 5月6日
暂无贡献等级
kenhomeliu  LV29 4月30日
uid0901  LV2 4月29日
刘孟飞  LV19 4月14日
YhXyHx523  LV6 4月13日
jc121140  LV3 4月6日
wanglinddad  LV55 3月31日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友