fix
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package com.starry.admin.common.task;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.starry.admin.modules.clerk.module.entity.ClerkPkEnum;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkPkEntity;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkPkService;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author: huchuansai
|
||||
* @Date: 2024/8/2 4:31 PM
|
||||
* @Description:
|
||||
*/
|
||||
@Component
|
||||
public class ClerkPkJob {
|
||||
|
||||
@Resource
|
||||
private IPlayClerkPkService playClerkPkService;
|
||||
|
||||
@Scheduled(fixedRate = 60000)
|
||||
public void pkJobStatus() {
|
||||
// 更新状态将待开始的状态改为进行中
|
||||
playClerkPkService.update(Wrappers.lambdaUpdate(PlayClerkPkEntity.class).eq(PlayClerkPkEntity::getStatus, ClerkPkEnum.TO_BE_STARTED.name())
|
||||
.le(PlayClerkPkEntity::getPkBeginTime, new Date())
|
||||
.set(PlayClerkPkEntity::getStatus, ClerkPkEnum.IN_PROGRESS.name()));
|
||||
|
||||
playClerkPkService.update(Wrappers.lambdaUpdate(PlayClerkPkEntity.class).eq(PlayClerkPkEntity::getStatus, ClerkPkEnum.IN_PROGRESS.name())
|
||||
.le(PlayClerkPkEntity::getPkEndTime, new Date())
|
||||
.set(PlayClerkPkEntity::getStatus, ClerkPkEnum.FINISHED.name()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.starry.admin.modules.clerk.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkPkEntity;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkPkService;
|
||||
import com.starry.common.annotation.Log;
|
||||
import com.starry.common.enums.BusinessType;
|
||||
import com.starry.common.result.R;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 店员pkController
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024-08-02
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/play/pk")
|
||||
public class PlayClerkPkController {
|
||||
@Resource
|
||||
private IPlayClerkPkService playClerkPkService;
|
||||
|
||||
/**
|
||||
* 查询店员pk列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public R list(PlayClerkPkEntity playClerkPk) {
|
||||
IPage<PlayClerkPkEntity> list = playClerkPkService.selectPlayClerkPkByPage(playClerkPk);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取店员pk详细信息
|
||||
*/
|
||||
@GetMapping(value = "/{id}")
|
||||
public R getInfo(@PathVariable("id") String id) {
|
||||
return R.ok(playClerkPkService.selectPlayClerkPkById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增店员pk
|
||||
*/
|
||||
@Log(title = "店员pk", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/create")
|
||||
public R create(@RequestBody PlayClerkPkEntity playClerkPk) {
|
||||
boolean success = playClerkPkService.create(playClerkPk);
|
||||
if (success) {
|
||||
return R.ok();
|
||||
}
|
||||
return R.error("添加失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改店员pk
|
||||
*/
|
||||
@Log(title = "店员pk", businessType = BusinessType.UPDATE)
|
||||
@PostMapping(value = "/update/{id}")
|
||||
public R update(@PathVariable String id, @RequestBody PlayClerkPkEntity playClerkPk) {
|
||||
playClerkPk.setId(id);
|
||||
boolean success = playClerkPkService.update(playClerkPk);
|
||||
if (success) {
|
||||
return R.ok();
|
||||
}
|
||||
return R.error("修改失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除店员pk
|
||||
*/
|
||||
@Log(title = "店员pk", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R remove(@PathVariable String[] ids) {
|
||||
return R.ok(playClerkPkService.deletePlayClerkPkByIds(ids));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.starry.admin.modules.clerk.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkPkEntity;
|
||||
|
||||
/**
|
||||
* 店员pkMapper接口
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024-08-02
|
||||
*/
|
||||
public interface PlayClerkPkMapper extends BaseMapper<PlayClerkPkEntity> {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.starry.admin.modules.clerk.module.entity;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @Author: huchuansai
|
||||
* @Date: 2021/11/1 4:33 下午
|
||||
* @Description:
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
public enum ClerkPkEnum {
|
||||
|
||||
TO_BE_STARTED("TO_BE_STARTED", "待开始"),
|
||||
IN_PROGRESS("IN_PROGRESS", "进行中"),
|
||||
FINISHED("FINISHED", "已完成"),
|
||||
;
|
||||
|
||||
@Getter
|
||||
private String value;
|
||||
@Getter
|
||||
private String desc;
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.starry.admin.modules.clerk.module.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.starry.common.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 店员pk对象 play_clerk_pk
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024-08-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("play_clerk_pk")
|
||||
public class PlayClerkPkEntity extends BaseEntity<PlayClerkPkEntity> {
|
||||
|
||||
|
||||
/**
|
||||
* UUID
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 创建人的id
|
||||
*/
|
||||
private String createdBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createdTime;
|
||||
|
||||
/**
|
||||
* 修改人的id
|
||||
*/
|
||||
private String updatedBy;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updatedTime;
|
||||
|
||||
|
||||
/**
|
||||
* 数据版本
|
||||
*/
|
||||
private Long version;
|
||||
|
||||
/**
|
||||
* 店员A
|
||||
*/
|
||||
private String clerkA;
|
||||
|
||||
/**
|
||||
* 店员B
|
||||
*/
|
||||
private String clerkB;
|
||||
|
||||
/**
|
||||
* 比例
|
||||
*/
|
||||
private Integer radio;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private Date pkBeginTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private Date pkEndTime;
|
||||
|
||||
/**
|
||||
* 惩罚公示时间
|
||||
*/
|
||||
private Date punishmentTime;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.starry.admin.modules.clerk.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkPkEntity;
|
||||
|
||||
/**
|
||||
* 店员pkService接口
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024-08-02
|
||||
*/
|
||||
public interface IPlayClerkPkService extends IService<PlayClerkPkEntity> {
|
||||
/**
|
||||
* 查询店员pk
|
||||
* @param id 店员pk主键
|
||||
* @return 店员pk
|
||||
*/
|
||||
PlayClerkPkEntity selectPlayClerkPkById(String id);
|
||||
|
||||
/**
|
||||
* 查询店员pk列表
|
||||
* @param playClerkPk 店员pk
|
||||
* @return 店员pk集合
|
||||
*/
|
||||
IPage<PlayClerkPkEntity> selectPlayClerkPkByPage(PlayClerkPkEntity playClerkPk);
|
||||
|
||||
/**
|
||||
* 新增店员pk
|
||||
* @param playClerkPk 店员pk
|
||||
* @return 结果
|
||||
*/
|
||||
boolean create(PlayClerkPkEntity playClerkPk);
|
||||
|
||||
/**
|
||||
* 修改店员pk
|
||||
* @param playClerkPk 店员pk
|
||||
* @return 结果
|
||||
*/
|
||||
boolean update(PlayClerkPkEntity playClerkPk);
|
||||
|
||||
/**
|
||||
* 批量删除店员pk
|
||||
*
|
||||
* @param ids 需要删除的店员pk主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deletePlayClerkPkByIds(String[] ids);
|
||||
|
||||
/**
|
||||
* 删除店员pk信息
|
||||
*
|
||||
* @param id 店员pk主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deletePlayClerkPkById(String id);
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
package com.starry.admin.modules.clerk.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.starry.admin.modules.clerk.mapper.PlayClerkPkMapper;
|
||||
import com.starry.admin.modules.clerk.module.entity.ClerkPkEnum;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkPkEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkPkService;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
|
||||
import com.starry.common.utils.IdUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 店员pkService业务层处理
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024-08-02
|
||||
*/
|
||||
@Service
|
||||
public class PlayClerkPkServiceImpl extends ServiceImpl<PlayClerkPkMapper, PlayClerkPkEntity> implements IPlayClerkPkService {
|
||||
@Resource
|
||||
private PlayClerkPkMapper playClerkPkMapper;
|
||||
@Resource
|
||||
private IPlayClerkUserInfoService clerkUserInfoService;
|
||||
|
||||
/**
|
||||
* 查询店员pk
|
||||
*
|
||||
* @param id 店员pk主键
|
||||
* @return 店员pk
|
||||
*/
|
||||
@Override
|
||||
public PlayClerkPkEntity selectPlayClerkPkById(String id) {
|
||||
return this.baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询店员pk列表
|
||||
*
|
||||
* @param playClerkPk 店员pk
|
||||
* @return 店员pk
|
||||
*/
|
||||
@Override
|
||||
public IPage<PlayClerkPkEntity> selectPlayClerkPkByPage(PlayClerkPkEntity playClerkPk) {
|
||||
Page<PlayClerkPkEntity> page = new Page<>(1, 10);
|
||||
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>());
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增店员pk
|
||||
*
|
||||
* @param playClerkPk 店员pk
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public boolean create(PlayClerkPkEntity playClerkPk) {
|
||||
if (StrUtil.isBlankIfStr(playClerkPk.getId())) {
|
||||
playClerkPk.setId(IdUtils.getUuid());
|
||||
}
|
||||
if (DateUtil.compare(playClerkPk.getPkBeginTime(), new Date()) < 1) {
|
||||
throw new RuntimeException("开始时间必须大于当前时间");
|
||||
}
|
||||
if (DateUtil.compare(playClerkPk.getPkEndTime(), new Date()) < 1) {
|
||||
throw new RuntimeException("结束时间必须大于当前时间");
|
||||
}
|
||||
LambdaQueryWrapper<PlayClerkPkEntity> wrapper = Wrappers.lambdaQuery(PlayClerkPkEntity.class).in(PlayClerkPkEntity::getClerkA, Arrays.asList(playClerkPk.getClerkA(), playClerkPk.getClerkB()))
|
||||
.in(PlayClerkPkEntity::getStatus, Arrays.asList(ClerkPkEnum.TO_BE_STARTED.name(), ClerkPkEnum.IN_PROGRESS.name()));
|
||||
long count = this.count(wrapper);
|
||||
if (count > 0) {
|
||||
PlayClerkUserInfoEntity clerkUserInfo = clerkUserInfoService.selectById(playClerkPk.getClerkA());
|
||||
throw new RuntimeException("店员【" + clerkUserInfo.getNickname() + "】还有未完成的PK,无法继续添加");
|
||||
}
|
||||
wrapper.clear();
|
||||
wrapper = Wrappers.lambdaQuery(PlayClerkPkEntity.class).in(PlayClerkPkEntity::getClerkB, Arrays.asList(playClerkPk.getClerkA(), playClerkPk.getClerkB()))
|
||||
.in(PlayClerkPkEntity::getStatus, Arrays.asList(ClerkPkEnum.TO_BE_STARTED.name(), ClerkPkEnum.IN_PROGRESS.name()));
|
||||
count = this.count(wrapper);
|
||||
if (count > 0) {
|
||||
PlayClerkUserInfoEntity clerkUserInfo = clerkUserInfoService.selectById(playClerkPk.getClerkB());
|
||||
throw new RuntimeException("店员【" + clerkUserInfo.getNickname() + "】还有未完成的PK,无法继续添加");
|
||||
}
|
||||
|
||||
playClerkPk.setStatus(ClerkPkEnum.TO_BE_STARTED.name());
|
||||
return save(playClerkPk);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改店员pk
|
||||
*
|
||||
* @param playClerkPk 店员pk
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public boolean update(PlayClerkPkEntity playClerkPk) {
|
||||
return updateById(playClerkPk);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除店员pk
|
||||
*
|
||||
* @param ids 需要删除的店员pk主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deletePlayClerkPkByIds(String[] ids) {
|
||||
return playClerkPkMapper.deleteBatchIds(Arrays.asList(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除店员pk信息
|
||||
*
|
||||
* @param id 店员pk主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deletePlayClerkPkById(String id) {
|
||||
return playClerkPkMapper.deleteById(id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user