master:档口工厂功能添加;

pull/1121/head
liujiang 2025-04-03 23:04:28 +08:00
parent fe025753ab
commit b5760dba78
10 changed files with 335 additions and 84 deletions

View File

@ -1,15 +1,25 @@
package com.ruoyi.web.controller.xkt;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.XktBaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.Page;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.web.controller.xkt.vo.storeFactory.StoreFactoryPageVO;
import com.ruoyi.web.controller.xkt.vo.storeFactory.StoreFactoryVO;
import com.ruoyi.xkt.domain.StoreFactory;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryDTO;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryPageDTO;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryResDTO;
import com.ruoyi.xkt.service.IStoreFactoryService;
import org.springframework.beans.factory.annotation.Autowired;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@ -21,23 +31,62 @@ import java.util.List;
* @author ruoyi
* @date 2025-03-26
*/
@Api(tags = "档口合作工厂")
@RestController
@RequiredArgsConstructor
@RequestMapping("/rest/v1/store-factories")
public class StoreFactoryController extends XktBaseController {
@Autowired
private IStoreFactoryService storeFactoryService;
final IStoreFactoryService storeFactoryService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:add')")
@ApiOperation(value = "新增档口合作工厂", httpMethod = "POST", response = R.class)
@Log(title = "新增档口合作工厂", businessType = BusinessType.INSERT)
@PostMapping
public R<Integer> add(@Validated @RequestBody StoreFactoryVO storeFactoryVO) {
return R.ok(storeFactoryService.insertStoreFactory(BeanUtil.toBean(storeFactoryVO, StoreFactoryDTO.class)));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:edit')")
@ApiOperation(value = "修改档口合作工厂", httpMethod = "PUT", response = R.class)
@Log(title = "修改档口合作工厂", businessType = BusinessType.UPDATE)
@PutMapping
public R edit(@Validated @RequestBody StoreFactoryVO storeFactoryVO) {
return R.ok(storeFactoryService.updateStoreFactory(BeanUtil.toBean(storeFactoryVO, StoreFactoryDTO.class)));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:list')")
@GetMapping("/list")
public TableDataInfo list(StoreFactory storeFactory) {
startPage();
List<StoreFactory> list = storeFactoryService.selectStoreFactoryList(storeFactory);
return getDataTable(list);
@PreAuthorize("@ss.hasPermi('system:customer:list')")
@ApiOperation(value = "查询档口合作工厂列表", httpMethod = "POST", response = R.class)
@PostMapping("/page")
public R<Page<StoreFactoryResDTO>> selectPage(@Validated @RequestBody StoreFactoryPageVO pageVO) {
return R.ok(storeFactoryService.selectFactoryPage(BeanUtil.toBean(pageVO, StoreFactoryPageDTO.class)));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:query')")
@ApiOperation(value = "获取档口合作工厂详细信息", httpMethod = "GET", response = R.class)
@GetMapping(value = "/{storeId}/{storeFactoryId}")
public R<StoreFactoryVO> getInfo(@PathVariable("storeId") Long storeId, @PathVariable("storeFactoryId") Long storeFactoryId) {
StoreFactoryResDTO res = storeFactoryService.selectByStoreFacId(storeId ,storeFactoryId);
return ObjectUtils.isEmpty(res) ? R.ok() : R.ok(BeanUtil.toBean(res, StoreFactoryVO.class));
}
/**
*
*/
@ -50,42 +99,4 @@ public class StoreFactoryController extends XktBaseController {
util.exportExcel(response, list, "档口合作工厂数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:query')")
@GetMapping(value = "/{storeFacId}")
public R getInfo(@PathVariable("storeFacId") Long storeFacId) {
return success(storeFactoryService.selectStoreFactoryByStoreFacId(storeFacId));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:add')")
@Log(title = "档口合作工厂", businessType = BusinessType.INSERT)
@PostMapping
public R add(@RequestBody StoreFactory storeFactory) {
return success(storeFactoryService.insertStoreFactory(storeFactory));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:edit')")
@Log(title = "档口合作工厂", businessType = BusinessType.UPDATE)
@PutMapping
public R edit(@RequestBody StoreFactory storeFactory) {
return success(storeFactoryService.updateStoreFactory(storeFactory));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:factory:remove')")
@Log(title = "档口合作工厂", businessType = BusinessType.DELETE)
@DeleteMapping("/{storeFacIds}")
public R remove(@PathVariable Long[] storeFacIds) {
return success(storeFactoryService.deleteStoreFactoryByStoreFacIds(storeFacIds));
}
}

View File

@ -0,0 +1,27 @@
package com.ruoyi.web.controller.xkt.vo.storeFactory;
import com.ruoyi.web.controller.xkt.vo.BasePageVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@EqualsAndHashCode(callSuper = true)
@ApiModel("档口工厂分页查询入参")
@Data
public class StoreFactoryPageVO extends BasePageVO {
@ApiModelProperty(name = "工厂名称")
private String facName;
@ApiModelProperty(name = "档口ID")
@NotNull(message = "档口ID不能为空")
private Long storeId;
}

View File

@ -0,0 +1,36 @@
package com.ruoyi.web.controller.xkt.vo.storeFactory;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@ApiModel("档口工厂")
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class StoreFactoryVO {
@ApiModelProperty(name = "档口ID")
@NotNull(message = "档口ID不能为空!")
private Long storeId;
@ApiModelProperty(name = "档口工厂ID", notes = "新增不传 编辑必传")
private Long storeFactoryId;
@NotBlank(message = "工厂名称不能为空!")
@ApiModelProperty(name = "工厂名称")
private String facName;
@ApiModelProperty(name = "工厂地址")
private String facAddress;
@ApiModelProperty(name = "工厂联系电话")
private String facPhone;
@ApiModelProperty("备注")
private String remark;
}

View File

@ -64,7 +64,7 @@ public class SysLoginService
public String login(String username, String password, String code, String uuid)
{
// 验证码校验
validateCaptcha(username, code, uuid);
// validateCaptcha(username, code, uuid);
// 登录前置校验
loginPreCheck(username, password);
// 用户验证

View File

@ -49,6 +49,11 @@ public class StoreFactory extends XktBaseEntity {
@Excel(name = "工厂联系电话")
private String facPhone;
/**
*
*/
private String remark;
/**
*
*/

View File

@ -0,0 +1,34 @@
package com.ruoyi.xkt.dto.storeFactory;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@ApiModel("档口工厂")
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class StoreFactoryDTO {
@ApiModelProperty(name = "档口ID")
private Long storeId;
@ApiModelProperty(name = "档口工厂ID")
private Long storeFactoryId;
@ApiModelProperty(name = "工厂名称")
private String facName;
@ApiModelProperty(name = "工厂地址")
private String facAddress;
@ApiModelProperty(name = "工厂联系电话")
private String facPhone;
@ApiModelProperty("备注")
private String remark;
}

View File

@ -0,0 +1,27 @@
package com.ruoyi.xkt.dto.storeFactory;
import com.ruoyi.xkt.dto.BasePageDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@EqualsAndHashCode(callSuper = true)
@ApiModel("档口工厂分页查询入参")
@Data
public class StoreFactoryPageDTO extends BasePageDTO {
@ApiModelProperty(name = "工厂名称")
private String facName;
@ApiModelProperty(name = "档口ID")
@NotNull(message = "档口ID不能为空")
private Long storeId;
}

View File

@ -0,0 +1,39 @@
package com.ruoyi.xkt.dto.storeFactory;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@ApiModel("档口合作工厂数据")
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class StoreFactoryResDTO {
@ApiModelProperty(name = "档口工厂ID")
@JsonProperty("storeFactoryId")
private Long id;
@ApiModelProperty(name = "store.id")
private Long storeId;
@ApiModelProperty(name = "工厂名称")
private String facName;
@ApiModelProperty(name = "工厂地址")
private String facAddress;
@ApiModelProperty(name = "工厂联系电话")
private String facPhone;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}

View File

@ -1,6 +1,10 @@
package com.ruoyi.xkt.service;
import com.ruoyi.common.core.page.Page;
import com.ruoyi.xkt.domain.StoreFactory;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryDTO;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryPageDTO;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryResDTO;
import java.util.List;
@ -14,10 +18,11 @@ public interface IStoreFactoryService {
/**
*
*
* @param storeId ID
* @param storeFacId
* @return
*/
public StoreFactory selectStoreFactoryByStoreFacId(Long storeFacId);
public StoreFactoryResDTO selectByStoreFacId(Long storeId, Long storeFacId);
/**
*
@ -30,18 +35,18 @@ public interface IStoreFactoryService {
/**
*
*
* @param storeFactory
* @param storeFactoryDTO
* @return
*/
public int insertStoreFactory(StoreFactory storeFactory);
public int insertStoreFactory(StoreFactoryDTO storeFactoryDTO);
/**
*
*
* @param storeFactory
* @param storeFactoryDTO
* @return
*/
public int updateStoreFactory(StoreFactory storeFactory);
public int updateStoreFactory(StoreFactoryDTO storeFactoryDTO);
/**
*
@ -58,4 +63,13 @@ public interface IStoreFactoryService {
* @return
*/
public int deleteStoreFactoryByStoreFacId(Long storeFacId);
/**
*
*
* @param pageDTO DTO
* @return
*/
Page<StoreFactoryResDTO> selectFactoryPage(StoreFactoryPageDTO pageDTO);
}

View File

@ -1,14 +1,26 @@
package com.ruoyi.xkt.service.impl;
import com.ruoyi.common.utils.DateUtils;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.page.Page;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.xkt.domain.StoreFactory;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryDTO;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryPageDTO;
import com.ruoyi.xkt.dto.storeFactory.StoreFactoryResDTO;
import com.ruoyi.xkt.mapper.StoreFactoryMapper;
import com.ruoyi.xkt.service.IStoreFactoryService;
import org.springframework.beans.factory.annotation.Autowired;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
/**
* Service
@ -17,9 +29,66 @@ import java.util.List;
* @date 2025-03-26
*/
@Service
@RequiredArgsConstructor
public class StoreFactoryServiceImpl implements IStoreFactoryService {
@Autowired
private StoreFactoryMapper storeFactoryMapper;
final StoreFactoryMapper storeFactoryMapper;
/**
*
*
* @param storeFactoryDTO
* @return
*/
@Override
@Transactional
public int insertStoreFactory(StoreFactoryDTO storeFactoryDTO) {
StoreFactory storeFactory = BeanUtil.toBean(storeFactoryDTO, StoreFactory.class);
return storeFactoryMapper.insert(storeFactory);
}
/**
*
*
* @param storeFactoryDTO
* @return
*/
@Override
@Transactional
public int updateStoreFactory(StoreFactoryDTO storeFactoryDTO) {
if (ObjectUtils.isEmpty(storeFactoryDTO.getStoreFactoryId())) {
throw new ServiceException("storeFactoryId不可为空!", HttpStatus.ERROR);
}
StoreFactory storeFactory = Optional.ofNullable(this.storeFactoryMapper.selectOne(new LambdaQueryWrapper<StoreFactory>()
.eq(StoreFactory::getId, storeFactoryDTO.getStoreFactoryId()).eq(StoreFactory::getDelFlag, "0")))
.orElseThrow(() -> new ServiceException("档口合作工厂不存在!", HttpStatus.ERROR));
BeanUtil.copyProperties(storeFactoryDTO, storeFactory);
return storeFactoryMapper.updateById(storeFactory);
}
/**
* selectFactoryPage
*
* @param pageDTO ID
* @return
*/
@Override
@Transactional(readOnly = true)
public Page<StoreFactoryResDTO> selectFactoryPage(StoreFactoryPageDTO pageDTO) {
// 创建查询条件对象用于构建SQL查询语句
LambdaQueryWrapper<StoreFactory> queryWrapper = new LambdaQueryWrapper<StoreFactory>()
.eq(StoreFactory::getStoreId, pageDTO.getStoreId()).eq(StoreFactory::getDelFlag, "0");
// 如果工厂名称不为空,则添加模糊查询条件
if (StringUtils.isNotBlank(pageDTO.getFacName())) {
queryWrapper.like(StoreFactory::getFacName, pageDTO.getFacName());
}
// 启用MyBatis分页插件设置当前页码和页面大小
PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize());
// 执行查询,获取工厂列表
List<StoreFactory> list = this.storeFactoryMapper.selectList(queryWrapper);
// 将查询结果转换为分页信息对象并将工厂信息列表转换为DTO列表返回
return Page.convert(new PageInfo<>(list), BeanUtil.copyToList(list, StoreFactoryResDTO.class));
}
/**
*
@ -29,10 +98,20 @@ public class StoreFactoryServiceImpl implements IStoreFactoryService {
*/
@Override
@Transactional(readOnly = true)
public StoreFactory selectStoreFactoryByStoreFacId(Long storeFacId) {
return storeFactoryMapper.selectStoreFactoryByStoreFacId(storeFacId);
public StoreFactoryResDTO selectByStoreFacId(Long storeId, Long storeFacId) {
StoreFactory storeFactory = Optional.ofNullable(this.storeFactoryMapper.selectOne(new LambdaQueryWrapper<StoreFactory>()
.eq(StoreFactory::getId, storeFacId).eq(StoreFactory::getDelFlag, "0").eq(StoreFactory::getStoreId, storeId)))
.orElseThrow(() -> new ServiceException("档口合作工厂不存在!", HttpStatus.ERROR));
return BeanUtil.toBean(storeFactory, StoreFactoryResDTO.class);
}
/**
*
*
@ -45,31 +124,8 @@ public class StoreFactoryServiceImpl implements IStoreFactoryService {
return storeFactoryMapper.selectStoreFactoryList(storeFactory);
}
/**
*
*
* @param storeFactory
* @return
*/
@Override
@Transactional
public int insertStoreFactory(StoreFactory storeFactory) {
storeFactory.setCreateTime(DateUtils.getNowDate());
return storeFactoryMapper.insertStoreFactory(storeFactory);
}
/**
*
*
* @param storeFactory
* @return
*/
@Override
@Transactional
public int updateStoreFactory(StoreFactory storeFactory) {
storeFactory.setUpdateTime(DateUtils.getNowDate());
return storeFactoryMapper.updateStoreFactory(storeFactory);
}
/**
*
@ -94,4 +150,6 @@ public class StoreFactoryServiceImpl implements IStoreFactoryService {
public int deleteStoreFactoryByStoreFacId(Long storeFacId) {
return storeFactoryMapper.deleteStoreFactoryByStoreFacId(storeFacId);
}
}