对比新文件 |
| | |
| | | package com.gk.firework.Service.ServiceImpl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.OrderItem; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.gk.firework.Domain.ControlPrintParam; |
| | | import com.gk.firework.Domain.Exception.BusinessException; |
| | | import com.gk.firework.Domain.UserInfo; |
| | | import com.gk.firework.Domain.Utils.PageInfo; |
| | | import com.gk.firework.Domain.Utils.StringUtils; |
| | | import com.gk.firework.Mapper.ControlPrintParamMapper; |
| | | import com.gk.firework.Service.ControlPrintParamService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class ControlPrintParamServiceImpl extends ServiceImpl<ControlPrintParamMapper, ControlPrintParam> implements ControlPrintParamService { |
| | | @Autowired |
| | | ControlPrintParamMapper controlPrintParamMapper; |
| | | |
| | | private static final String defaultSettingsOwner = "admin"; |
| | | //内包装设置 |
| | | private static final byte inner = 1; |
| | | //外包装设置 |
| | | private static final byte outer = 2; |
| | | |
| | | @Override |
| | | public ControlPrintParam getParamsByUser(UserInfo userInfo, byte type) { |
| | | LambdaQueryWrapper<ControlPrintParam> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(ControlPrintParam::getOwner,userInfo.getUsername()); |
| | | wrapper.eq(ControlPrintParam::getType,type); |
| | | ControlPrintParam controlPrintParam = baseMapper.selectOne(wrapper); |
| | | if (controlPrintParam == null){ |
| | | wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(ControlPrintParam::getOwner,"admin"); |
| | | wrapper.eq(ControlPrintParam::getType,type); |
| | | } |
| | | return baseMapper.selectOne(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void selectDataGrid(PageInfo pageInfo) { |
| | | Page<ControlPrintParam> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize()); |
| | | List<OrderItem> orderItems = new ArrayList<>(); |
| | | OrderItem orderItem = new OrderItem(); |
| | | if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) { |
| | | orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending")); |
| | | orderItem.setColumn(pageInfo.getSort()); |
| | | }else { |
| | | orderItem.setAsc(false); |
| | | orderItem.setColumn("id"); |
| | | } |
| | | orderItems.add(orderItem); |
| | | page.setOrders(orderItems); |
| | | List<ControlPrintParam> res = controlPrintParamMapper.selectDataGrid(page,pageInfo.getCondition()); |
| | | //没有配置就返回默认配置 |
| | | List<ControlPrintParam> settings = new ArrayList<>(res); |
| | | boolean flag = pageInfo.getCondition().get("enterprisename") == null && |
| | | pageInfo.getCondition().get("type") == null; |
| | | //默认内包装 |
| | | if (flag && settings.stream().filter(item -> item.getType() == inner).count() < 1) { |
| | | settings.addAll(this.selectDefaultSettings(inner,defaultSettingsOwner)); |
| | | page.setTotal(page.getTotal() + 1); |
| | | } |
| | | //默认外包装 |
| | | if (flag && settings.stream().filter(item -> item.getType() == outer).count() < 1) { |
| | | settings.addAll(this.selectDefaultSettings(outer,defaultSettingsOwner)); |
| | | page.setTotal(page.getTotal() + 1); |
| | | } |
| | | pageInfo.setResult(settings); |
| | | pageInfo.setTotalCount(page.getTotal()); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取内外包装默认设置,owner为admin |
| | | * @param type 类型 null 查询所有 |
| | | * @date 2022/2/9 16:32 |
| | | */ |
| | | @Override |
| | | public List<ControlPrintParam> selectDefaultSettings(Byte type,String owner) { |
| | | return controlPrintParamMapper.selectList( |
| | | new LambdaQueryWrapper<ControlPrintParam>() |
| | | .eq(ControlPrintParam::getOwner, owner) |
| | | .eq(ControlPrintParam::getType,type)); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 查找自己的type方案 |
| | | * @date 2022/2/11 14:02 |
| | | */ |
| | | @Override |
| | | public ControlPrintParam getOwnSelectType(Byte type, UserInfo user) { |
| | | if (type == null) throw new BusinessException("参数不能为空"); |
| | | List<ControlPrintParam> ownType = this.selectDefaultSettings(type, user.getUsername()); |
| | | if (ownType.size() > 1) throw new BusinessException("配置重复,请检查数据"); |
| | | //没有配置返回默认配置 |
| | | ControlPrintParam param = new ControlPrintParam(); |
| | | param.setType(type); |
| | | if (ownType.size() == 0) { |
| | | List<ControlPrintParam> defaultSettings = this.selectDefaultSettings(type, defaultSettingsOwner); |
| | | if (defaultSettings.size() > 0) param = defaultSettings.get(0); |
| | | } |
| | | if (ownType.size() == 1) { |
| | | param = ownType.get(0); |
| | | } |
| | | |
| | | return param; |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @Description: 新增配置方案 |
| | | * @date 2022/2/11 16:17 |
| | | */ |
| | | @Override |
| | | public void addOrUpdateControlParams(ControlPrintParam controlPrintParam,UserInfo userInfo) { |
| | | |
| | | Long id = controlPrintParam.getId(); |
| | | if (id == null) { |
| | | controlPrintParam.setOwner(userInfo.getUsername()); |
| | | this.save(controlPrintParam); |
| | | } else{ |
| | | if (userInfo.getUsername().equals(controlPrintParam.getOwner())) { |
| | | this.updateById(controlPrintParam); |
| | | }else{ |
| | | if (userInfo.getType() != 1) |
| | | controlPrintParam.setOwner(userInfo.getUsername()); |
| | | this.save(controlPrintParam); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * @Description: 更新配置方案 |
| | | * @date 2022/2/11 17:30 |
| | | */ |
| | | @Override |
| | | public void updateControlParams(ControlPrintParam controlPrintParam, UserInfo user) { |
| | | |
| | | Long id = controlPrintParam.getId(); |
| | | if (id == null) throw new BusinessException("参数不能为空"); |
| | | controlPrintParam.setOwner(null); |
| | | controlPrintParam.setType(null); |
| | | this.updateById(controlPrintParam); |
| | | } |
| | | |
| | | } |