|
|
@@ -0,0 +1,131 @@
|
|
|
+package com.ctsi.work.WorkAddr.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
|
|
+import com.ctsi.work.WorkAddr.entity.WorkAddr;
|
|
|
+import com.ctsi.work.WorkAddr.mapper.WorkAddrMapper;
|
|
|
+import com.ctsi.work.WorkAddr.service.WorkAddrService;
|
|
|
+ /**
|
|
|
+ * 打卡地址表;(work_addr)表服务实现类
|
|
|
+ * @author : machaoyi
|
|
|
+ * @date : 2024-1-17
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class WorkAddrServiceImpl implements WorkAddrService{
|
|
|
+ @Autowired
|
|
|
+ private WorkAddrMapper workAddrMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过ID查询单条数据
|
|
|
+ *
|
|
|
+ * @param id 主键
|
|
|
+ * @return 实例对象
|
|
|
+ */
|
|
|
+ public WorkAddr queryById(Long id){
|
|
|
+ return workAddrMapper.selectById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询
|
|
|
+ *
|
|
|
+ * @param workAddr 筛选条件
|
|
|
+ * @param current 当前页码
|
|
|
+ * @param size 每页大小
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Page<WorkAddr> paginQuery(WorkAddr workAddr, long current, long size){
|
|
|
+ //1. 构建动态查询条件
|
|
|
+ LambdaQueryWrapper<WorkAddr> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrName())){
|
|
|
+ queryWrapper.eq(WorkAddr::getAddrName, workAddr.getAddrName());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrLng())){
|
|
|
+ queryWrapper.eq(WorkAddr::getAddrLng, workAddr.getAddrLng());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrLat())){
|
|
|
+ queryWrapper.eq(WorkAddr::getAddrLat, workAddr.getAddrLat());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrRange())){
|
|
|
+ queryWrapper.eq(WorkAddr::getAddrRange, workAddr.getAddrRange());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrIn())){
|
|
|
+ queryWrapper.eq(WorkAddr::getAddrIn, workAddr.getAddrIn());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrQuit())){
|
|
|
+ queryWrapper.eq(WorkAddr::getAddrQuit, workAddr.getAddrQuit());
|
|
|
+ }
|
|
|
+ //2. 执行分页查询
|
|
|
+ Page<WorkAddr> pagin = new Page<>(current , size , true);
|
|
|
+ IPage<WorkAddr> selectResult = workAddrMapper.selectPage(pagin , queryWrapper);
|
|
|
+ pagin.setPages(selectResult.getPages());
|
|
|
+ pagin.setTotal(selectResult.getTotal());
|
|
|
+ pagin.setRecords(selectResult.getRecords());
|
|
|
+ //3. 返回结果
|
|
|
+ return pagin;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增数据
|
|
|
+ *
|
|
|
+ * @param workAddr 实例对象
|
|
|
+ * @return 实例对象
|
|
|
+ */
|
|
|
+ public WorkAddr insert(WorkAddr workAddr){
|
|
|
+ workAddrMapper.insert(workAddr);
|
|
|
+ return workAddr;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新数据
|
|
|
+ *
|
|
|
+ * @param workAddr 实例对象
|
|
|
+ * @return 实例对象
|
|
|
+ */
|
|
|
+ public WorkAddr update(WorkAddr workAddr){
|
|
|
+ //1. 根据条件动态更新
|
|
|
+ LambdaUpdateChainWrapper<WorkAddr> chainWrapper = new LambdaUpdateChainWrapper<WorkAddr>(workAddrMapper);
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrName())){
|
|
|
+ chainWrapper.set(WorkAddr::getAddrName, workAddr.getAddrName());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrLng())){
|
|
|
+ chainWrapper.set(WorkAddr::getAddrLng, workAddr.getAddrLng());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrLat())){
|
|
|
+ chainWrapper.set(WorkAddr::getAddrLat, workAddr.getAddrLat());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrRange())){
|
|
|
+ chainWrapper.set(WorkAddr::getAddrRange, workAddr.getAddrRange());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrIn())){
|
|
|
+ chainWrapper.set(WorkAddr::getAddrIn, workAddr.getAddrIn());
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(workAddr.getAddrQuit())){
|
|
|
+ chainWrapper.set(WorkAddr::getAddrQuit, workAddr.getAddrQuit());
|
|
|
+ }
|
|
|
+ //2. 设置主键,并更新
|
|
|
+ chainWrapper.eq(WorkAddr::getId, workAddr.getId());
|
|
|
+ boolean ret = chainWrapper.update();
|
|
|
+ //3. 更新成功了,查询最最对象返回
|
|
|
+ if(ret){
|
|
|
+ return queryById(workAddr.getId());
|
|
|
+ }else{
|
|
|
+ return workAddr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过主键删除数据
|
|
|
+ *
|
|
|
+ * @param id 主键
|
|
|
+ * @return 是否成功
|
|
|
+ */
|
|
|
+ public boolean deleteById(Long id){
|
|
|
+ int total = workAddrMapper.deleteById(id);
|
|
|
+ return total > 0;
|
|
|
+ }
|
|
|
+}
|