parent
dd590b6cf6
commit
95ab621590
15 changed files with 503 additions and 28 deletions
@ -0,0 +1,62 @@ |
|||||||
|
package cn.soul2.demo.controller; |
||||||
|
|
||||||
|
import cn.soul2.demo.dto.QrDTO; |
||||||
|
import cn.soul2.demo.entity.QrDO; |
||||||
|
import cn.soul2.demo.repository.IQrRepository; |
||||||
|
import cn.soul2.demo.utils.base.BackUtils; |
||||||
|
import cn.soul2.demo.utils.base.PageUtils; |
||||||
|
import cn.soul2.demo.vo.QrVO; |
||||||
|
import cn.soul2.demo.vo.base.Back; |
||||||
|
import cn.soul2.demo.vo.base.VPage; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Soul2 |
||||||
|
* @date 2024-03-11 15:16 |
||||||
|
*/ |
||||||
|
|
||||||
|
@Slf4j |
||||||
|
@RestController |
||||||
|
@RequestMapping("/qr") |
||||||
|
public class QrController { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
IQrRepository qrRepository; |
||||||
|
|
||||||
|
@PostMapping("/page") |
||||||
|
Back<VPage<QrVO>> page(@RequestBody QrDTO dto) { |
||||||
|
VPage<QrDO> page = qrRepository.page(dto); |
||||||
|
VPage<QrVO> toPage = PageUtils.to(page, page.getRows().stream().map(e -> { |
||||||
|
QrVO vo = new QrVO(); |
||||||
|
BeanUtils.copyProperties(e, vo); |
||||||
|
return vo; |
||||||
|
}).collect(Collectors.toList())); |
||||||
|
return BackUtils.success(toPage); |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("/saveOrUpdate") |
||||||
|
Back<Boolean> saveOrUpdate(@RequestBody List<QrVO> dtos) { |
||||||
|
return BackUtils.success(qrRepository.saveOrUpdate(dtos)); |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("/remove") |
||||||
|
Back<Boolean> remove(@RequestBody List<String> ids) { |
||||||
|
return BackUtils.success(qrRepository.remove(ids)); |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("status") |
||||||
|
public Back<Boolean> status(@RequestBody QrDTO dto) { |
||||||
|
return BackUtils.success(qrRepository.status(dto)); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,62 @@ |
|||||||
|
package cn.soul2.demo.dto; |
||||||
|
|
||||||
|
import cn.soul2.demo.dto.base.PageParams; |
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Soul2 |
||||||
|
* @date 2024-03-11 14:35 |
||||||
|
*/ |
||||||
|
|
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
public class QrDTO extends PageParams { |
||||||
|
|
||||||
|
/** |
||||||
|
* 二维码id |
||||||
|
*/ |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 指向的URL |
||||||
|
*/ |
||||||
|
private String toUrl; |
||||||
|
|
||||||
|
/** |
||||||
|
* 问卷id |
||||||
|
*/ |
||||||
|
private String qnId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 状态:0:禁用;1:启用; |
||||||
|
*/ |
||||||
|
private Integer status; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 开始时间 |
||||||
|
*/ |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private LocalDateTime startTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 结束时间 |
||||||
|
*/ |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private LocalDateTime endTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 注释 |
||||||
|
*/ |
||||||
|
private String tip; |
||||||
|
|
||||||
|
/** |
||||||
|
* 二维码url |
||||||
|
*/ |
||||||
|
private String qrUrl; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,92 @@ |
|||||||
|
package cn.soul2.demo.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableField; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.time.LocalDateTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 二维码表 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author Soul2 |
||||||
|
* @since 2024-03-11 17:01:53 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
@Accessors(chain = true) |
||||||
|
@TableName("tb_qr") |
||||||
|
public class QrDO extends Model<QrDO> { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
/** |
||||||
|
* 二维码id |
||||||
|
*/ |
||||||
|
@TableField("id") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 指向的URL |
||||||
|
*/ |
||||||
|
@TableField("to_url") |
||||||
|
private String toUrl; |
||||||
|
|
||||||
|
/** |
||||||
|
* 问卷id |
||||||
|
*/ |
||||||
|
@TableField("qn_id") |
||||||
|
private String qnId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 注释 |
||||||
|
*/ |
||||||
|
@TableField("tip") |
||||||
|
private String tip; |
||||||
|
|
||||||
|
/** |
||||||
|
* 二维码url |
||||||
|
*/ |
||||||
|
@TableField("qr_url") |
||||||
|
private String qrUrl; |
||||||
|
|
||||||
|
/** |
||||||
|
* 状态:0:禁用;1:启用; |
||||||
|
*/ |
||||||
|
@TableField("status") |
||||||
|
private Integer status; |
||||||
|
|
||||||
|
/** |
||||||
|
* 更新时间 |
||||||
|
*/ |
||||||
|
@TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE) |
||||||
|
private LocalDateTime updatedTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 创建时间 |
||||||
|
*/ |
||||||
|
@TableField(value = "created_time", fill = FieldFill.INSERT) |
||||||
|
private LocalDateTime createdTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除标识: 0-存在; 1-删除 |
||||||
|
*/ |
||||||
|
@TableField("removed") |
||||||
|
@TableLogic |
||||||
|
private Integer removed; |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public Serializable pkVal() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
package cn.soul2.demo.mapper; |
||||||
|
|
||||||
|
import cn.soul2.demo.entity.QrDO; |
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 二维码表 Mapper 接口 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author Soul2 |
||||||
|
* @since 2024-03-11 14:28:45 |
||||||
|
*/ |
||||||
|
@Mapper |
||||||
|
public interface QrMapper extends BaseMapper<QrDO> { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package cn.soul2.demo.repository; |
||||||
|
|
||||||
|
import cn.soul2.demo.dto.QrDTO; |
||||||
|
import cn.soul2.demo.entity.QrDO; |
||||||
|
import cn.soul2.demo.vo.QrVO; |
||||||
|
import cn.soul2.demo.vo.base.VPage; |
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
|
||||||
|
import java.util.Collection; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 二维码表 服务类 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author Soul2 |
||||||
|
* @since 2024-03-11 14:28:45 |
||||||
|
*/ |
||||||
|
public interface IQrRepository extends IService<QrDO> { |
||||||
|
|
||||||
|
VPage<QrDO> page(QrDTO dto); |
||||||
|
|
||||||
|
Boolean saveOrUpdate(Collection<QrVO> dtos); |
||||||
|
|
||||||
|
Boolean remove(Collection<String> ids); |
||||||
|
|
||||||
|
|
||||||
|
boolean status(QrDTO status); |
||||||
|
} |
@ -0,0 +1,71 @@ |
|||||||
|
package cn.soul2.demo.repository.impl; |
||||||
|
|
||||||
|
import cn.soul2.demo.dto.QrDTO; |
||||||
|
import cn.soul2.demo.entity.QrDO; |
||||||
|
import cn.soul2.demo.mapper.QrMapper; |
||||||
|
import cn.soul2.demo.repository.IQrRepository; |
||||||
|
import cn.soul2.demo.utils.base.PageUtils; |
||||||
|
import cn.soul2.demo.vo.QrVO; |
||||||
|
import cn.soul2.demo.vo.base.VPage; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.Collection; |
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 二维码表 服务实现类 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author Soul2 |
||||||
|
* @since 2024-03-11 14:28:45 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class QrRepositoryImpl extends ServiceImpl<QrMapper, QrDO> implements IQrRepository { |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public VPage<QrDO> page(QrDTO dto) { |
||||||
|
LambdaQueryWrapper<QrDO> query = Wrappers.lambdaQuery(); |
||||||
|
query.likeRight(StringUtils.isNotBlank(dto.getTip()), QrDO::getTip, dto.getTip()) |
||||||
|
.eq(StringUtils.isNotBlank(dto.getId()), QrDO::getId, dto.getId()); |
||||||
|
if (dto.getStartTime() != null && dto.getEndTime() != null) { |
||||||
|
query.between(QrDO::getUpdatedTime, dto.getStartTime(), dto.getEndTime()); |
||||||
|
} else { |
||||||
|
query.ge(dto.getStartTime() != null, QrDO::getUpdatedTime, dto.getStartTime()) |
||||||
|
.le(dto.getEndTime() != null, QrDO::getUpdatedTime, dto.getEndTime()); |
||||||
|
} |
||||||
|
query.orderByDesc(QrDO::getUpdatedTime).orderByDesc(QrDO::getCreatedTime); |
||||||
|
return PageUtils.to(super.page(PageUtils.build(dto))); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Boolean saveOrUpdate(Collection<QrVO> dtos) { |
||||||
|
List<QrDO> list = dtos.stream().map(dto -> { |
||||||
|
QrDO r = new QrDO(); |
||||||
|
BeanUtils.copyProperties(dto, r); |
||||||
|
return r; |
||||||
|
}).collect(Collectors.toList()); |
||||||
|
return super.saveOrUpdateBatch(list); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Boolean remove(Collection<String> ids) { |
||||||
|
return super.removeBatchByIds(ids); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean status(QrDTO status) { |
||||||
|
LambdaUpdateWrapper<QrDO> update = Wrappers.lambdaUpdate(); |
||||||
|
QrDO qr = new QrDO(); |
||||||
|
BeanUtils.copyProperties(status, qr); |
||||||
|
return updateById(qr); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,10 @@ |
|||||||
|
package cn.soul2.demo.service; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Soul2 |
||||||
|
* @date 2024-03-11 15:20 |
||||||
|
*/ |
||||||
|
|
||||||
|
public interface IQrService { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
package cn.soul2.demo.service; |
||||||
|
|
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Soul2 |
||||||
|
* @date 2024-03-11 15:20 |
||||||
|
*/ |
||||||
|
|
||||||
|
@Service |
||||||
|
public class QrServiceImpl implements IQrService { |
||||||
|
} |
@ -0,0 +1,53 @@ |
|||||||
|
package cn.soul2.demo.vo; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Soul2 |
||||||
|
* @date 2024-03-11 15:16 |
||||||
|
*/ |
||||||
|
|
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
public class QrVO { |
||||||
|
|
||||||
|
/** |
||||||
|
* 二维码id |
||||||
|
*/ |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 指向的URL |
||||||
|
*/ |
||||||
|
private String toUrl; |
||||||
|
|
||||||
|
/** |
||||||
|
* 问卷id |
||||||
|
*/ |
||||||
|
private String qnId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 状态:0:禁用;1:启用; |
||||||
|
*/ |
||||||
|
private Integer status; |
||||||
|
|
||||||
|
/** |
||||||
|
* 更新时间 |
||||||
|
*/ |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private LocalDateTime updatedTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 注释 |
||||||
|
*/ |
||||||
|
private String tip; |
||||||
|
|
||||||
|
/** |
||||||
|
* 二维码url |
||||||
|
*/ |
||||||
|
private String qrUrl; |
||||||
|
} |
Loading…
Reference in new issue