package com.doumee.service.business.impl;
|
|
import com.doumee.core.constants.Constants;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.dao.business.ReceiveWeightMapper;
|
import com.doumee.dao.business.model.Category;
|
import com.doumee.dao.business.model.ReceiveWeight;
|
import com.doumee.dao.system.model.SystemUser;
|
import com.doumee.service.business.ReceiveWeightService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import org.apache.shiro.SecurityUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* 接单权重配置表Service实现
|
* @author 江蹄蹄
|
* @date 2025/07/09 12:00
|
*/
|
@Service
|
public class ReceiveWeightServiceImpl implements ReceiveWeightService {
|
|
@Autowired
|
private ReceiveWeightMapper receiveWeightMapper;
|
|
@Override
|
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
|
public Integer create(ReceiveWeight receiveWeight) {
|
if(Objects.isNull(receiveWeight)
|
|| Objects.isNull(receiveWeight.getReceiveMin())
|
|| Objects.isNull(receiveWeight.getReceiveMax())
|
|| Objects.isNull(receiveWeight.getLevel())
|
|| Objects.isNull(receiveWeight.getDelayTime())
|
|| receiveWeight.getLevel() < 1 || receiveWeight.getLevel() > 10
|
){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
receiveWeight.setCreateTime(new Date());
|
receiveWeight.setCreateUser(loginUserInfo.getId());
|
receiveWeight.setUpdateTime(receiveWeight.getCreateTime());
|
receiveWeight.setUpdateUser(loginUserInfo.getId());
|
receiveWeight.setDeleted(Constants.ZERO);
|
//查询优先级是否已存在
|
if(receiveWeightMapper.selectCount(new QueryWrapper<ReceiveWeight>().lambda()
|
.eq(ReceiveWeight::getDeleted,Constants.ZERO).eq(ReceiveWeight::getLevel,receiveWeight.getLevel()))>Constants.ZERO){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"优先级已存在");
|
}
|
receiveWeightMapper.insert(receiveWeight);
|
return receiveWeight.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
receiveWeightMapper.update(new UpdateWrapper<ReceiveWeight>().lambda().set(ReceiveWeight::getDeleted,Constants.ONE).eq(ReceiveWeight::getId,id));
|
}
|
|
@Override
|
public void delete(ReceiveWeight receiveWeight) {
|
UpdateWrapper<ReceiveWeight> deleteWrapper = new UpdateWrapper<>(receiveWeight);
|
receiveWeightMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
receiveWeightMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
|
public void updateById(ReceiveWeight receiveWeight) {
|
if(Objects.isNull(receiveWeight)
|
|| Objects.isNull(receiveWeight.getId())
|
|| Objects.isNull(receiveWeight.getReceiveMin())
|
|| Objects.isNull(receiveWeight.getReceiveMax())
|
|| Objects.isNull(receiveWeight.getLevel())
|
|| Objects.isNull(receiveWeight.getDelayTime())
|
|| receiveWeight.getLevel() < 1 || receiveWeight.getLevel() > 10
|
){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
receiveWeight.setUpdateTime(receiveWeight.getCreateTime());
|
receiveWeight.setUpdateUser(loginUserInfo.getId());
|
receiveWeight.setDeleted(Constants.ZERO);
|
//查询优先级是否已存在
|
if(receiveWeightMapper.selectCount(new QueryWrapper<ReceiveWeight>().lambda().ne(ReceiveWeight::getId,receiveWeight.getId())
|
.eq(ReceiveWeight::getDeleted,Constants.ZERO).eq(ReceiveWeight::getLevel,receiveWeight.getLevel()))>Constants.ZERO){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"优先级已存在");
|
}
|
receiveWeightMapper.updateById(receiveWeight);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<ReceiveWeight> receiveWeights) {
|
if (CollectionUtils.isEmpty(receiveWeights)) {
|
return;
|
}
|
for (ReceiveWeight receiveWeight: receiveWeights) {
|
this.updateById(receiveWeight);
|
}
|
}
|
|
@Override
|
public ReceiveWeight findById(Integer id) {
|
return receiveWeightMapper.selectById(id);
|
}
|
|
@Override
|
public ReceiveWeight findOne(ReceiveWeight receiveWeight) {
|
QueryWrapper<ReceiveWeight> wrapper = new QueryWrapper<>(receiveWeight);
|
return receiveWeightMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<ReceiveWeight> findList(ReceiveWeight receiveWeight) {
|
QueryWrapper<ReceiveWeight> wrapper = new QueryWrapper<>(receiveWeight);
|
return receiveWeightMapper.selectList(wrapper);
|
}
|
|
@Override
|
public PageData<ReceiveWeight> findPage(PageWrap<ReceiveWeight> pageWrap) {
|
IPage<ReceiveWeight> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
MPJLambdaWrapper<ReceiveWeight> queryWrapper = new MPJLambdaWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
queryWrapper.selectAll(ReceiveWeight.class)
|
.selectAs(SystemUser::getRealname,ReceiveWeight::getUpdateUserName)
|
.leftJoin(SystemUser.class,SystemUser::getId,ReceiveWeight::getUpdateUser)
|
.eq(ReceiveWeight::getDeleted,Constants.ZERO)
|
.orderByDesc(ReceiveWeight::getLevel);
|
PageData<ReceiveWeight> result =PageData.from(receiveWeightMapper.selectJoinPage(page, ReceiveWeight.class,queryWrapper));
|
return result;
|
}
|
|
@Override
|
public long count(ReceiveWeight receiveWeight) {
|
QueryWrapper<ReceiveWeight> wrapper = new QueryWrapper<>(receiveWeight);
|
return receiveWeightMapper.selectCount(wrapper);
|
}
|
}
|