首页>代码>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);
    }

}
最近下载更多
C544350851  LV26 前天
yifeng868  LV9 6月11日
102404426  LV8 3月3日
zolscy  LV24 2024年11月27日
计科一班  LV7 2024年6月19日
TY0165  LV20 2024年6月16日
1941549176  LV4 2024年5月10日
ma406805131  LV19 2024年5月7日
YhXyHx523  LV6 2024年4月13日
wanglinddad  LV55 2024年3月31日
最近浏览更多
C544350851  LV26 前天
yifeng868  LV9 6月10日
KAIzx11  LV8 5月5日
luhong  LV4 3月31日
叉烧君  LV3 3月20日
102404426  LV8 3月3日
qpzmla 2024年12月13日
暂无贡献等级
zolscy  LV24 2024年11月26日
citybird  LV4 2024年11月18日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友