Commit a290146b by 吕明尚

修改保洁和设备管理权限

parent df6f054e
package share.web.controller.system; package share.web.controller.system;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -8,6 +9,8 @@ import share.common.core.controller.BaseController; ...@@ -8,6 +9,8 @@ import share.common.core.controller.BaseController;
import share.common.core.domain.AjaxResult; import share.common.core.domain.AjaxResult;
import share.common.core.page.TableDataInfo; import share.common.core.page.TableDataInfo;
import share.common.enums.BusinessType; import share.common.enums.BusinessType;
import share.common.enums.PositionEnum;
import share.common.enums.RoleTypeEnum;
import share.common.utils.SecurityUtils; import share.common.utils.SecurityUtils;
import share.common.utils.poi.ExcelUtil; import share.common.utils.poi.ExcelUtil;
import share.system.domain.Device; import share.system.domain.Device;
...@@ -15,6 +18,7 @@ import share.system.domain.SConsumer; ...@@ -15,6 +18,7 @@ import share.system.domain.SConsumer;
import share.system.domain.vo.DeviceParamVo; import share.system.domain.vo.DeviceParamVo;
import share.system.domain.vo.FrontTokenComponent; import share.system.domain.vo.FrontTokenComponent;
import share.system.domain.vo.MqttxVo; import share.system.domain.vo.MqttxVo;
import share.system.mapper.SStoreConsumerMapper;
import share.system.mqtt.MqttGatewayComponent; import share.system.mqtt.MqttGatewayComponent;
import share.system.service.DeviceLogService; import share.system.service.DeviceLogService;
import share.system.service.DeviceService; import share.system.service.DeviceService;
...@@ -41,6 +45,8 @@ public class DeviceController extends BaseController { ...@@ -41,6 +45,8 @@ public class DeviceController extends BaseController {
private MqttGatewayComponent mqttGatewayComponent; private MqttGatewayComponent mqttGatewayComponent;
@Autowired @Autowired
private SConsumerService consumerService; private SConsumerService consumerService;
@Autowired
private SStoreConsumerMapper storeConsumerMapper;
/** /**
...@@ -49,6 +55,13 @@ public class DeviceController extends BaseController { ...@@ -49,6 +55,13 @@ public class DeviceController extends BaseController {
@PostMapping(value = "/openOrClose") @PostMapping(value = "/openOrClose")
public AjaxResult openOrClose(@RequestBody DeviceParamVo deviceParam) { public AjaxResult openOrClose(@RequestBody DeviceParamVo deviceParam) {
SConsumer user = consumerService.getInfo(); SConsumer user = consumerService.getInfo();
if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) {
throw new RuntimeException("当前用户不是店员");
}
List<Long> longs = storeConsumerMapper.selectByConsumerId(user.getId(), PositionEnum.ADMIN.getCode());
if (CollectionUtils.isEmpty(longs)) {
throw new RuntimeException("当前用户不是管理员");
}
// 获取mqtt的topic、payload // 获取mqtt的topic、payload
MqttxVo mqttxVo = mqttxService.openOrCloseDevice(deviceParam.getDevId(), MqttxVo mqttxVo = mqttxService.openOrCloseDevice(deviceParam.getDevId(),
user.getAccount(), deviceParam.getOpType()); user.getAccount(), deviceParam.getOpType());
......
...@@ -4,6 +4,7 @@ import java.util.List; ...@@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
...@@ -21,9 +22,14 @@ import share.common.core.controller.BaseController; ...@@ -21,9 +22,14 @@ import share.common.core.controller.BaseController;
import share.common.core.domain.AjaxResult; import share.common.core.domain.AjaxResult;
import share.common.enums.BusinessType; import share.common.enums.BusinessType;
import share.common.enums.CleaningStatusEnum; import share.common.enums.CleaningStatusEnum;
import share.common.enums.PositionEnum;
import share.common.enums.RoleTypeEnum;
import share.system.domain.SCleanRecords; import share.system.domain.SCleanRecords;
import share.system.domain.SConsumer; import share.system.domain.SConsumer;
import share.system.domain.SStoreConsumer;
import share.system.domain.vo.FrontTokenComponent; import share.system.domain.vo.FrontTokenComponent;
import share.system.domain.vo.SCleanRecordsVo;
import share.system.mapper.SStoreConsumerMapper;
import share.system.service.DeviceOpService; import share.system.service.DeviceOpService;
import share.system.service.ISCleanRecordsService; import share.system.service.ISCleanRecordsService;
import share.common.utils.poi.ExcelUtil; import share.common.utils.poi.ExcelUtil;
...@@ -42,6 +48,8 @@ public class SCleanRecordsController extends BaseController ...@@ -42,6 +48,8 @@ public class SCleanRecordsController extends BaseController
{ {
@Autowired @Autowired
private ISCleanRecordsService sCleanRecordsService; private ISCleanRecordsService sCleanRecordsService;
@Autowired
private SStoreConsumerMapper storeConsumerMapper;
/** /**
* 查询保洁记录列表 * 查询保洁记录列表
...@@ -76,13 +84,9 @@ public class SCleanRecordsController extends BaseController ...@@ -76,13 +84,9 @@ public class SCleanRecordsController extends BaseController
*/ */
@ApiOperation(value = "已开始的保洁记录列表") @ApiOperation(value = "已开始的保洁记录列表")
@GetMapping("/myCleanList") @GetMapping("/myCleanList")
public TableDataInfo myCleanList(SCleanRecords sCleanRecords) public TableDataInfo myCleanList(SCleanRecordsVo sCleanRecords)
{ {
SConsumer user = FrontTokenComponent.getWxSConsumerEntry(); return sCleanRecordsService.myCleanList(sCleanRecords);
sCleanRecords.setConsumerId(user.getId());
startPage();
List<SCleanRecords> list = sCleanRecordsService.myCleanList(sCleanRecords);
return getDataTable(list);
} }
/** /**
...@@ -104,10 +108,6 @@ public class SCleanRecordsController extends BaseController ...@@ -104,10 +108,6 @@ public class SCleanRecordsController extends BaseController
@PostMapping(value = "/startClean") @PostMapping(value = "/startClean")
public AjaxResult startClean(@RequestBody SCleanRecords sCleanRecords) public AjaxResult startClean(@RequestBody SCleanRecords sCleanRecords)
{ {
SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
sCleanRecords.setConsumerId(user.getId());
sCleanRecords.setStartDate(DateUtil.date());
sCleanRecords.setStatus(CleaningStatusEnum.CLEANING.getCode());
return toAjax(sCleanRecordsService.startCleanRecords(sCleanRecords)); return toAjax(sCleanRecordsService.startCleanRecords(sCleanRecords));
} }
...@@ -119,10 +119,7 @@ public class SCleanRecordsController extends BaseController ...@@ -119,10 +119,7 @@ public class SCleanRecordsController extends BaseController
@PostMapping(value = "/endClean") @PostMapping(value = "/endClean")
public AjaxResult endClean(@RequestBody SCleanRecords sCleanRecords) public AjaxResult endClean(@RequestBody SCleanRecords sCleanRecords)
{ {
SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
sCleanRecords.setConsumerId(user.getId());
sCleanRecords.setEndDate(DateUtil.date());
sCleanRecords.setStatus(CleaningStatusEnum.CLEANED.getCode());
return toAjax(sCleanRecordsService.endCleanRecords(sCleanRecords)); return toAjax(sCleanRecordsService.endCleanRecords(sCleanRecords));
} }
......
package share.system.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import share.common.annotation.Excel;
import share.common.core.domain.BaseEntity;
import java.util.List;
@Data
public class SCleanRecordsVo extends BaseEntity {
/**
* 门店ID
*/
private List<Long> storeIds;
/**
* 保洁人员ID
*/
private Long consumerId;
private Integer status;
/**
* 门店名称
*/
private String storeName;
Integer pageNum;
Integer pageSize;
}
...@@ -5,6 +5,7 @@ import java.util.List; ...@@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import share.system.domain.SCleanRecords; import share.system.domain.SCleanRecords;
import share.system.domain.SRoom; import share.system.domain.SRoom;
import share.system.domain.vo.SCleanRecordsVo;
/** /**
* 保洁记录Mapper接口 * 保洁记录Mapper接口
......
...@@ -34,5 +34,7 @@ public interface SStoreConsumerMapper extends BaseMapper<SStoreConsumer> { ...@@ -34,5 +34,7 @@ public interface SStoreConsumerMapper extends BaseMapper<SStoreConsumer> {
public int deleteInfos(@Param("storeId") Long storeId, @Param("consumerIds") Long[] consumerIds); public int deleteInfos(@Param("storeId") Long storeId, @Param("consumerIds") Long[] consumerIds);
List<Long> selectByConsumerId(Long id); List<Long> selectByConsumerId(Long id, Integer position);
List<SStoreConsumer> queryByConsumerId(Long id);
} }
...@@ -4,7 +4,9 @@ import java.util.List; ...@@ -4,7 +4,9 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import share.common.core.page.TableDataInfo;
import share.system.domain.SCleanRecords; import share.system.domain.SCleanRecords;
import share.system.domain.vo.SCleanRecordsVo;
/** /**
* 保洁记录Service接口 * 保洁记录Service接口
...@@ -72,7 +74,7 @@ public interface ISCleanRecordsService extends IService<SCleanRecords> ...@@ -72,7 +74,7 @@ public interface ISCleanRecordsService extends IService<SCleanRecords>
List<SCleanRecords> unCleanList(SCleanRecords sCleanRecords); List<SCleanRecords> unCleanList(SCleanRecords sCleanRecords);
List<SCleanRecords> myCleanList(SCleanRecords sCleanRecords); TableDataInfo myCleanList(SCleanRecordsVo sCleanRecords);
SCleanRecords getByRoomId(Long roomId); SCleanRecords getByRoomId(Long roomId);
......
package share.system.service.impl; package share.system.service.impl;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
...@@ -8,16 +9,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -8,16 +9,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import share.common.constant.Constants; import share.common.constant.Constants;
import share.common.core.page.TableDataInfo;
import share.common.enums.*; import share.common.enums.*;
import share.common.utils.DateUtils; import share.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import share.system.domain.*; import share.system.domain.*;
import share.system.domain.vo.FrontTokenComponent; import share.system.domain.vo.FrontTokenComponent;
import share.system.mapper.SCleanRecordsMapper; import share.system.domain.vo.SCleanRecordsVo;
import share.system.mapper.SConsumerMapper; import share.system.mapper.*;
import share.system.mapper.SRoomMapper;
import share.system.mapper.SStoreMapper;
import share.system.service.DeviceOpService; import share.system.service.DeviceOpService;
import share.system.service.ISCleanRecordsService; import share.system.service.ISCleanRecordsService;
import share.system.service.ISOrderService; import share.system.service.ISOrderService;
...@@ -44,6 +44,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -44,6 +44,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
private DeviceOpService deviceOpService; private DeviceOpService deviceOpService;
@Autowired @Autowired
private ISOrderService orderService; private ISOrderService orderService;
@Autowired
private SStoreConsumerMapper storeConsumerMapper;
//管理员手机号 //管理员手机号
private static final String phone = "13888888888"; private static final String phone = "13888888888";
...@@ -160,11 +162,116 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -160,11 +162,116 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
return baseMapper.unCleanList(sCleanRecords); return baseMapper.unCleanList(sCleanRecords);
} }
// @Override
// public TableDataInfo myCleanList(SCleanRecordsVo sCleanRecords) {
// SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
// sCleanRecords.setConsumerId(user.getId());
// List<SStoreConsumer> sStoreConsumers = storeConsumerMapper.queryByConsumerId(user.getId());
// //保洁的门店id
// List<Long> storeIds = sStoreConsumers.stream().filter(s -> s.getPosition().equals(PositionEnum.CLEANER.getCode())).map(SStoreConsumer::getStoreId).collect(Collectors.toList());
// //管理员的门店id
// List<Long> longList = sStoreConsumers.stream().filter(s -> s.getPosition().equals(PositionEnum.ADMIN.getCode())).map(SStoreConsumer::getStoreId).collect(Collectors.toList());
// LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.in(SCleanRecords::getStoreId,longList);
// List<SCleanRecords> cleanRecordsList = baseMapper.selectList(queryWrapper);
// LambdaQueryWrapper<SCleanRecords> queryWrapper1 = new LambdaQueryWrapper<>();
// queryWrapper1.in(SCleanRecords::getStoreId,storeIds);
// queryWrapper1.eq(SCleanRecords::getConsumerId,user.getId());
// List<SCleanRecords> cleanRecords = baseMapper.selectList(queryWrapper1);
// cleanRecords.stream().forEach(item -> cleanRecordsList.add(item));
// List<SStore> sStoreList = sStoreMapper.selectList(new LambdaQueryWrapper<>());
// List<SRoom> sRoomList = sRoomMapper.selectList(new LambdaQueryWrapper<>());
// cleanRecordsList.stream().forEach(item -> {
// sStoreList.stream().forEach(store -> {
// if (item.getStoreId().equals(store.getId())) {
// item.setsStore(store);
// item.setStoreName(store.getName());
// }
// });
// sRoomList.stream().forEach(room -> {
// if (item.getRoomId().equals(room.getId())) {
// item.setsRoom(room);
// item.setRoomName(room.getName());
// }
// });
// });
// //排序 按照创建时间倒序
// cleanRecordsList.sort(Comparator.comparing(SCleanRecords::getCreateTime).reversed());
// //分页
// List<SCleanRecords> collect = cleanRecordsList.stream().skip((sCleanRecords.getPageNum() - 1) * sCleanRecords.getPageSize()).limit(sCleanRecords.getPageSize()).collect(Collectors.toList());
// TableDataInfo tableDataInfo = new TableDataInfo();
// tableDataInfo.setRows(collect);
// tableDataInfo.setTotal(cleanRecordsList.size());
// tableDataInfo.setCode(200);
// tableDataInfo.setMsg("查询成功");
// return tableDataInfo;
//
// }
@Override @Override
public List<SCleanRecords> myCleanList(SCleanRecords sCleanRecords) { public TableDataInfo myCleanList(SCleanRecordsVo sCleanRecords) {
return baseMapper.myCleanList(sCleanRecords); SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
if (user == null) {
throw new RuntimeException("User not found"); // 或者返回特定的错误响应
}
sCleanRecords.setConsumerId(user.getId());
List<SStoreConsumer> sStoreConsumers = storeConsumerMapper.queryByConsumerId(user.getId());
List<Long> cleanerStoreIds = sStoreConsumers.stream()
.filter(s -> s.getPosition().equals(PositionEnum.CLEANER.getCode()))
.map(SStoreConsumer::getStoreId)
.collect(Collectors.toList());
cleanerStoreIds = Optional.ofNullable(cleanerStoreIds).orElse(Collections.emptyList());
List<Long> adminStoreIds = sStoreConsumers.stream()
.filter(s -> s.getPosition().equals(PositionEnum.ADMIN.getCode()))
.map(SStoreConsumer::getStoreId)
.collect(Collectors.toList());
adminStoreIds = Optional.ofNullable(adminStoreIds).orElse(Collections.emptyList());
LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>();
if (CollectionUtils.isNotEmpty(adminStoreIds)) {
queryWrapper.in(SCleanRecords::getStoreId, adminStoreIds);
}
if (CollectionUtils.isNotEmpty(cleanerStoreIds)) {
queryWrapper.or().in(SCleanRecords::getStoreId, cleanerStoreIds);
queryWrapper.eq(SCleanRecords::getConsumerId, user.getId());
}
List<SCleanRecords> cleanRecordsList = baseMapper.selectList(queryWrapper);
Map<Long, SStore> storeMap = sStoreMapper.selectList(new LambdaQueryWrapper<>()).stream()
.collect(Collectors.toMap(SStore::getId, Function.identity()));
Map<Long, SRoom> roomMap = sRoomMapper.selectList(new LambdaQueryWrapper<>()).stream()
.collect(Collectors.toMap(SRoom::getId, Function.identity()));
cleanRecordsList.forEach(item -> {
SStore store = storeMap.get(item.getStoreId());
if (store != null) {
item.setsStore(store);
item.setStoreName(store.getName());
}
SRoom room = roomMap.get(item.getRoomId());
if (room != null) {
item.setsRoom(room);
item.setRoomName(room.getName());
}
});
cleanRecordsList.sort(Comparator.comparing(SCleanRecords::getCreateTime).reversed());
int start = (sCleanRecords.getPageNum() - 1) * sCleanRecords.getPageSize();
int end = Math.min(start + sCleanRecords.getPageSize(), cleanRecordsList.size());
List<SCleanRecords> pagedList = cleanRecordsList.subList(start, end);
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setRows(pagedList);
tableDataInfo.setTotal(cleanRecordsList.size());
tableDataInfo.setCode(200);
tableDataInfo.setMsg("查询成功");
return tableDataInfo;
} }
@Override @Override
public SCleanRecords getByRoomId(Long roomId) { public SCleanRecords getByRoomId(Long roomId) {
LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper();
...@@ -177,7 +284,11 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -177,7 +284,11 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
public SCleanRecords getByCleanerId() { public SCleanRecords getByCleanerId() {
SConsumer user = FrontTokenComponent.getWxSConsumerEntry(); SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) { if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) {
throw new RuntimeException("当前用户不是保洁人员"); throw new RuntimeException("当前用户不是店员");
}
List<Long> longs = storeConsumerMapper.selectByConsumerId(user.getId(), PositionEnum.CLEANER.getCode());
if (CollectionUtils.isEmpty(longs)) {
throw new RuntimeException("当前用户不是保洁人员");
} }
LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SCleanRecords::getConsumerId,user.getId()); queryWrapper.in(SCleanRecords::getConsumerId,user.getId());
...@@ -233,6 +344,9 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -233,6 +344,9 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
@Override @Override
public int startCleanRecords(SCleanRecords sCleanRecords) { public int startCleanRecords(SCleanRecords sCleanRecords) {
isCleaner(sCleanRecords);
sCleanRecords.setStartDate(DateUtil.date());
sCleanRecords.setStatus(CleaningStatusEnum.CLEANING.getCode());
LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SCleanRecords::getStatus,CleaningStatusEnum.CLEANING.getCode()); queryWrapper.eq(SCleanRecords::getStatus,CleaningStatusEnum.CLEANING.getCode());
queryWrapper.eq(SCleanRecords::getConsumerId,sCleanRecords.getConsumerId()); queryWrapper.eq(SCleanRecords::getConsumerId,sCleanRecords.getConsumerId());
...@@ -291,6 +405,10 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -291,6 +405,10 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
@Override @Override
public int endCleanRecords(SCleanRecords sCleanRecords) { public int endCleanRecords(SCleanRecords sCleanRecords) {
isCleaner(sCleanRecords);
sCleanRecords.setEndDate(DateUtil.date());
sCleanRecords.setStatus(CleaningStatusEnum.CLEANED.getCode());
SCleanRecords records = baseMapper.selectSCleanRecordsById(sCleanRecords.getId()); SCleanRecords records = baseMapper.selectSCleanRecordsById(sCleanRecords.getId());
if (records == null) { if (records == null) {
throw new RuntimeException("当前保洁任务不存在!"); throw new RuntimeException("当前保洁任务不存在!");
...@@ -303,6 +421,18 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -303,6 +421,18 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
return index; return index;
} }
private void isCleaner(SCleanRecords sCleanRecords) {
SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) {
throw new RuntimeException("当前用户不是店员");
}
List<Long> longs = storeConsumerMapper.selectByConsumerId(user.getId(), PositionEnum.CLEANER.getCode());
if (CollectionUtils.isEmpty(longs)) {
throw new RuntimeException("当前用户不是保洁人员");
}
sCleanRecords.setConsumerId(user.getId());
}
private void sendSms(Long storeId,SStore store, SRoom room) { private void sendSms(Long storeId,SStore store, SRoom room) {
sConsumerMapper.selectListByStoreId(storeId).stream().forEach(item -> { sConsumerMapper.selectListByStoreId(storeId).stream().forEach(item -> {
// 循环发送短信提示门店保洁打扫卫生 // 循环发送短信提示门店保洁打扫卫生
......
...@@ -10,6 +10,7 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -10,6 +10,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import share.common.enums.DeviceType; import share.common.enums.DeviceType;
import share.common.enums.PositionEnum;
import share.common.enums.RoleTypeEnum; import share.common.enums.RoleTypeEnum;
import share.common.enums.YesNoEnum; import share.common.enums.YesNoEnum;
import share.common.exception.base.BaseException; import share.common.exception.base.BaseException;
...@@ -23,6 +24,7 @@ import share.system.domain.vo.RoomStatusVo; ...@@ -23,6 +24,7 @@ import share.system.domain.vo.RoomStatusVo;
import share.system.domain.vo.SRoomVo; import share.system.domain.vo.SRoomVo;
import share.system.mapper.DeviceMapper; import share.system.mapper.DeviceMapper;
import share.system.mapper.SRoomMapper; import share.system.mapper.SRoomMapper;
import share.system.mapper.SStoreConsumerMapper;
import share.system.service.*; import share.system.service.*;
/** /**
...@@ -52,6 +54,8 @@ public class SRoomServiceImpl extends ServiceImpl<SRoomMapper, SRoom> implements ...@@ -52,6 +54,8 @@ public class SRoomServiceImpl extends ServiceImpl<SRoomMapper, SRoom> implements
private DeviceOpService deviceOpService; private DeviceOpService deviceOpService;
@Autowired @Autowired
private RoomStatusService roomStatusService; private RoomStatusService roomStatusService;
@Autowired
private SStoreConsumerMapper storeConsumerMapper;
/** /**
...@@ -281,6 +285,10 @@ public class SRoomServiceImpl extends ServiceImpl<SRoomMapper, SRoom> implements ...@@ -281,6 +285,10 @@ public class SRoomServiceImpl extends ServiceImpl<SRoomMapper, SRoom> implements
public String openDoor(Long id) { public String openDoor(Long id) {
SConsumer user = FrontTokenComponent.getWxSConsumerEntry(); SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) { if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) {
throw new RuntimeException("当前用户不是店员");
}
List<Long> longs = storeConsumerMapper.selectByConsumerId(user.getId(), PositionEnum.CLEANER.getCode());
if (CollectionUtils.isEmpty(longs)) {
throw new RuntimeException("当前用户不是保洁人员"); throw new RuntimeException("当前用户不是保洁人员");
} }
SRoom room = baseMapper.selectById(id); SRoom room = baseMapper.selectById(id);
......
...@@ -368,10 +368,12 @@ public class SStoreServiceImpl extends ServiceImpl<SStoreMapper, SStore> impleme ...@@ -368,10 +368,12 @@ public class SStoreServiceImpl extends ServiceImpl<SStoreMapper, SStore> impleme
public List<SStore> listVoByCleaner() { public List<SStore> listVoByCleaner() {
SConsumer user = FrontTokenComponent.getWxSConsumerEntry(); SConsumer user = FrontTokenComponent.getWxSConsumerEntry();
if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) { if (!user.getRoleType().equals(RoleTypeEnum.CLEANER.getCode())) {
throw new BaseException("当前用户不是保洁人员!"); throw new BaseException("当前用户不是店员!");
}
List<Long> storeIdList = storeConsumerMapper.selectByConsumerId(user.getId(), PositionEnum.CLEANER.getCode());
if (CollectionUtils.isEmpty(storeIdList)) {
throw new RuntimeException("当前用户不是保洁人员");
} }
//查询保洁人员所属门店
List<Long> storeIdList = storeConsumerMapper.selectByConsumerId(user.getId());
List<SStore> storeList = new ArrayList<>(); List<SStore> storeList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(storeIdList)) { if (CollectionUtils.isNotEmpty(storeIdList)) {
// 查询门店信息 // 查询门店信息
......
...@@ -21,7 +21,14 @@ ...@@ -21,7 +21,14 @@
select store_id select store_id
from s_store_consumer from s_store_consumer
where consumer_id = #{consumerId} where consumer_id = #{consumerId}
and position = '1' <if test="position != null">
and position = #{position}
</if>
</select>
<select id="queryByConsumerId" resultMap="SStoreConsumerResult">
select store_id, store_id, position
from s_store_consumer
where consumer_id = #{consumerId}
</select> </select>
<delete id="deleteSStoreConsumer" parameterType="Long"> <delete id="deleteSStoreConsumer" parameterType="Long">
......
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