Commit fbc18102 authored by litengwei's avatar litengwei

app签到后台接口

parent f9396219
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 打卡记录
*
* @author system_generator
* @date 2022-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="SignDto", description="打卡记录")
public class SignDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "打卡人名字")
private String name;
@ApiModelProperty(value = "打卡人id")
private String userId;
@ApiModelProperty(value = "打卡人岗位")
private String jobTitle;
@ApiModelProperty(value = "换流站code")
private String bizOrgCode;
@ApiModelProperty(value = "换流站Name")
private String bizOrgName;
@ApiModelProperty(value = "打卡时间")
private String date;
@ApiModelProperty(value = "打卡来源")
private String source;
@ApiModelProperty(value = "打卡图片")
private String photos;
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty(value = "打卡时间")
private Date signTime;
@ApiModelProperty(value = "系统标识(数据隔离使用)")
private String appKey;
@ApiModelProperty(value = "组件机构")
private String orgCode;
@ApiModelProperty(value = "打卡类型")
private String type;
}
package com.yeejoin.amos.boot.module.jcs.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 打卡记录
*
* @author system_generator
* @date 2022-08-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_sign")
public class Sign extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 打卡人名字
*/
@TableField("name")
private String name;
/**
* 打卡人id
*/
@TableField("user_id")
private String userId;
/**
* 打卡人岗位
*/
@TableField("job_title")
private String jobTitle;
/**
* 打卡类型
*/
@TableField("type")
private String type;
/**
* 换流站code
*/
@TableField("biz_org_code")
private String bizOrgCode;
/**
* 换流站Name
*/
@TableField("biz_org_name")
private String bizOrgName;
/**
* 打卡时间
*/
@TableField("date")
private String date;
/**
* 打卡来源
*/
@TableField("source")
private String source;
/**
* 打卡图片
*/
@TableField("photos")
private String photos;
/**
* 备注
*/
@TableField("remarks")
private String remarks;
/**
* 打卡时间
*/
@TableField("sign_time")
private Date signTime;
/**
* 系统标识(数据隔离使用)
*/
@TableField("app_key")
private String appKey;
/**
* 组件机构
*/
@TableField("org_code")
private String orgCode;
}
package com.yeejoin.amos.boot.module.jcs.api.mapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.Sign;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 打卡记录 Mapper 接口
*
* @author system_generator
* @date 2022-08-15
*/
public interface SignMapper extends BaseMapper<Sign> {
}
package com.yeejoin.amos.boot.module.jcs.api.service;
import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
/**
* 打卡记录接口类
*
* @author system_generator
* @date 2022-08-15
*/
public interface ISignService {
Boolean hasSign(String type,String date,String userId);
Boolean saveSign(SignDto dot);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jcs.api.mapper.SignMapper">
</mapper>
package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date;
import java.util.List;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.SignServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
/**
* 打卡记录
*
* @author system_generator
* @date 2022-08-15
*/
@RestController
@Api(tags = "打卡记录Api")
@RequestMapping(value = "/sign")
public class SignController extends BaseController {
@Autowired
SignServiceImpl signServiceImpl;
/**
* 新增打卡记录
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增打卡记录", notes = "新增打卡记录")
public ResponseModel<SignDto> save(@RequestBody SignDto model) {
model = signServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新打卡记录", notes = "根据sequenceNbr更新打卡记录")
public ResponseModel<SignDto> updateBySequenceNbrSign(@RequestBody SignDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(signServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除打卡记录", notes = "根据sequenceNbr删除打卡记录")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(signServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个打卡记录", notes = "根据sequenceNbr查询单个打卡记录")
public ResponseModel<SignDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(signServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "打卡记录分页查询", notes = "打卡记录分页查询")
public ResponseModel<Page<SignDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<SignDto> page = new Page<SignDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(signServiceImpl.queryForSignPage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "打卡记录列表全部数据查询", notes = "打卡记录列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<SignDto>> selectForList() {
return ResponseHelper.buildResponse(signServiceImpl.queryForSignList());
}
/**
* 当前用户当天是否已打卡
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "打卡记录列表全部数据查询", notes = "打卡记录列表全部数据查询")
@GetMapping(value = "/hasSign")
public ResponseModel<Boolean> hasSign(@RequestParam(value = "type" , required = false) String type,
@RequestParam(value = "userId" , required = false) String userId) {
String date = DateUtils.stampToDate(new Date().getTime(),DateUtils.DATE_PATTERN);
return ResponseHelper.buildResponse(signServiceImpl.hasSign(type,date,userId));
}
/**
* 保存打卡记录
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST",value = "保存打卡记录", notes = "保存打卡记录")
@PostMapping(value = "/saveSign")
public ResponseModel<Boolean> hasSign(@RequestBody SignDto dto) {
return ResponseHelper.buildResponse(signServiceImpl.saveSign(dto));
}
}
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.Sign;
import com.yeejoin.amos.boot.module.jcs.api.mapper.SignMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.ISignService;
import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 打卡记录服务实现类
*
* @author system_generator
* @date 2022-08-15
*/
@Service
public class SignServiceImpl extends BaseService<SignDto,Sign,SignMapper> implements ISignService {
/**
* 分页查询
*/
public Page<SignDto> queryForSignPage(Page<SignDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<SignDto> queryForSignList() {
return this.queryForList("" , false);
}
@Override
public Boolean hasSign(String type, String date,String userId) {
QueryWrapper<Sign> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("date",date);
if(StringUtils.isNotEmpty(type)) {
queryWrapper.eq("type",type);
}
if(StringUtils.isNotEmpty(userId)) {
queryWrapper.eq("user_id",userId);
}
List<Sign> signs = this.baseMapper.selectList(queryWrapper);
if (StringUtils.isEmpty(type) && signs.size() != 2) {
return true;
} else {
if(StringUtils.isNotEmpty(type) && signs.size() == 1) {
return true;
}
return false;
}
}
@Override
public Boolean saveSign(SignDto dot) {
Sign sign = new Sign();
Bean.copyExistPropertis(dot,sign);
return this.save(sign);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment