公司信息管理

main
hehang 9 months ago
parent f27ee2a5bf
commit 4eaab3208f
  1. 2
      website-module-system/website-module-system-api/src/main/java/com/cjy/website/module/system/enums/ErrorCodeConstants.java
  2. 97
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/controller/admin/companyinfo/CompanyInfoController.java
  3. 37
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/controller/admin/companyinfo/vo/CompanyInfoPageReqVO.java
  4. 43
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/controller/admin/companyinfo/vo/CompanyInfoRespVO.java
  5. 30
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/controller/admin/companyinfo/vo/CompanyInfoSaveReqVO.java
  6. 51
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/dal/dataobject/companyinfo/CompanyInfoDO.java
  7. 31
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/dal/mysql/companyinfo/CompanyInfoMapper.java
  8. 56
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/service/companyinfo/CompanyInfoService.java
  9. 73
      website-module-system/website-module-system-biz/src/main/java/com/cjy/website/module/system/service/companyinfo/CompanyInfoServiceImpl.java
  10. 12
      website-module-system/website-module-system-biz/src/main/resources/mapper/companyinfo/CompanyInfoMapper.xml

@ -166,4 +166,6 @@ public interface ErrorCodeConstants {
ErrorCode COLUMN_INFO_NOT_EXISTS = new ErrorCode(1001, "栏目管理不存在");
ErrorCode COMPANY_INFO_NOT_EXISTS = new ErrorCode(1002, "公司信息不存在");
}

@ -0,0 +1,97 @@
package com.cjy.website.module.system.controller.admin.companyinfo;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoPageReqVO;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoRespVO;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoSaveReqVO;
import com.cjy.website.module.system.dal.dataobject.companyinfo.CompanyInfoDO;
import com.cjy.website.module.system.service.companyinfo.CompanyInfoService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.cjy.website.framework.common.pojo.PageParam;
import com.cjy.website.framework.common.pojo.PageResult;
import com.cjy.website.framework.common.pojo.CommonResult;
import com.cjy.website.framework.common.util.object.BeanUtils;
import static com.cjy.website.framework.common.pojo.CommonResult.success;
import com.cjy.website.framework.excel.core.util.ExcelUtils;
import com.cjy.website.framework.apilog.core.annotation.ApiAccessLog;
import static com.cjy.website.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 公司信息")
@RestController
@RequestMapping("/cjy/company-info")
@Validated
public class CompanyInfoController {
@Resource
private CompanyInfoService companyInfoService;
@PostMapping("/create")
@Operation(summary = "创建公司信息")
@PreAuthorize("@ss.hasPermission('cjy:company-info:create')")
public CommonResult<Integer> createCompanyInfo(@Valid @RequestBody CompanyInfoSaveReqVO createReqVO) {
return success(companyInfoService.createCompanyInfo(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新公司信息")
@PreAuthorize("@ss.hasPermission('cjy:company-info:update')")
public CommonResult<Boolean> updateCompanyInfo(@Valid @RequestBody CompanyInfoSaveReqVO updateReqVO) {
companyInfoService.updateCompanyInfo(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除公司信息")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('cjy:company-info:delete')")
public CommonResult<Boolean> deleteCompanyInfo(@RequestParam("id") Integer id) {
companyInfoService.deleteCompanyInfo(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得公司信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('cjy:company-info:query')")
public CommonResult<CompanyInfoRespVO> getCompanyInfo(@RequestParam("id") Integer id) {
CompanyInfoDO companyInfo = companyInfoService.getCompanyInfo(id);
return success(BeanUtils.toBean(companyInfo, CompanyInfoRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得公司信息分页")
@PreAuthorize("@ss.hasPermission('cjy:company-info:query')")
public CommonResult<PageResult<CompanyInfoRespVO>> getCompanyInfoPage(@Valid CompanyInfoPageReqVO pageReqVO) {
PageResult<CompanyInfoDO> pageResult = companyInfoService.getCompanyInfoPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, CompanyInfoRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出公司信息 Excel")
@PreAuthorize("@ss.hasPermission('cjy:company-info:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportCompanyInfoExcel(@Valid CompanyInfoPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<CompanyInfoDO> list = companyInfoService.getCompanyInfoPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "公司信息.xls", "数据", CompanyInfoRespVO.class,
BeanUtils.toBean(list, CompanyInfoRespVO.class));
}
}

@ -0,0 +1,37 @@
package com.cjy.website.module.system.controller.admin.companyinfo.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.cjy.website.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.cjy.website.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 公司信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CompanyInfoPageReqVO extends PageParam {
@Schema(description = "公司网址", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "公司地址")
private String address;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "二维码")
private String qrCode;
@Schema(description = "公司logo")
private String logo;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,43 @@
package com.cjy.website.module.system.controller.admin.companyinfo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 公司信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class CompanyInfoRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13896")
@ExcelProperty("主键")
private Integer id;
@Schema(description = "公司网址", example = "https://www.iocoder.cn")
@ExcelProperty("公司网址")
private String url;
@Schema(description = "公司地址")
@ExcelProperty("公司地址")
private String address;
@Schema(description = "联系电话")
@ExcelProperty("联系电话")
private String phone;
@Schema(description = "二维码")
@ExcelProperty("二维码")
private String qrCode;
@Schema(description = "公司logo")
@ExcelProperty("公司logo")
private String logo;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,30 @@
package com.cjy.website.module.system.controller.admin.companyinfo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 公司信息新增/修改 Request VO")
@Data
public class CompanyInfoSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13896")
private Integer id;
@Schema(description = "公司网址", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "公司地址")
private String address;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "二维码")
private String qrCode;
@Schema(description = "公司logo")
private String logo;
}

@ -0,0 +1,51 @@
package com.cjy.website.module.system.dal.dataobject.companyinfo;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.cjy.website.framework.mybatis.core.dataobject.BaseDO;
/**
* 公司信息 DO
*
* @author 芋道源码
*/
@TableName("cjy_company_info")
@KeySequence("cjy_company_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CompanyInfoDO extends BaseDO {
/**
* 主键
*/
@TableId
private Integer id;
/**
* 公司网址
*/
private String url;
/**
* 公司地址
*/
private String address;
/**
* 联系电话
*/
private String phone;
/**
* 二维码
*/
private String qrCode;
/**
* 公司logo
*/
private String logo;
}

@ -0,0 +1,31 @@
package com.cjy.website.module.system.dal.mysql.companyinfo;
import java.util.*;
import com.cjy.website.framework.common.pojo.PageResult;
import com.cjy.website.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cjy.website.framework.mybatis.core.mapper.BaseMapperX;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoPageReqVO;
import com.cjy.website.module.system.dal.dataobject.companyinfo.CompanyInfoDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 公司信息 Mapper
*
* @author 芋道源码
*/
@Mapper
public interface CompanyInfoMapper extends BaseMapperX<CompanyInfoDO> {
default PageResult<CompanyInfoDO> selectPage(CompanyInfoPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CompanyInfoDO>()
.eqIfPresent(CompanyInfoDO::getUrl, reqVO.getUrl())
.eqIfPresent(CompanyInfoDO::getAddress, reqVO.getAddress())
.eqIfPresent(CompanyInfoDO::getPhone, reqVO.getPhone())
.eqIfPresent(CompanyInfoDO::getQrCode, reqVO.getQrCode())
.eqIfPresent(CompanyInfoDO::getLogo, reqVO.getLogo())
.betweenIfPresent(CompanyInfoDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(CompanyInfoDO::getId));
}
}

@ -0,0 +1,56 @@
package com.cjy.website.module.system.service.companyinfo;
import com.cjy.website.framework.common.pojo.PageResult;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoPageReqVO;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoSaveReqVO;
import com.cjy.website.module.system.dal.dataobject.companyinfo.CompanyInfoDO;
import java.util.*;
import javax.validation.*;
/**
* 公司信息 Service 接口
*
* @author 芋道源码
*/
public interface CompanyInfoService {
/**
* 创建公司信息
*
* @param createReqVO 创建信息
* @return 编号
*/
Integer createCompanyInfo(@Valid CompanyInfoSaveReqVO createReqVO);
/**
* 更新公司信息
*
* @param updateReqVO 更新信息
*/
void updateCompanyInfo(@Valid CompanyInfoSaveReqVO updateReqVO);
/**
* 删除公司信息
*
* @param id 编号
*/
void deleteCompanyInfo(Integer id);
/**
* 获得公司信息
*
* @param id 编号
* @return 公司信息
*/
CompanyInfoDO getCompanyInfo(Integer id);
/**
* 获得公司信息分页
*
* @param pageReqVO 分页查询
* @return 公司信息分页
*/
PageResult<CompanyInfoDO> getCompanyInfoPage(CompanyInfoPageReqVO pageReqVO);
}

@ -0,0 +1,73 @@
package com.cjy.website.module.system.service.companyinfo;
import com.cjy.website.framework.common.pojo.PageResult;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoPageReqVO;
import com.cjy.website.module.system.controller.admin.companyinfo.vo.CompanyInfoSaveReqVO;
import com.cjy.website.module.system.dal.dataobject.companyinfo.CompanyInfoDO;
import com.cjy.website.module.system.dal.mysql.companyinfo.CompanyInfoMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.cjy.website.framework.common.util.object.BeanUtils;
import static com.cjy.website.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cjy.website.module.system.enums.ErrorCodeConstants.COMPANY_INFO_NOT_EXISTS;
/**
* 公司信息 Service 实现类
*
* @author 芋道源码
*/
@Service
@Validated
public class CompanyInfoServiceImpl implements CompanyInfoService {
@Resource
private CompanyInfoMapper companyInfoMapper;
@Override
public Integer createCompanyInfo(CompanyInfoSaveReqVO createReqVO) {
// 插入
CompanyInfoDO companyInfo = BeanUtils.toBean(createReqVO, CompanyInfoDO.class);
companyInfoMapper.insert(companyInfo);
// 返回
return companyInfo.getId();
}
@Override
public void updateCompanyInfo(CompanyInfoSaveReqVO updateReqVO) {
// 校验存在
validateCompanyInfoExists(updateReqVO.getId());
// 更新
CompanyInfoDO updateObj = BeanUtils.toBean(updateReqVO, CompanyInfoDO.class);
companyInfoMapper.updateById(updateObj);
}
@Override
public void deleteCompanyInfo(Integer id) {
// 校验存在
validateCompanyInfoExists(id);
// 删除
companyInfoMapper.deleteById(id);
}
private void validateCompanyInfoExists(Integer id) {
if (companyInfoMapper.selectById(id) == null) {
throw exception(COMPANY_INFO_NOT_EXISTS);
}
}
@Override
public CompanyInfoDO getCompanyInfo(Integer id) {
return companyInfoMapper.selectById(id);
}
@Override
public PageResult<CompanyInfoDO> getCompanyInfoPage(CompanyInfoPageReqVO pageReqVO) {
return companyInfoMapper.selectPage(pageReqVO);
}
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cjy.website.module.system.dal.mysql.companyinfo.CompanyInfoMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>
Loading…
Cancel
Save