Compare commits

..

No commits in common. 'master' and 'ccongli-dev-0920' have entirely different histories.

@ -1,6 +1,5 @@
package com.yunxi.scm.framework.mybatis.core.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.yunxi.scm.framework.common.pojo.PageParam;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.util.MyBatisUtils;
@ -19,7 +18,7 @@ import java.util.List;
/**
* MyBatis Plus BaseMapper
*/
public interface BaseMapperX<T> extends MPJBaseMapper<T> {
public interface BaseMapperX<T> extends BaseMapper<T> {
default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
// MyBatis Plus 查询

@ -163,15 +163,4 @@ public interface ErrorCodeConstants {
// ========== 站内信发送 1002028000 ==========
ErrorCode NOTIFY_SEND_TEMPLATE_PARAM_MISS = new ErrorCode(1002028000, "模板参数({})缺失");
// ========== 企业信息 TODO 补充编号 ==========
ErrorCode ENTERPRISE_NOT_EXISTS = new ErrorCode(1002004015, "企业信息不存在");
// ========== 业务线表 TODO 补充编号 ==========
ErrorCode BUSINESS_WAREHOUSE_NOT_EXISTS = new ErrorCode(1002025019, "业务线表不存在");
// ========== 业务线和用户关联 TODO 补充编号 ==========
ErrorCode BUSINESS_USER_RELATIONAL_NOT_EXISTS = new ErrorCode(1002025020, "业务线和用户关联不存在");
// ========== 业务线和机构关联 TODO 补充编号 ==========
ErrorCode BUSINESS_ENTERPRISE_RELATIONAL_NOT_EXISTS = new ErrorCode(1002025021, "业务线和机构关联不存在");
}

@ -1,18 +0,0 @@
package com.yunxi.scm.module.system.enums.business;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum BusinessEnum {
ENABLE("0"), // 启用
DISABLE("1"); // 禁用
/**
*
*/
private final String status;
}

@ -27,7 +27,4 @@ public class AuthLoginRespVO {
@Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime expiresTime;
@Schema(description = "租户id", requiredMode = Schema.RequiredMode.REQUIRED)
private Long tenantId;
}

@ -1,9 +1,5 @@
package com.yunxi.scm.module.system.controller.admin.auth.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -48,15 +44,6 @@ public class AuthPermissionInfoRespVO {
@Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.jpg")
private String avatar;
private List<EnterpriseDO> enterpriseList;
private List<BusinessWarehouseDO> businessWarehouseList;
private EnterpriseDO enterprise;
private List<TenantDO> tenantDOList;
private TenantDO tenantDO;
}
@Schema(description = "管理后台 - 登录用户的菜单信息 Response VO")

@ -1,102 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational;
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.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import com.yunxi.scm.module.system.convert.businessenterpriserelational.BusinessEnterpriseRelationalConvert;
import com.yunxi.scm.module.system.service.businessenterpriserelational.BusinessEnterpriseRelationalService;
@Tag(name = "管理后台 - 业务线和机构关联")
@RestController
@RequestMapping("/system/business-enterprise-relational")
@Validated
public class BusinessEnterpriseRelationalController {
@Resource
private BusinessEnterpriseRelationalService businessEnterpriseRelationalService;
@PostMapping("/create")
@Operation(summary = "创建业务线和机构关联")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:create')")
public CommonResult<Long> createBusinessEnterpriseRelational(@Valid @RequestBody BusinessEnterpriseRelationalCreateReqVO createReqVO) {
return success(businessEnterpriseRelationalService.createBusinessEnterpriseRelational(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新业务线和机构关联")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:update')")
public CommonResult<Boolean> updateBusinessEnterpriseRelational(@Valid @RequestBody BusinessEnterpriseRelationalUpdateReqVO updateReqVO) {
businessEnterpriseRelationalService.updateBusinessEnterpriseRelational(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除业务线和机构关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:delete')")
public CommonResult<Boolean> deleteBusinessEnterpriseRelational(@RequestParam("id") Long id) {
businessEnterpriseRelationalService.deleteBusinessEnterpriseRelational(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得业务线和机构关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
public CommonResult<BusinessEnterpriseRelationalRespVO> getBusinessEnterpriseRelational(@RequestParam("id") Long id) {
BusinessEnterpriseRelationalDO businessEnterpriseRelational = businessEnterpriseRelationalService.getBusinessEnterpriseRelational(id);
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convert(businessEnterpriseRelational));
}
@GetMapping("/list")
@Operation(summary = "获得业务线和机构关联列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
public CommonResult<List<BusinessEnterpriseRelationalRespVO>> getBusinessEnterpriseRelationalList(@RequestParam("ids") Collection<Long> ids) {
List<BusinessEnterpriseRelationalDO> list = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalList(ids);
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得业务线和机构关联分页")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
public CommonResult<PageResult<BusinessEnterpriseRelationalRespVO>> getBusinessEnterpriseRelationalPage(@Valid BusinessEnterpriseRelationalPageReqVO pageVO) {
PageResult<BusinessEnterpriseRelationalDO> pageResult = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalPage(pageVO);
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出业务线和机构关联 Excel")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:export')")
@OperateLog(type = EXPORT)
public void exportBusinessEnterpriseRelationalExcel(@Valid BusinessEnterpriseRelationalExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<BusinessEnterpriseRelationalDO> list = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalList(exportReqVO);
// 导出 Excel
List<BusinessEnterpriseRelationalExcelVO> datas = BusinessEnterpriseRelationalConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "业务线和机构关联.xls", "数据", BusinessEnterpriseRelationalExcelVO.class, datas);
}
}

@ -1,25 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
/**
* 线 Base VO VO 使
* VO Swagger
*/
@Data
public class BusinessEnterpriseRelationalBaseVO {
@Schema(description = "业务线id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3256")
@NotNull(message = "业务线id不能为空")
private Long businessId;
@Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15640")
@NotNull(message = "企业id不能为空")
private Long enterpriseId;
}

@ -1,14 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和机构关联创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessEnterpriseRelationalCreateReqVO extends BusinessEnterpriseRelationalBaseVO {
}

@ -1,31 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* 线 Excel VO
*
* @author
*/
@Data
public class BusinessEnterpriseRelationalExcelVO {
@ExcelProperty("主键id")
private Long id;
@ExcelProperty("业务线id")
private Long businessId;
@ExcelProperty("企业id")
private Long enterpriseId;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -1,26 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线和机构关联 Excel 导出 Request VO参数和 BusinessEnterpriseRelationalPageReqVO 是一致的")
@Data
public class BusinessEnterpriseRelationalExportReqVO {
@Schema(description = "业务线id", example = "3256")
private Long businessId;
@Schema(description = "企业id", example = "15640")
private Long enterpriseId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,28 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.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 BusinessEnterpriseRelationalPageReqVO extends PageParam {
@Schema(description = "业务线id", example = "3256")
private Long businessId;
@Schema(description = "企业id", example = "15640")
private Long enterpriseId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,19 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 业务线和机构关联 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessEnterpriseRelationalRespVO extends BusinessEnterpriseRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21519")
private Long id;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
}

@ -1,18 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和机构关联更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessEnterpriseRelationalUpdateReqVO extends BusinessEnterpriseRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21519")
@NotNull(message = "主键id不能为空")
private Long id;
}

@ -1,102 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational;
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.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.module.system.convert.businessuserrelational.BusinessUserRelationalConvert;
import com.yunxi.scm.module.system.service.businessuserrelational.BusinessUserRelationalService;
@Tag(name = "管理后台 - 业务线和用户关联")
@RestController
@RequestMapping("/system/business-user-relational")
@Validated
public class BusinessUserRelationalController {
@Resource
private BusinessUserRelationalService businessUserRelationalService;
@PostMapping("/create")
@Operation(summary = "创建业务线和用户关联")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:create')")
public CommonResult<Long> createBusinessUserRelational(@Valid @RequestBody BusinessUserRelationalCreateReqVO createReqVO) {
return success(businessUserRelationalService.createBusinessUserRelational(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新业务线和用户关联")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:update')")
public CommonResult<Boolean> updateBusinessUserRelational(@Valid @RequestBody BusinessUserRelationalUpdateReqVO updateReqVO) {
businessUserRelationalService.updateBusinessUserRelational(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除业务线和用户关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:business-user-relational:delete')")
public CommonResult<Boolean> deleteBusinessUserRelational(@RequestParam("id") Long id) {
businessUserRelationalService.deleteBusinessUserRelational(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得业务线和用户关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
public CommonResult<BusinessUserRelationalRespVO> getBusinessUserRelational(@RequestParam("id") Long id) {
BusinessUserRelationalDO businessUserRelational = businessUserRelationalService.getBusinessUserRelational(id);
return success(BusinessUserRelationalConvert.INSTANCE.convert(businessUserRelational));
}
@GetMapping("/list")
@Operation(summary = "获得业务线和用户关联列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
public CommonResult<List<BusinessUserRelationalRespVO>> getBusinessUserRelationalList(@RequestParam("ids") Collection<Long> ids) {
List<BusinessUserRelationalDO> list = businessUserRelationalService.getBusinessUserRelationalList(ids);
return success(BusinessUserRelationalConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得业务线和用户关联分页")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
public CommonResult<PageResult<BusinessUserRelationalRespVO>> getBusinessUserRelationalPage(@Valid BusinessUserRelationalPageReqVO pageVO) {
PageResult<BusinessUserRelationalDO> pageResult = businessUserRelationalService.getBusinessUserRelationalPage(pageVO);
return success(BusinessUserRelationalConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出业务线和用户关联 Excel")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:export')")
@OperateLog(type = EXPORT)
public void exportBusinessUserRelationalExcel(@Valid BusinessUserRelationalExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<BusinessUserRelationalDO> list = businessUserRelationalService.getBusinessUserRelationalList(exportReqVO);
// 导出 Excel
List<BusinessUserRelationalExcelVO> datas = BusinessUserRelationalConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "业务线和用户关联.xls", "数据", BusinessUserRelationalExcelVO.class, datas);
}
}

@ -1,25 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
/**
* 线 Base VO VO 使
* VO Swagger
*/
@Data
public class BusinessUserRelationalBaseVO {
@Schema(description = "业务线/仓库id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29863")
@NotNull(message = "业务线/仓库id不能为空")
private Long businessId;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "2593")
@NotNull(message = "用户id不能为空")
private Long userId;
}

@ -1,14 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和用户关联创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessUserRelationalCreateReqVO extends BusinessUserRelationalBaseVO {
}

@ -1,31 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* 线 Excel VO
*
* @author
*/
@Data
public class BusinessUserRelationalExcelVO {
@ExcelProperty("主键id")
private Long id;
@ExcelProperty("业务线/仓库id")
private Long businessId;
@ExcelProperty("用户id")
private Long userId;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -1,19 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 业务线和用户关联 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessUserRelationalRespVO extends BusinessUserRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17732")
private Long id;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
}

@ -1,18 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和用户关联更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessUserRelationalUpdateReqVO extends BusinessUserRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17732")
@NotNull(message = "主键id不能为空")
private Long id;
}

@ -1,137 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.convert.dept.DeptConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.enums.business.BusinessEnum;
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.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.convert.businesswarehouse.BusinessWarehouseConvert;
import com.yunxi.scm.module.system.service.businesswarehouse.BusinessWarehouseService;
@Tag(name = "管理后台 - 业务线表")
@RestController
@RequestMapping("/system/business-warehouse")
@Validated
public class BusinessWarehouseController {
@Resource
private BusinessWarehouseService businessWarehouseService;
@PostMapping("/create")
@Operation(summary = "创建业务线表")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:create')")
public CommonResult<Long> createBusinessWarehouse(@Valid @RequestBody BusinessWarehouseCreateReqVO createReqVO) {
return success(businessWarehouseService.createBusinessWarehouse(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新业务线表")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:update')")
public CommonResult<Boolean> updateBusinessWarehouse(@Valid @RequestBody BusinessWarehouseUpdateReqVO updateReqVO) {
businessWarehouseService.updateBusinessWarehouse(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除业务线表")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:business-warehouse:delete')")
public CommonResult<Boolean> deleteBusinessWarehouse(@RequestParam("id") Long id) {
businessWarehouseService.deleteBusinessWarehouse(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得业务线表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:query')")
public CommonResult<BusinessWarehouseRespVO> getBusinessWarehouse(@RequestParam("id") Long id) {
BusinessWarehouseDO businessWarehouse = businessWarehouseService.getBusinessWarehouse(id);
return success(BusinessWarehouseConvert.INSTANCE.convert(businessWarehouse));
}
@GetMapping("/list")
@Operation(summary = "获得业务线表列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:query')")
public CommonResult<List<BusinessWarehouseRespVO>> getBusinessWarehouseList(@RequestParam("ids") Collection<Long> ids) {
List<BusinessWarehouseDO> list = businessWarehouseService.getBusinessWarehouseList(ids);
return success(BusinessWarehouseConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得业务线表分页")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:query')")
public CommonResult<PageResult<BusinessWarehouseRespVO>> getBusinessWarehousePage(@Valid BusinessWarehousePageReqVO pageVO) {
PageResult<BusinessWarehouseDO> pageResult = businessWarehouseService.getBusinessWarehousePage(pageVO);
return success(BusinessWarehouseConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/business")
@Operation(summary = "获得业务线分页")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:business')")
public CommonResult<PageResult<BusinessWarehouseRespVO>> getBusinessPage(@Valid BusinessWarehousePageReqVO pageVO) {
PageResult<BusinessWarehouseDO> pageResult = businessWarehouseService.getBusinessPage(pageVO);
return success(BusinessWarehouseConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出业务线表 Excel")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:export')")
@OperateLog(type = EXPORT)
public void exportBusinessWarehouseExcel(@Valid BusinessWarehouseExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<BusinessWarehouseDO> list = businessWarehouseService.getBusinessWarehouseList(exportReqVO);
// 导出 Excel
List<BusinessWarehouseExcelVO> datas = BusinessWarehouseConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "业务线表.xls", "数据", BusinessWarehouseExcelVO.class, datas);
}
@GetMapping("/list-all-simple")
@Operation(summary = "获取业务线精简信息列表", description = "只包含被开启的业务线,主要用于前端的下拉选项")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:list-all-simple')")
public CommonResult<List<BusinessSimpleRespVo>> getSimpleBusinessList() {
// 获得业务线列表,只要开启状态的
BusinessWarehousePageReqVO pageReqVO = new BusinessWarehousePageReqVO();
// pageReqVO.setStatus(BusinessEnum.ENABLE.getStatus());
// pageReqVO.setDiffFlag("0");
List<BusinessWarehouseDO> list = businessWarehouseService.getBusinessSimpleList(pageReqVO);
return success(BusinessWarehouseConvert.INSTANCE.convertList03(list));
}
@GetMapping("/business-user")
@Operation(summary = "获得业务线分页")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:business-user')")
public CommonResult<PageResult<BusinessUserVO>> getBusinessUserPage(BusinessUserVO reqVO) {
PageResult<BusinessUserVO> pageResult = businessWarehouseService.getBusinessUserList(reqVO);
return success(pageResult);
}
}

@ -1,21 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@Schema(description = "管理后台 - 业务线表精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BusinessSimpleRespVo {
@Schema(description = "业务线编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "业务线名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
private String name;
@Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long parentId;
}

@ -1,44 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import com.yunxi.scm.framework.common.pojo.PageParam;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线员工信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BusinessUserVO extends AdminUserDO {
@Schema(description = "帐号状态")
private Integer accountStatus;
@Schema(description = "业务编号")
private Integer businessId;
@Schema(description = "业务名称")
private String businessName;
@Schema(description = "员工编号")
private Integer userId;
@Schema(description = "分页")
private Integer pageNo;
@Schema(description = "分页")
private Integer pageSize;
@Schema(description = "部门名称")
private String deptName;
@Schema(description = "职务名称")
private String postName;
@Schema(description = "创建时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] loginTime;
}

@ -1,82 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 线 Base VO VO 使
* VO Swagger
*/
@Data
public class BusinessWarehouseBaseVO {
@Schema(description = "业务线编号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务线编号不能为空")
private String businessCode;
@Schema(description = "业务线名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotNull(message = "业务线名称不能为空")
private String name;
@Schema(description = "业务线简称")
private String businessSimple;
@Schema(description = "业务线LOGO")
private String businessLogo;
@Schema(description = "父id", example = "3408")
private Long parentId;
@Schema(description = "类型", example = "1")
private String type;
@Schema(description = "状态", example = "1")
private String status;
@Schema(description = "关联机构")
private Integer institutionNum;
@Schema(description = "成员数量")
private Integer employeeNum;
@Schema(description = "所属分类")
private String industry;
@Schema(description = "所在城市")
private String city;
@Schema(description = "成立时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime establishDate;
@Schema(description = "归属人员", example = "26257")
private Long belongUserId;
@Schema(description = "品牌/业务线/事业群名称", example = "芋艿")
private String brandName;
@Schema(description = "电话")
private Integer phone;
@Schema(description = "业务线仓库区分(0业务线,1仓库)", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务线仓库区分(0业务线,1仓库)不能为空")
private String diffFlag;
@Schema(description = "传真")
private String fax;
@Schema(description = "网址", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "介绍", example = "随便")
private String description;
}

@ -1,14 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线表创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessWarehouseCreateReqVO extends BusinessWarehouseBaseVO {
}

@ -1,90 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
/**
* 线 Excel VO
*
* @author
*/
@Data
public class BusinessWarehouseExcelVO {
@ExcelProperty("业务id")
private Long id;
@ExcelProperty("业务线编号")
private String businessCode;
@ExcelProperty("业务线名称")
private String name;
@ExcelProperty("业务线简称")
private String businessSimple;
@ExcelProperty("业务线LOGO")
private String businessLogo;
@ExcelProperty("父id")
private Long parentId;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat("business_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("class_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String status;
@ExcelProperty("关联机构")
private Integer institutionNum;
@ExcelProperty("成员数量")
private Integer employeeNum;
@ExcelProperty(value = "所属分类", converter = DictConvert.class)
@DictFormat("duty_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String industry;
@ExcelProperty("所在城市")
private String city;
@ExcelProperty("成立时间")
private LocalDateTime establishDate;
@ExcelProperty("归属人员")
private Long belongUserId;
@ExcelProperty("品牌/业务线/事业群名称")
private String brandName;
@ExcelProperty("电话")
private Integer phone;
@ExcelProperty(value = "业务线仓库区分(0业务线,1仓库)", converter = DictConvert.class)
@DictFormat("diff_flag") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String diffFlag;
@ExcelProperty("传真")
private String fax;
@ExcelProperty("网址")
private String url;
@ExcelProperty("介绍")
private String description;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -1,78 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线表 Excel 导出 Request VO参数和 BusinessWarehousePageReqVO 是一致的")
@Data
public class BusinessWarehouseExportReqVO {
@Schema(description = "业务线编号")
private String businessCode;
@Schema(description = "业务线名称", example = "赵六")
private String name;
@Schema(description = "业务线简称")
private String businessSimple;
@Schema(description = "业务线LOGO")
private String businessLogo;
@Schema(description = "父id", example = "3408")
private Long parentId;
@Schema(description = "类型", example = "1")
private String type;
@Schema(description = "状态", example = "1")
private String status;
@Schema(description = "关联机构")
private Integer institutionNum;
@Schema(description = "成员数量")
private Integer employeeNum;
@Schema(description = "所属分类")
private String industry;
@Schema(description = "所在城市")
private String city;
@Schema(description = "成立时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] establishDate;
@Schema(description = "归属人员", example = "26257")
private Long belongUserId;
@Schema(description = "品牌/业务线/事业群名称", example = "芋艿")
private String brandName;
@Schema(description = "电话")
private Integer phone;
@Schema(description = "业务线仓库区分(0业务线,1仓库)")
private String diffFlag;
@Schema(description = "传真")
private String fax;
@Schema(description = "网址", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "介绍", example = "随便")
private String description;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,80 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.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 BusinessWarehousePageReqVO extends PageParam {
@Schema(description = "业务线编号")
private String businessCode;
@Schema(description = "业务线名称", example = "赵六")
private String name;
@Schema(description = "业务线简称")
private String businessSimple;
@Schema(description = "业务线LOGO")
private String businessLogo;
@Schema(description = "父id", example = "3408")
private Long parentId;
@Schema(description = "类型", example = "1")
private String type;
@Schema(description = "状态", example = "1")
private String status;
@Schema(description = "关联机构")
private Integer institutionNum;
@Schema(description = "成员数量")
private Integer employeeNum;
@Schema(description = "所属分类")
private String industry;
@Schema(description = "所在城市")
private String city;
@Schema(description = "成立时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] establishDate;
@Schema(description = "归属人员", example = "26257")
private Long belongUserId;
@Schema(description = "品牌/业务线/事业群名称", example = "芋艿")
private String brandName;
@Schema(description = "电话")
private Integer phone;
@Schema(description = "业务线仓库区分(0业务线,1仓库)")
private String diffFlag;
@Schema(description = "传真")
private String fax;
@Schema(description = "网址", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "介绍", example = "随便")
private String description;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,22 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 业务线表 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessWarehouseRespVO extends BusinessWarehouseBaseVO {
@Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20782")
private Long id;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
@Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime updateTime;
}

@ -1,18 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线表更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessWarehouseUpdateReqVO extends BusinessWarehouseBaseVO {
@Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20782")
@NotNull(message = "业务id不能为空")
private Long id;
}

@ -3,7 +3,6 @@ package com.yunxi.scm.module.system.controller.admin.dept;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.*;
import com.yunxi.scm.module.system.convert.dept.DeptConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
@ -14,15 +13,12 @@ import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@ -37,14 +33,12 @@ public class DeptController {
@Resource
private DeptService deptService;
@Resource
private AdminUserService userService;
private AdminUserMapper adminUserMapper;
@PostMapping("create")
@Operation(summary = "创建部门")
@PreAuthorize("@ss.hasPermission('system:dept:create')")
public CommonResult<Long> createDept(@Valid @RequestBody DeptCreateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
Long deptId = deptService.createDept(reqVO);
return success(deptId);
}
@ -53,8 +47,6 @@ public class DeptController {
@Operation(summary = "更新部门")
@PreAuthorize("@ss.hasPermission('system:dept:update')")
public CommonResult<Boolean> updateDept(@Valid @RequestBody DeptUpdateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
deptService.updateDept(reqVO);
return success(true);
}
@ -72,11 +64,6 @@ public class DeptController {
@Operation(summary = "获取部门列表")
@PreAuthorize("@ss.hasPermission('system:dept:query')")
public CommonResult<List<DeptRespVO>> getDeptList(DeptListReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<DeptDO> list = deptService.getDeptList(reqVO);
list.sort(Comparator.comparing(DeptDO::getSort));
return success(DeptConvert.INSTANCE.convertList(list));
@ -88,11 +75,6 @@ public class DeptController {
// 获得部门列表,只要开启状态的
DeptListReqVO reqVO = new DeptListReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<DeptDO> list = deptService.getDeptList(reqVO);
// 排序后,返回给前端
list.sort(Comparator.comparing(DeptDO::getSort));
@ -108,41 +90,4 @@ public class DeptController {
return success(DeptConvert.INSTANCE.convert(deptService.getDept(id)));
}
@GetMapping("/list-user-simple")
@Operation(summary = "获取部门用户精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项")
public CommonResult<List<DeptSimpleRespVO>> getSimpleDeptUserList() {
// 获得部门列表,只要开启状态的
DeptListReqVO reqVO = new DeptListReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
List<DeptDO> list = deptService.getDeptList(reqVO);
// 排序后,返回给前端
list.sort(Comparator.comparing(DeptDO::getSort));
return success(DeptConvert.INSTANCE.convertList02(list));
}
@GetMapping("/list-dept-user")
@Operation(summary = "获取部门和人员列表")
@PreAuthorize("@ss.hasPermission('system:dept:user')")
public CommonResult<List<DeptSimpleRespVO>> getDeptUserList() {
// 获得部门列表,只要开启状态的
DeptListReqVO deptListReqVO = new DeptListReqVO();
deptListReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
List<DeptDO> deptDOList = deptService.getDeptList(deptListReqVO);
//将Dept转化为简单的Dept
List<DeptSimpleRespVO> simpleDeptList = new ArrayList<>(DeptConvert.INSTANCE.convertList02(deptDOList));
deptDOList.forEach(deptDO -> {
List<AdminUserDO> adminUserList = userService.getUserListByDeptIds(Collections.singleton(deptDO.getId()));
for (AdminUserDO adminUserDO : adminUserList){
DeptSimpleRespVO deptSimpleRespVO = new DeptSimpleRespVO();
deptSimpleRespVO.setId(adminUserDO.getId());
deptSimpleRespVO.setParentId(adminUserDO.getDeptId());
deptSimpleRespVO.setName(adminUserDO.getNickname());
simpleDeptList.add(deptSimpleRespVO);
}
});
//将list转为树状
List<DeptSimpleRespVO> list = deptService.buildTree(simpleDeptList,0);
return success(list);
}
}

@ -5,18 +5,13 @@ import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.post.*;
import com.yunxi.scm.module.system.convert.dept.PostConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.PostDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.service.dept.PostService;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -40,15 +35,11 @@ public class PostController {
@Resource
private PostService postService;
@Resource
private AdminUserService userService;
@PostMapping("/create")
@Operation(summary = "创建岗位")
@PreAuthorize("@ss.hasPermission('system:post:create')")
public CommonResult<Long> createPost(@Valid @RequestBody PostCreateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
Long postId = postService.createPost(reqVO);
return success(postId);
}
@ -57,8 +48,6 @@ public class PostController {
@Operation(summary = "修改岗位")
@PreAuthorize("@ss.hasPermission('system:post:update')")
public CommonResult<Boolean> updatePost(@Valid @RequestBody PostUpdateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
postService.updatePost(reqVO);
return success(true);
}
@ -82,15 +71,8 @@ public class PostController {
@GetMapping("/list-all-simple")
@Operation(summary = "获取岗位精简信息列表", description = "只包含被开启的岗位,主要用于前端的下拉选项")
public CommonResult<List<PostSimpleRespVO>> getSimplePostList() {
PostExportReqVO reqVO = new PostExportReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
// 获得岗位列表,只要开启状态的
List<PostDO> list = postService.getPostList(reqVO);
List<PostDO> list = postService.getPostList(null, Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));
// 排序后,返回给前端
list.sort(Comparator.comparing(PostDO::getSort));
return success(PostConvert.INSTANCE.convertList02(list));
@ -100,11 +82,6 @@ public class PostController {
@Operation(summary = "获得岗位分页列表")
@PreAuthorize("@ss.hasPermission('system:post:query')")
public CommonResult<PageResult<PostRespVO>> getPostPage(@Validated PostPageReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
return success(PostConvert.INSTANCE.convertPage(postService.getPostPage(reqVO)));
}
@ -113,11 +90,6 @@ public class PostController {
@PreAuthorize("@ss.hasPermission('system:post:export')")
@OperateLog(type = EXPORT)
public void export(HttpServletResponse response, @Validated PostExportReqVO reqVO) throws IOException {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<PostDO> posts = postService.getPostList(reqVO);
List<PostExcelVO> data = PostConvert.INSTANCE.convertList03(posts);
// 输出

@ -44,6 +44,4 @@ public class DeptBaseVO {
// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
private Integer status;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
}

@ -13,6 +13,4 @@ public class DeptListReqVO {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
}

@ -23,8 +23,4 @@ public class DeptSimpleRespVO {
@Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long parentId;
@Schema(description = "子集" )
private List<DeptSimpleRespVO> children;
}

@ -33,6 +33,4 @@ public class PostBaseVO {
@Schema(description = "备注", example = "快乐的备注")
private String remark;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
}

@ -4,7 +4,6 @@ import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
import com.yunxi.scm.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
@ -29,6 +28,4 @@ public class PostExcelVO {
@DictFormat(DictTypeConstants.COMMON_STATUS)
private String status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
}

@ -16,6 +16,4 @@ public class PostExportReqVO {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
}

@ -15,6 +15,4 @@ public class PostListReqVO extends PostBaseVO {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
}

@ -19,6 +19,4 @@ public class PostPageReqVO extends PageParam {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
}

@ -1,82 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.enterprise.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* Base VO VO 使
* VO Swagger
*/
@Data
public class EnterpriseBaseVO {
@Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotNull(message = "企业名称不能为空")
private String name;
@Schema(description = "企业简称", example = "李四")
private String shortName;
@Schema(description = "主体类型", example = "2")
private String mainType;
@Schema(description = "企业代码")
private String code;
@Schema(description = "社会统一信息代码")
private String societyCode;
@Schema(description = "办理人(0法人 1代办人)")
private String transactors;
@Schema(description = "实际操作人(0法人 1代办人)")
private String operator;
@Schema(description = "法人证件有效期类型(0长期 1非长期)")
private String legalOperator;
@Schema(description = "代办人证件类型(0身份证 1护照)", example = "1")
private String commissionCertificateType;
@Schema(description = "代办人证件有效期类型(0长期 1非长期)")
private String commissionOperator;
@Schema(description = "总公司,子公司机构类型", example = "1")
private String enterpriseType;
@Schema(description = "企业父id", example = "26924")
private Long parentId;
@Schema(description = "更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime updateTime;
@Schema(description = "首联系人")
private String firstConcat;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "描述")
private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
}

@ -1,89 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.enterprise.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* Excel VO
*
* @author
*/
@Data
public class EnterpriseExcelVO {
@ExcelProperty("编号")
private Long id;
@ExcelProperty("企业名称")
private String name;
@ExcelProperty("企业简称")
private String shortName;
@ExcelProperty(value = "主体类型", converter = DictConvert.class)
@DictFormat("main_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String mainType;
@ExcelProperty("企业代码")
private String code;
@ExcelProperty("社会统一信息代码")
private String societyCode;
@ExcelProperty("办理人(0法人 1代办人)")
private String transactors;
@ExcelProperty("实际操作人(0法人 1代办人)")
private String operator;
@ExcelProperty("法人证件有效期类型(0长期 1非长期)")
private String legalOperator;
@ExcelProperty("代办人证件类型(0身份证 1护照)")
private String commissionCertificateType;
@ExcelProperty("代办人证件有效期类型(0长期 1非长期)")
private String commissionOperator;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@ExcelProperty(value = "总公司,子公司机构类型", converter = DictConvert.class)
@DictFormat("enterprise_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String enterpriseType;
@ExcelProperty("企业父id")
private Long parentId;
@Schema(description = "更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime updateTime;
@Schema(description = "首联系人")
private String firstConcat;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "描述")
private String description;
}

@ -1,68 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.enterprise.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 企业信息 Excel 导出 Request VO参数和 EnterprisePageReqVO 是一致的")
@Data
public class EnterpriseExportReqVO {
@Schema(description = "企业名称", example = "赵六")
private String name;
@Schema(description = "主体类型", example = "2")
private String mainType;
@Schema(description = "企业代码")
private String code;
@Schema(description = "社会统一信息代码")
private String societyCode;
@Schema(description = "办理人(0法人 1代办人)")
private String transactors;
@Schema(description = "实际操作人(0法人 1代办人)")
private String operator;
@Schema(description = "法人证件有效期类型(0长期 1非长期)")
private String legalOperator;
@Schema(description = "代办人证件类型(0身份证 1护照)", example = "1")
private String commissionCertificateType;
@Schema(description = "代办人证件有效期类型(0长期 1非长期)")
private String commissionOperator;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "总公司,子公司机构类型", example = "1")
private String enterpriseType;
@Schema(description = "企业父id", example = "26924")
private Long parentId;
@Schema(description = "更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime updateTime;
@Schema(description = "首联系人")
private String firstConcat;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "描述")
private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
}

@ -1,70 +0,0 @@
package com.yunxi.scm.module.system.controller.admin.enterprise.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.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 EnterprisePageReqVO extends PageParam {
@Schema(description = "企业名称", example = "赵六")
private String name;
@Schema(description = "主体类型", example = "2")
private String mainType;
@Schema(description = "企业代码")
private String code;
@Schema(description = "社会统一信息代码")
private String societyCode;
@Schema(description = "办理人(0法人 1代办人)")
private String transactors;
@Schema(description = "实际操作人(0法人 1代办人)")
private String operator;
@Schema(description = "法人证件有效期类型(0长期 1非长期)")
private String legalOperator;
@Schema(description = "代办人证件类型(0身份证 1护照)", example = "1")
private String commissionCertificateType;
@Schema(description = "代办人证件有效期类型(0长期 1非长期)")
private String commissionOperator;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "总公司,子公司机构类型", example = "1")
private String enterpriseType;
@Schema(description = "企业父id", example = "26924")
private Long parentId;
@Schema(description = "更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime updateTime;
@Schema(description = "首联系人")
private String firstConcat;
@Schema(description = "联系电话")
private String phone;
@Schema(description = "描述")
private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
}

@ -5,18 +5,13 @@ import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.permission.vo.role.*;
import com.yunxi.scm.module.system.convert.permission.RoleConvert;
import com.yunxi.scm.module.system.dal.dataobject.permission.RoleDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.service.permission.RoleService;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -40,15 +35,11 @@ public class RoleController {
@Resource
private RoleService roleService;
@Resource
private AdminUserService userService;
@PostMapping("/create")
@Operation(summary = "创建角色")
@PreAuthorize("@ss.hasPermission('system:role:create')")
public CommonResult<Long> createRole(@Valid @RequestBody RoleCreateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
return success(roleService.createRole(reqVO, null));
}
@ -56,8 +47,6 @@ public class RoleController {
@Operation(summary = "修改角色")
@PreAuthorize("@ss.hasPermission('system:role:update')")
public CommonResult<Boolean> updateRole(@Valid @RequestBody RoleUpdateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
roleService.updateRole(reqVO);
return success(true);
}
@ -91,26 +80,14 @@ public class RoleController {
@Operation(summary = "获得角色分页")
@PreAuthorize("@ss.hasPermission('system:role:query')")
public CommonResult<PageResult<RoleDO>> getRolePage(RolePageReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
return success(roleService.getRolePage(reqVO));
}
@GetMapping("/list-all-simple")
@Operation(summary = "获取角色精简信息列表", description = "只包含被开启的角色,主要用于前端的下拉选项")
public CommonResult<List<RoleSimpleRespVO>> getSimpleRoleList() {
RoleExportReqVO reqVO = new RoleExportReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
// 获得角色列表,只要开启状态的
List<RoleDO> list = roleService.getRoleList(reqVO);
List<RoleDO> list = roleService.getRoleListByStatus(singleton(CommonStatusEnum.ENABLE.getStatus()));
// 排序后,返回给前端
list.sort(Comparator.comparing(RoleDO::getSort));
return success(RoleConvert.INSTANCE.convertList02(list));
@ -120,11 +97,6 @@ public class RoleController {
@OperateLog(type = EXPORT)
@PreAuthorize("@ss.hasPermission('system:role:export')")
public void export(HttpServletResponse response, @Validated RoleExportReqVO reqVO) throws IOException {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<RoleDO> list = roleService.getRoleList(reqVO);
List<RoleExcelVO> data = RoleConvert.INSTANCE.convertList03(list);
// 输出

@ -31,7 +31,4 @@ public class RoleBaseVO {
@Schema(description = "备注", example = "我是一个角色")
private String remark;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
}

@ -4,7 +4,6 @@ import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
import com.yunxi.scm.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
@ -32,5 +31,4 @@ public class RoleExcelVO {
@DictFormat(DictTypeConstants.COMMON_STATUS)
private String status;
private Long enterpriseId;
}

@ -25,5 +25,4 @@ public class RoleExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
private Long enterpriseId;
}

@ -28,5 +28,4 @@ public class RolePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
private Long enterpriseId;
}

@ -34,6 +34,4 @@ public class RoleRespVO extends RoleBaseVO {
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
private LocalDateTime createTime;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
}

@ -7,9 +7,7 @@ import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.module.system.controller.admin.tenant.vo.tenant.*;
import com.yunxi.scm.module.system.convert.tenant.TenantConvert;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.service.tenant.TenantService;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
@ -25,7 +23,6 @@ import java.util.List;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import static com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@Tag(name = "管理后台 - 租户")
@RestController
@ -34,8 +31,6 @@ public class TenantController {
@Resource
private TenantService tenantService;
@Resource
private AdminUserService userService;
@GetMapping("/get-id-by-name")
@PermitAll
@ -46,16 +41,6 @@ public class TenantController {
return success(tenantDO != null ? tenantDO.getId() : null);
}
@GetMapping("/get-tenantId-by-userName")
@PermitAll
@Operation(summary = "使用租户名,获得租户编号", description = "登录界面,根据用户的租户名,获得租户编号")
@Parameter(name = "name", description = "租户名", required = true, example = "1024")
public CommonResult<Long> getTenantIdByUserName(@RequestParam("name") String name) {
AdminUserDO user = userService.getUserByUsername(name);
TenantDO tenantDO = tenantService.getTenant(user.getTenantId());
return success(tenantDO != null ? tenantDO.getId() : null);
}
@PostMapping("/create")
@Operation(summary = "创建租户")
@PreAuthorize("@ss.hasPermission('system:tenant:create')")

@ -1,7 +1,6 @@
package com.yunxi.scm.module.system.controller.admin.user;
import cn.hutool.core.collection.CollUtil;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.controller.admin.user.vo.user.*;
@ -22,7 +21,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -96,7 +94,6 @@ public class UserController {
@PreAuthorize("@ss.hasPermission('system:user:list')")
public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) {
// 获得用户分页列表
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
PageResult<AdminUserDO> pageResult = userService.getUserPage(reqVO);
if (CollUtil.isEmpty(pageResult.getList())) {
return success(new PageResult<>(pageResult.getTotal())); // 返回空
@ -205,4 +202,5 @@ public class UserController {
list.sort(Comparator.comparing(AdminUserDO::getId));
return success(UserConvert.INSTANCE.convertList04(list));
}
}

@ -65,30 +65,16 @@ public class UserProfileController {
// 获得用户角色
List<RoleDO> userRoles = roleService.getRoleListFromCache(permissionService.getUserRoleIdListByUserId(user.getId()));
resp.setRoles(UserConvert.INSTANCE.convertList(userRoles));
String deptNames = "";
// 获得部门信息
if (user.getDeptId() != null) {
DeptDO dept = deptService.getDept(user.getDeptId());
resp.setDept(UserConvert.INSTANCE.convert02(dept));
deptNames = deptNames + dept.getName() + ",";
}
if(deptNames.length() > 0){
deptNames = deptNames.substring(0, deptNames.length() - 1);
}
resp.setDeptNames(deptNames);
String postNames = "";
// 获得岗位信息
if (CollUtil.isNotEmpty(user.getPostIds())) {
List<PostDO> posts = postService.getPostList(user.getPostIds());
resp.setPosts(UserConvert.INSTANCE.convertList02(posts));
for (PostDO postDO : posts) {
postNames = postNames + postDO.getName() + ",";
}
}
if(postNames.length() > 0){
postNames = postNames.substring(0, postNames.length() - 1);
}
resp.setPostNames(postNames);
// 获得社交用户信息
List<SocialUserDO> socialUsers = socialService.getSocialUserList(user.getId(), UserTypeEnum.ADMIN.getValue());
resp.setSocialUsers(UserConvert.INSTANCE.convertList03(socialUsers));

@ -33,41 +33,6 @@ public class UserProfileRespVO extends UserBaseVO {
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
private LocalDateTime createTime;
@Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "事业部,传感部")
private String deptNames;
@Schema(description = "职务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "董事长,周经理")
private String postNames;
/**
*
*/
private String nativePlace;
/**
*
*/
private String education;
/**
*
*/
private String speciality;
/**
*
*/
private String graduationInstitution;
/**
*
*/
private LocalDateTime institutionDatatime;
/**
*
*/
private LocalDateTime birthDatetime;
/**
*
*/
private String personalProfile;
/**
*
*/

@ -10,7 +10,7 @@ import javax.validation.constraints.Size;
@Schema(description = "管理后台 - 用户个人信息更新 Request VO")
@Data
public class UserProfileUpdateReqVO extends UserProfileRespVO{
public class UserProfileUpdateReqVO {
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@Size(max = 30, message = "用户昵称长度不能超过 30 个字符")

@ -8,7 +8,6 @@ import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.Set;
/**
@ -52,31 +51,4 @@ public class UserBaseVO {
@Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png")
private String avatar;
@Schema(description = "员工工号", example = "123")
private String jobNumber;
@Schema(description = "微信账号", example = "123")
private String wechatAccount;
@Schema(description = "出生日期", example = "123")
private LocalDateTime birthDatetime;
@Schema(description = "籍贯", example = "123")
private String nativePlace;
@Schema(description = "学历", example = "123")
private String education;
@Schema(description = "专业", example = "123")
private String speciality;
@Schema(description = "毕业院校", example = "123")
private String graduationInstitution;
@Schema(description = "毕业时间", example = "123")
private LocalDateTime institutionDatatime;
@Schema(description = "个人简介", example = "123")
private String personalProfile;
}

@ -28,7 +28,7 @@ public interface AuthConvert {
default AuthPermissionInfoRespVO convert(AdminUserDO user, List<RoleDO> roleList, List<MenuDO> menuList) {
return AuthPermissionInfoRespVO.builder()
.user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).enterprise(user.getEnterprise()).businessWarehouseList(user.getBusinessWarehouseList()).tenantDO(user.getTenantDO()).tenantDOList(user.getTenantDOList()).enterpriseList(user.getEnterpriseList()).build())
.user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).build())
.roles(convertSet(roleList, RoleDO::getCode))
// 权限标识信息
.permissions(convertSet(menuList, MenuDO::getPermission))

@ -1,34 +0,0 @@
package com.yunxi.scm.module.system.convert.businessenterpriserelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
/**
* 线 Convert
*
* @author
*/
@Mapper
public interface BusinessEnterpriseRelationalConvert {
BusinessEnterpriseRelationalConvert INSTANCE = Mappers.getMapper(BusinessEnterpriseRelationalConvert.class);
BusinessEnterpriseRelationalDO convert(BusinessEnterpriseRelationalCreateReqVO bean);
BusinessEnterpriseRelationalDO convert(BusinessEnterpriseRelationalUpdateReqVO bean);
BusinessEnterpriseRelationalRespVO convert(BusinessEnterpriseRelationalDO bean);
List<BusinessEnterpriseRelationalRespVO> convertList(List<BusinessEnterpriseRelationalDO> list);
PageResult<BusinessEnterpriseRelationalRespVO> convertPage(PageResult<BusinessEnterpriseRelationalDO> page);
List<BusinessEnterpriseRelationalExcelVO> convertList02(List<BusinessEnterpriseRelationalDO> list);
}

@ -1,34 +0,0 @@
package com.yunxi.scm.module.system.convert.businessuserrelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
/**
* 线 Convert
*
* @author
*/
@Mapper
public interface BusinessUserRelationalConvert {
BusinessUserRelationalConvert INSTANCE = Mappers.getMapper(BusinessUserRelationalConvert.class);
BusinessUserRelationalDO convert(BusinessUserRelationalCreateReqVO bean);
BusinessUserRelationalDO convert(BusinessUserRelationalUpdateReqVO bean);
BusinessUserRelationalRespVO convert(BusinessUserRelationalDO bean);
List<BusinessUserRelationalRespVO> convertList(List<BusinessUserRelationalDO> list);
PageResult<BusinessUserRelationalRespVO> convertPage(PageResult<BusinessUserRelationalDO> page);
List<BusinessUserRelationalExcelVO> convertList02(List<BusinessUserRelationalDO> list);
}

@ -1,38 +0,0 @@
package com.yunxi.scm.module.system.convert.businesswarehouse;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
/**
* 线 Convert
*
* @author
*/
@Mapper
public interface BusinessWarehouseConvert {
BusinessWarehouseConvert INSTANCE = Mappers.getMapper(BusinessWarehouseConvert.class);
BusinessWarehouseDO convert(BusinessWarehouseCreateReqVO bean);
BusinessWarehouseDO convert(BusinessWarehouseUpdateReqVO bean);
BusinessWarehouseRespVO convert(BusinessWarehouseDO bean);
BusinessSimpleRespVo convert03(BusinessWarehouseDO bean);
List<BusinessWarehouseRespVO> convertList(List<BusinessWarehouseDO> list);
List<BusinessSimpleRespVo> convertList03(List<BusinessWarehouseDO> list);
PageResult<BusinessWarehouseRespVO> convertPage(PageResult<BusinessWarehouseDO> page);
List<BusinessWarehouseExcelVO> convertList02(List<BusinessWarehouseDO> list);
}

@ -1,23 +1,16 @@
package com.yunxi.scm.module.system.convert.dept;
import com.yunxi.scm.module.system.api.dept.dto.DeptRespDTO;
import com.yunxi.scm.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
import com.yunxi.scm.module.system.convert.auth.AuthConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.permission.MenuDO;
import com.yunxi.scm.module.system.enums.permission.MenuTypeEnum;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import org.slf4j.LoggerFactory;
import java.util.*;
import static com.yunxi.scm.framework.common.util.collection.CollectionUtils.filterList;
import static com.yunxi.scm.module.system.dal.dataobject.permission.MenuDO.ID_ROOT;
import java.util.List;
import java.util.Map;
@Mapper
public interface DeptConvert {

@ -1,39 +0,0 @@
package com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/**
* 线 DO
*
* @author
*/
@TableName("system_business_enterprise_relational")
@KeySequence("system_business_enterprise_relational_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BusinessEnterpriseRelationalDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 线id
*/
private Long businessId;
/**
* id
*/
private Long enterpriseId;
}

@ -1,39 +0,0 @@
package com.yunxi.scm.module.system.dal.dataobject.businessuserrelational;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/**
* 线 DO
*
* @author
*/
@TableName("system_business_user_relational")
@KeySequence("system_business_user_relational_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BusinessUserRelationalDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 线/id
*/
private Long businessId;
/**
* id
*/
private Long userId;
}

@ -1,116 +0,0 @@
package com.yunxi.scm.module.system.dal.dataobject.businesswarehouse;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/**
* 线 DO
*
* @author
*/
@TableName("system_business_warehouse")
@KeySequence("system_business_warehouse_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BusinessWarehouseDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 线
*/
private String businessCode;
/**
* 线
*/
private String name;
/**
* 线
*/
private String businessSimple;
/**
* 线LOGO
*/
private String businessLogo;
/**
* id
*/
private Long parentId;
/**
*
*
* {@link TODO business_type }
*/
private String type;
/**
*
*
* {@link TODO class_status }
*/
private String status;
/**
*
*/
private Integer institutionNum;
/**
*
*/
private Integer employeeNum;
/**
*
*
* {@link TODO duty_type }
*/
private String industry;
/**
*
*/
private String city;
/**
*
*/
private LocalDateTime establishDate;
/**
*
*/
private Long belongUserId;
/**
* /线/
*/
private String brandName;
/**
*
*/
private Integer phone;
/**
* 线(0线,1)
*
* {@link TODO diff_flag }
*/
private String diffFlag;
/**
*
*/
private String fax;
/**
*
*/
private String url;
/**
*
*/
private String description;
}

@ -3,13 +3,10 @@ package com.yunxi.scm.module.system.dal.dataobject.dept;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.tenant.core.db.TenantBaseDO;
import com.yunxi.scm.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -67,13 +64,4 @@ public class DeptDO extends TenantBaseDO {
*/
private Integer status;
/**
* id
*/
private Long enterpriseId;
@TableField(exist = false)
private List<DeptSimpleRespVO> children;
}

@ -5,7 +5,6 @@ import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -48,9 +47,4 @@ public class PostDO extends BaseDO {
*/
private String remark;
/**
* id
*/
private Long enterpriseId;
}

@ -75,8 +75,4 @@ public class RoleDO extends TenantBaseDO {
@TableField(typeHandler = JsonLongSetTypeHandler.class)
private Set<Long> dataScopeDeptIds;
/**
* id
*/
private Long enterpriseId;
}

@ -1,17 +1,13 @@
package com.yunxi.scm.module.system.dal.dataobject.tenant;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.time.LocalDateTime;
import java.util.List;
/**
* DO
@ -83,8 +79,4 @@ public class TenantDO extends BaseDO {
*/
private Integer accountCount;
@TableField(exist = false)
private List<EnterpriseDO> enterpriseList;
}

@ -3,9 +3,6 @@ package com.yunxi.scm.module.system.dal.dataobject.user;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.mybatis.core.type.JsonLongSetTypeHandler;
import com.yunxi.scm.framework.tenant.core.db.TenantBaseDO;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import com.yunxi.scm.module.system.enums.common.SexEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
@ -15,7 +12,6 @@ import lombok.*;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
/**
@ -96,59 +92,5 @@ public class AdminUserDO extends TenantBaseDO {
*
*/
private LocalDateTime loginDate;
/**
*
*/
private String jobNumber;
/**
*
*/
private String wechatAccount;
/**
*
*/
private LocalDateTime birthDatetime;
/**
*
*/
private String nativePlace;
/**
*
*/
private String education;
/**
*
*/
private String speciality;
/**
*
*/
private String graduationInstitution;
/**
*
*/
private LocalDateTime institutionDatatime;
/**
*
*/
private String personalProfile;
private Long defaultEnterpriseId;
private Long enterpriseId;
@TableField(exist = false)
private List<TenantDO> tenantDOList;
@TableField(exist = false)
private List<EnterpriseDO> enterpriseList;
@TableField(exist = false)
private List<BusinessWarehouseDO> businessWarehouseList;
@TableField(exist = false)
private EnterpriseDO enterprise;
@TableField(exist = false)
private TenantDO tenantDO;
}

@ -1,36 +0,0 @@
package com.yunxi.scm.module.system.dal.mysql.businessenterpriserelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
/**
* 线 Mapper
*
* @author
*/
@Mapper
public interface BusinessEnterpriseRelationalMapper extends BaseMapperX<BusinessEnterpriseRelationalDO> {
default PageResult<BusinessEnterpriseRelationalDO> selectPage(BusinessEnterpriseRelationalPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessEnterpriseRelationalDO>()
.eqIfPresent(BusinessEnterpriseRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessEnterpriseRelationalDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BusinessEnterpriseRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessEnterpriseRelationalDO::getId));
}
default List<BusinessEnterpriseRelationalDO> selectList(BusinessEnterpriseRelationalExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BusinessEnterpriseRelationalDO>()
.eqIfPresent(BusinessEnterpriseRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessEnterpriseRelationalDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BusinessEnterpriseRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessEnterpriseRelationalDO::getId));
}
}

@ -1,36 +0,0 @@
package com.yunxi.scm.module.system.dal.mysql.businessuserrelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
/**
* 线 Mapper
*
* @author
*/
@Mapper
public interface BusinessUserRelationalMapper extends BaseMapperX<BusinessUserRelationalDO> {
default PageResult<BusinessUserRelationalDO> selectPage(BusinessUserRelationalPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessUserRelationalDO>()
.eqIfPresent(BusinessUserRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessUserRelationalDO::getUserId, reqVO.getUserId())
.betweenIfPresent(BusinessUserRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessUserRelationalDO::getId));
}
default List<BusinessUserRelationalDO> selectList(BusinessUserRelationalExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BusinessUserRelationalDO>()
.eqIfPresent(BusinessUserRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessUserRelationalDO::getUserId, reqVO.getUserId())
.betweenIfPresent(BusinessUserRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessUserRelationalDO::getId));
}
}

@ -1,131 +0,0 @@
package com.yunxi.scm.module.system.dal.mysql.businesswarehouse;
import java.util.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.PostDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.UserPostDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
/**
* 线 Mapper
*
* @author
*/
@Mapper
public interface BusinessWarehouseMapper extends BaseMapperX<BusinessWarehouseDO> {
default PageResult<BusinessWarehouseDO> selectPage(BusinessWarehousePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessWarehouseDO>()
.eqIfPresent(BusinessWarehouseDO::getBusinessCode, reqVO.getBusinessCode())
.likeIfPresent(BusinessWarehouseDO::getName, reqVO.getName())
.eqIfPresent(BusinessWarehouseDO::getBusinessSimple, reqVO.getBusinessSimple())
.eqIfPresent(BusinessWarehouseDO::getBusinessLogo, reqVO.getBusinessLogo())
.eqIfPresent(BusinessWarehouseDO::getParentId, reqVO.getParentId())
.eqIfPresent(BusinessWarehouseDO::getType, reqVO.getType())
.eqIfPresent(BusinessWarehouseDO::getStatus, reqVO.getStatus())
.eqIfPresent(BusinessWarehouseDO::getInstitutionNum, reqVO.getInstitutionNum())
.eqIfPresent(BusinessWarehouseDO::getEmployeeNum, reqVO.getEmployeeNum())
.eqIfPresent(BusinessWarehouseDO::getIndustry, reqVO.getIndustry())
.eqIfPresent(BusinessWarehouseDO::getCity, reqVO.getCity())
.betweenIfPresent(BusinessWarehouseDO::getEstablishDate, reqVO.getEstablishDate())
.eqIfPresent(BusinessWarehouseDO::getBelongUserId, reqVO.getBelongUserId())
.likeIfPresent(BusinessWarehouseDO::getBrandName, reqVO.getBrandName())
.eqIfPresent(BusinessWarehouseDO::getPhone, reqVO.getPhone())
.eqIfPresent(BusinessWarehouseDO::getDiffFlag, reqVO.getDiffFlag())
.eqIfPresent(BusinessWarehouseDO::getFax, reqVO.getFax())
.eqIfPresent(BusinessWarehouseDO::getUrl, reqVO.getUrl())
.eqIfPresent(BusinessWarehouseDO::getDescription, reqVO.getDescription())
.betweenIfPresent(BusinessWarehouseDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessWarehouseDO::getId));
}
default List<BusinessWarehouseDO> selectList(BusinessWarehouseExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BusinessWarehouseDO>()
.eqIfPresent(BusinessWarehouseDO::getBusinessCode, reqVO.getBusinessCode())
.likeIfPresent(BusinessWarehouseDO::getName, reqVO.getName())
.eqIfPresent(BusinessWarehouseDO::getBusinessSimple, reqVO.getBusinessSimple())
.eqIfPresent(BusinessWarehouseDO::getBusinessLogo, reqVO.getBusinessLogo())
.eqIfPresent(BusinessWarehouseDO::getParentId, reqVO.getParentId())
.eqIfPresent(BusinessWarehouseDO::getType, reqVO.getType())
.eqIfPresent(BusinessWarehouseDO::getStatus, reqVO.getStatus())
.eqIfPresent(BusinessWarehouseDO::getInstitutionNum, reqVO.getInstitutionNum())
.eqIfPresent(BusinessWarehouseDO::getEmployeeNum, reqVO.getEmployeeNum())
.eqIfPresent(BusinessWarehouseDO::getIndustry, reqVO.getIndustry())
.eqIfPresent(BusinessWarehouseDO::getCity, reqVO.getCity())
.betweenIfPresent(BusinessWarehouseDO::getEstablishDate, reqVO.getEstablishDate())
.eqIfPresent(BusinessWarehouseDO::getBelongUserId, reqVO.getBelongUserId())
.likeIfPresent(BusinessWarehouseDO::getBrandName, reqVO.getBrandName())
.eqIfPresent(BusinessWarehouseDO::getPhone, reqVO.getPhone())
.eqIfPresent(BusinessWarehouseDO::getDiffFlag, reqVO.getDiffFlag())
.eqIfPresent(BusinessWarehouseDO::getFax, reqVO.getFax())
.eqIfPresent(BusinessWarehouseDO::getUrl, reqVO.getUrl())
.eqIfPresent(BusinessWarehouseDO::getDescription, reqVO.getDescription())
.betweenIfPresent(BusinessWarehouseDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessWarehouseDO::getId));
}
default List<BusinessWarehouseDO> simpleBusiness(BusinessWarehousePageReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BusinessWarehouseDO>()
.eqIfPresent(BusinessWarehouseDO::getStatus, reqVO.getStatus())
.eqIfPresent(BusinessWarehouseDO::getDiffFlag, reqVO.getDiffFlag()));
}
List<BusinessWarehouseDO> getBusinessWarehouseListByUserId(Long id);
default PageResult<BusinessWarehouseDO> selectBusinessPage(BusinessWarehousePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessWarehouseDO>()
.eqIfPresent(BusinessWarehouseDO::getBusinessCode, reqVO.getBusinessCode())
.likeIfPresent(BusinessWarehouseDO::getName, reqVO.getName())
.eqIfPresent(BusinessWarehouseDO::getBusinessSimple, reqVO.getBusinessSimple())
.eqIfPresent(BusinessWarehouseDO::getBusinessLogo, reqVO.getBusinessLogo())
.eqIfPresent(BusinessWarehouseDO::getParentId, reqVO.getParentId())
.eqIfPresent(BusinessWarehouseDO::getType, reqVO.getType())
.eqIfPresent(BusinessWarehouseDO::getStatus, reqVO.getStatus())
.eqIfPresent(BusinessWarehouseDO::getInstitutionNum, reqVO.getInstitutionNum())
.eqIfPresent(BusinessWarehouseDO::getEmployeeNum, reqVO.getEmployeeNum())
.eqIfPresent(BusinessWarehouseDO::getIndustry, reqVO.getIndustry())
.eqIfPresent(BusinessWarehouseDO::getCity, reqVO.getCity())
.betweenIfPresent(BusinessWarehouseDO::getEstablishDate, reqVO.getEstablishDate())
.eqIfPresent(BusinessWarehouseDO::getBelongUserId, reqVO.getBelongUserId())
.likeIfPresent(BusinessWarehouseDO::getBrandName, reqVO.getBrandName())
.eqIfPresent(BusinessWarehouseDO::getPhone, reqVO.getPhone())
.eqIfPresent(BusinessWarehouseDO::getDiffFlag, "0")
.eqIfPresent(BusinessWarehouseDO::getFax, reqVO.getFax())
.eqIfPresent(BusinessWarehouseDO::getUrl, reqVO.getUrl())
.eqIfPresent(BusinessWarehouseDO::getDescription, reqVO.getDescription())
.betweenIfPresent(BusinessWarehouseDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessWarehouseDO::getId));
}
default IPage<BusinessUserVO> selectBusinessUserPage(Page<BusinessUserVO> page,BusinessUserVO reqVO) {
return selectJoinPage(page,BusinessUserVO.class, new MPJLambdaWrapper<BusinessWarehouseDO>()
.selectAll(AdminUserDO.class)
.selectAs(AdminUserDO::getStatus, BusinessUserVO::getAccountStatus)
.selectAs(DeptDO::getName, BusinessUserVO::getDeptName)
.selectAs(PostDO::getName, BusinessUserVO::getPostName)
.selectAs(BusinessWarehouseDO::getName, BusinessUserVO::getBusinessName)
.leftJoin(BusinessUserRelationalDO.class, BusinessUserRelationalDO::getBusinessId, BusinessWarehouseDO::getId)
.eq(reqVO.getBusinessId() != null,BusinessWarehouseDO::getId,reqVO.getBusinessId())
.leftJoin(AdminUserDO.class, AdminUserDO::getId, BusinessUserRelationalDO::getUserId)
.like(reqVO.getNickname() != null,AdminUserDO::getNickname,reqVO.getNickname())
.leftJoin(DeptDO.class,DeptDO::getId,AdminUserDO::getDeptId)
.leftJoin(UserPostDO.class,UserPostDO::getUserId,AdminUserDO::getId)
.leftJoin(PostDO.class,PostDO::getId,UserPostDO::getPostId)
);
}
}

@ -15,8 +15,7 @@ public interface DeptMapper extends BaseMapperX<DeptDO> {
default List<DeptDO> selectList(DeptListReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<DeptDO>()
.likeIfPresent(DeptDO::getName, reqVO.getName())
.eqIfPresent(DeptDO::getStatus, reqVO.getStatus())
.eqIfPresent(DeptDO::getEnterpriseId, reqVO.getEnterpriseId()));
.eqIfPresent(DeptDO::getStatus, reqVO.getStatus()));
}
default DeptDO selectByParentIdAndName(Long parentId, String name) {

@ -25,7 +25,6 @@ public interface PostMapper extends BaseMapperX<PostDO> {
.likeIfPresent(PostDO::getCode, reqVO.getCode())
.likeIfPresent(PostDO::getName, reqVO.getName())
.eqIfPresent(PostDO::getStatus, reqVO.getStatus())
.eqIfPresent(PostDO::getEnterpriseId, reqVO.getEnterpriseId())
.orderByDesc(PostDO::getId));
}
@ -33,7 +32,6 @@ public interface PostMapper extends BaseMapperX<PostDO> {
return selectList(new LambdaQueryWrapperX<PostDO>()
.likeIfPresent(PostDO::getCode, reqVO.getCode())
.likeIfPresent(PostDO::getName, reqVO.getName())
.eqIfPresent(PostDO::getEnterpriseId, reqVO.getEnterpriseId())
.eqIfPresent(PostDO::getStatus, reqVO.getStatus()));
}

@ -1,56 +0,0 @@
package com.yunxi.scm.module.system.dal.mysql.enterprise;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
*
* @author
*/
@Mapper
public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
default PageResult<EnterpriseDO> selectPage(EnterprisePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<EnterpriseDO>()
.likeIfPresent(EnterpriseDO::getName, reqVO.getName())
.eqIfPresent(EnterpriseDO::getMainType, reqVO.getMainType())
.eqIfPresent(EnterpriseDO::getCode, reqVO.getCode())
.eqIfPresent(EnterpriseDO::getSocietyCode, reqVO.getSocietyCode())
.eqIfPresent(EnterpriseDO::getTransactors, reqVO.getTransactors())
.eqIfPresent(EnterpriseDO::getOperator, reqVO.getOperator())
.eqIfPresent(EnterpriseDO::getLegalOperator, reqVO.getLegalOperator())
.eqIfPresent(EnterpriseDO::getCommissionCertificateType, reqVO.getCommissionCertificateType())
.eqIfPresent(EnterpriseDO::getCommissionOperator, reqVO.getCommissionOperator())
.betweenIfPresent(EnterpriseDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(EnterpriseDO::getEnterpriseType, reqVO.getEnterpriseType())
.eqIfPresent(EnterpriseDO::getParentId, reqVO.getParentId())
.orderByDesc(EnterpriseDO::getId));
}
default List<EnterpriseDO> selectList(EnterpriseExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<EnterpriseDO>()
.likeIfPresent(EnterpriseDO::getName, reqVO.getName())
.eqIfPresent(EnterpriseDO::getMainType, reqVO.getMainType())
.eqIfPresent(EnterpriseDO::getCode, reqVO.getCode())
.eqIfPresent(EnterpriseDO::getSocietyCode, reqVO.getSocietyCode())
.eqIfPresent(EnterpriseDO::getTransactors, reqVO.getTransactors())
.eqIfPresent(EnterpriseDO::getOperator, reqVO.getOperator())
.eqIfPresent(EnterpriseDO::getLegalOperator, reqVO.getLegalOperator())
.eqIfPresent(EnterpriseDO::getCommissionCertificateType, reqVO.getCommissionCertificateType())
.eqIfPresent(EnterpriseDO::getCommissionOperator, reqVO.getCommissionOperator())
.betweenIfPresent(EnterpriseDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(EnterpriseDO::getEnterpriseType, reqVO.getEnterpriseType())
.eqIfPresent(EnterpriseDO::getParentId, reqVO.getParentId())
.orderByDesc(EnterpriseDO::getId));
}
List<EnterpriseDO> getEnterpriseListByTenantId(@Param("tenantId") Long tenantId, @Param("userId") Long userId);
}

@ -21,7 +21,6 @@ public interface RoleMapper extends BaseMapperX<RoleDO> {
.likeIfPresent(RoleDO::getName, reqVO.getName())
.likeIfPresent(RoleDO::getCode, reqVO.getCode())
.eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
.eqIfPresent(RoleDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(RoleDO::getId));
}
@ -31,7 +30,6 @@ public interface RoleMapper extends BaseMapperX<RoleDO> {
.likeIfPresent(RoleDO::getName, reqVO.getName())
.likeIfPresent(RoleDO::getCode, reqVO.getCode())
.eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
.eqIfPresent(RoleDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime()));
}

@ -50,5 +50,4 @@ public interface TenantMapper extends BaseMapperX<TenantDO> {
return selectList(TenantDO::getPackageId, packageId);
}
List<TenantDO> getTenantListByUserId(Long id);
}

@ -105,7 +105,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState()));
}
// 创建 Token 令牌,记录登录日志
return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(),user.getTenantId(), LoginLogTypeEnum.LOGIN_USERNAME);
return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
}
@Override
@ -130,7 +130,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
}
// 创建 Token 令牌,记录登录日志
return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(),user.getTenantId(), LoginLogTypeEnum.LOGIN_MOBILE);
return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE);
}
private void createLoginLog(Long userId, String username,
@ -168,7 +168,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
}
// 创建 Token 令牌,记录登录日志
return createTokenAfterLoginSuccess(user.getId(), user.getUsername(),user.getTenantId(), LoginLogTypeEnum.LOGIN_SOCIAL);
return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL);
}
@VisibleForTesting
@ -190,16 +190,14 @@ public class AdminAuthServiceImpl implements AdminAuthService {
}
}
private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username,Long tenantId, LoginLogTypeEnum logType) {
private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType) {
// 插入登陆日志
createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS);
// 创建访问令牌
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(),
OAuth2ClientConstants.CLIENT_ID_DEFAULT, null);
AuthLoginRespVO authLoginRespVO = AuthConvert.INSTANCE.convert(accessTokenDO);
// 构建返回结果
authLoginRespVO.setTenantId(tenantId);
return authLoginRespVO;
return AuthConvert.INSTANCE.convert(accessTokenDO);
}
@Override

@ -1,70 +0,0 @@
package com.yunxi.scm.module.system.service.businessenterpriserelational;
import java.util.*;
import javax.validation.*;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
/**
* 线 Service
*
* @author
*/
public interface BusinessEnterpriseRelationalService {
/**
* 线
*
* @param createReqVO
* @return
*/
Long createBusinessEnterpriseRelational(@Valid BusinessEnterpriseRelationalCreateReqVO createReqVO);
/**
* 线
*
* @param updateReqVO
*/
void updateBusinessEnterpriseRelational(@Valid BusinessEnterpriseRelationalUpdateReqVO updateReqVO);
/**
* 线
*
* @param id
*/
void deleteBusinessEnterpriseRelational(Long id);
/**
* 线
*
* @param id
* @return 线
*/
BusinessEnterpriseRelationalDO getBusinessEnterpriseRelational(Long id);
/**
* 线
*
* @param ids
* @return 线
*/
List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(Collection<Long> ids);
/**
* 线
*
* @param pageReqVO
* @return 线
*/
PageResult<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalPage(BusinessEnterpriseRelationalPageReqVO pageReqVO);
/**
* 线, Excel
*
* @param exportReqVO
* @return 线
*/
List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(BusinessEnterpriseRelationalExportReqVO exportReqVO);
}

@ -1,82 +0,0 @@
package com.yunxi.scm.module.system.service.businessenterpriserelational;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.system.convert.businessenterpriserelational.BusinessEnterpriseRelationalConvert;
import com.yunxi.scm.module.system.dal.mysql.businessenterpriserelational.BusinessEnterpriseRelationalMapper;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
/**
* 线 Service
*
* @author
*/
@Service
@Validated
public class BusinessEnterpriseRelationalServiceImpl implements BusinessEnterpriseRelationalService {
@Resource
private BusinessEnterpriseRelationalMapper businessEnterpriseRelationalMapper;
@Override
public Long createBusinessEnterpriseRelational(BusinessEnterpriseRelationalCreateReqVO createReqVO) {
// 插入
BusinessEnterpriseRelationalDO businessEnterpriseRelational = BusinessEnterpriseRelationalConvert.INSTANCE.convert(createReqVO);
businessEnterpriseRelationalMapper.insert(businessEnterpriseRelational);
// 返回
return businessEnterpriseRelational.getId();
}
@Override
public void updateBusinessEnterpriseRelational(BusinessEnterpriseRelationalUpdateReqVO updateReqVO) {
// 校验存在
validateBusinessEnterpriseRelationalExists(updateReqVO.getId());
// 更新
BusinessEnterpriseRelationalDO updateObj = BusinessEnterpriseRelationalConvert.INSTANCE.convert(updateReqVO);
businessEnterpriseRelationalMapper.updateById(updateObj);
}
@Override
public void deleteBusinessEnterpriseRelational(Long id) {
// 校验存在
validateBusinessEnterpriseRelationalExists(id);
// 删除
businessEnterpriseRelationalMapper.deleteById(id);
}
private void validateBusinessEnterpriseRelationalExists(Long id) {
if (businessEnterpriseRelationalMapper.selectById(id) == null) {
throw exception(BUSINESS_ENTERPRISE_RELATIONAL_NOT_EXISTS);
}
}
@Override
public BusinessEnterpriseRelationalDO getBusinessEnterpriseRelational(Long id) {
return businessEnterpriseRelationalMapper.selectById(id);
}
@Override
public List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(Collection<Long> ids) {
return businessEnterpriseRelationalMapper.selectBatchIds(ids);
}
@Override
public PageResult<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalPage(BusinessEnterpriseRelationalPageReqVO pageReqVO) {
return businessEnterpriseRelationalMapper.selectPage(pageReqVO);
}
@Override
public List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(BusinessEnterpriseRelationalExportReqVO exportReqVO) {
return businessEnterpriseRelationalMapper.selectList(exportReqVO);
}
}

@ -1,70 +0,0 @@
package com.yunxi.scm.module.system.service.businessuserrelational;
import java.util.*;
import javax.validation.*;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
/**
* 线 Service
*
* @author
*/
public interface BusinessUserRelationalService {
/**
* 线
*
* @param createReqVO
* @return
*/
Long createBusinessUserRelational(@Valid BusinessUserRelationalCreateReqVO createReqVO);
/**
* 线
*
* @param updateReqVO
*/
void updateBusinessUserRelational(@Valid BusinessUserRelationalUpdateReqVO updateReqVO);
/**
* 线
*
* @param id
*/
void deleteBusinessUserRelational(Long id);
/**
* 线
*
* @param id
* @return 线
*/
BusinessUserRelationalDO getBusinessUserRelational(Long id);
/**
* 线
*
* @param ids
* @return 线
*/
List<BusinessUserRelationalDO> getBusinessUserRelationalList(Collection<Long> ids);
/**
* 线
*
* @param pageReqVO
* @return 线
*/
PageResult<BusinessUserRelationalDO> getBusinessUserRelationalPage(BusinessUserRelationalPageReqVO pageReqVO);
/**
* 线, Excel
*
* @param exportReqVO
* @return 线
*/
List<BusinessUserRelationalDO> getBusinessUserRelationalList(BusinessUserRelationalExportReqVO exportReqVO);
}

@ -1,82 +0,0 @@
package com.yunxi.scm.module.system.service.businessuserrelational;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.system.convert.businessuserrelational.BusinessUserRelationalConvert;
import com.yunxi.scm.module.system.dal.mysql.businessuserrelational.BusinessUserRelationalMapper;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
/**
* 线 Service
*
* @author
*/
@Service
@Validated
public class BusinessUserRelationalServiceImpl implements BusinessUserRelationalService {
@Resource
private BusinessUserRelationalMapper businessUserRelationalMapper;
@Override
public Long createBusinessUserRelational(BusinessUserRelationalCreateReqVO createReqVO) {
// 插入
BusinessUserRelationalDO businessUserRelational = BusinessUserRelationalConvert.INSTANCE.convert(createReqVO);
businessUserRelationalMapper.insert(businessUserRelational);
// 返回
return businessUserRelational.getId();
}
@Override
public void updateBusinessUserRelational(BusinessUserRelationalUpdateReqVO updateReqVO) {
// 校验存在
validateBusinessUserRelationalExists(updateReqVO.getId());
// 更新
BusinessUserRelationalDO updateObj = BusinessUserRelationalConvert.INSTANCE.convert(updateReqVO);
businessUserRelationalMapper.updateById(updateObj);
}
@Override
public void deleteBusinessUserRelational(Long id) {
// 校验存在
validateBusinessUserRelationalExists(id);
// 删除
businessUserRelationalMapper.deleteById(id);
}
private void validateBusinessUserRelationalExists(Long id) {
if (businessUserRelationalMapper.selectById(id) == null) {
throw exception(BUSINESS_USER_RELATIONAL_NOT_EXISTS);
}
}
@Override
public BusinessUserRelationalDO getBusinessUserRelational(Long id) {
return businessUserRelationalMapper.selectById(id);
}
@Override
public List<BusinessUserRelationalDO> getBusinessUserRelationalList(Collection<Long> ids) {
return businessUserRelationalMapper.selectBatchIds(ids);
}
@Override
public PageResult<BusinessUserRelationalDO> getBusinessUserRelationalPage(BusinessUserRelationalPageReqVO pageReqVO) {
return businessUserRelationalMapper.selectPage(pageReqVO);
}
@Override
public List<BusinessUserRelationalDO> getBusinessUserRelationalList(BusinessUserRelationalExportReqVO exportReqVO) {
return businessUserRelationalMapper.selectList(exportReqVO);
}
}

@ -1,95 +0,0 @@
package com.yunxi.scm.module.system.service.businesswarehouse;
import java.util.*;
import javax.validation.*;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
/**
* 线 Service
*
* @author
*/
public interface BusinessWarehouseService {
/**
* 线
*
* @param createReqVO
* @return
*/
Long createBusinessWarehouse(@Valid BusinessWarehouseCreateReqVO createReqVO);
/**
* 线
*
* @param updateReqVO
*/
void updateBusinessWarehouse(@Valid BusinessWarehouseUpdateReqVO updateReqVO);
/**
* 线
*
* @param id
*/
void deleteBusinessWarehouse(Long id);
/**
* 线
*
* @param id
* @return 线
*/
BusinessWarehouseDO getBusinessWarehouse(Long id);
/**
* 线
*
* @param ids
* @return 线
*/
List<BusinessWarehouseDO> getBusinessWarehouseList(Collection<Long> ids);
/**
* 线
*
* @param pageReqVO
* @return 线
*/
PageResult<BusinessWarehouseDO> getBusinessWarehousePage(BusinessWarehousePageReqVO pageReqVO);
/**
* 线
*
* @param pageReqVO
* @return 线
*/
PageResult<BusinessWarehouseDO> getBusinessPage(BusinessWarehousePageReqVO pageReqVO);
/**
* 线, Excel
*
* @param exportReqVO
* @return 线
*/
List<BusinessWarehouseDO> getBusinessWarehouseList(BusinessWarehouseExportReqVO exportReqVO);
/**
* 线
* */
List<BusinessWarehouseDO> getBusinessSimpleList(BusinessWarehousePageReqVO pageReqVO);
/**
* id线
*
* @param id id
* @return 线
*/
List<BusinessWarehouseDO> getBusinessWarehouseListByUserId(Long id);
PageResult<BusinessUserVO> getBusinessUserList(BusinessUserVO reqVO);
}

@ -1,105 +0,0 @@
package com.yunxi.scm.module.system.service.businesswarehouse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.system.convert.businesswarehouse.BusinessWarehouseConvert;
import com.yunxi.scm.module.system.dal.mysql.businesswarehouse.BusinessWarehouseMapper;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
/**
* 线 Service
*
* @author
*/
@Service
@Validated
public class BusinessWarehouseServiceImpl implements BusinessWarehouseService {
@Resource
private BusinessWarehouseMapper businessWarehouseMapper;
@Override
public Long createBusinessWarehouse(BusinessWarehouseCreateReqVO createReqVO) {
// 插入
BusinessWarehouseDO businessWarehouse = BusinessWarehouseConvert.INSTANCE.convert(createReqVO);
businessWarehouseMapper.insert(businessWarehouse);
// 返回
return businessWarehouse.getId();
}
@Override
public void updateBusinessWarehouse(BusinessWarehouseUpdateReqVO updateReqVO) {
// 校验存在
validateBusinessWarehouseExists(updateReqVO.getId());
// 更新
BusinessWarehouseDO updateObj = BusinessWarehouseConvert.INSTANCE.convert(updateReqVO);
businessWarehouseMapper.updateById(updateObj);
}
@Override
public void deleteBusinessWarehouse(Long id) {
// 校验存在
validateBusinessWarehouseExists(id);
// 删除
businessWarehouseMapper.deleteById(id);
}
private void validateBusinessWarehouseExists(Long id) {
if (businessWarehouseMapper.selectById(id) == null) {
throw exception(BUSINESS_WAREHOUSE_NOT_EXISTS);
}
}
@Override
public BusinessWarehouseDO getBusinessWarehouse(Long id) {
return businessWarehouseMapper.selectById(id);
}
@Override
public List<BusinessWarehouseDO> getBusinessWarehouseList(Collection<Long> ids) {
return businessWarehouseMapper.selectBatchIds(ids);
}
@Override
public PageResult<BusinessWarehouseDO> getBusinessWarehousePage(BusinessWarehousePageReqVO pageReqVO) {
return businessWarehouseMapper.selectPage(pageReqVO);
}
@Override
public PageResult<BusinessWarehouseDO> getBusinessPage(BusinessWarehousePageReqVO pageReqVO) {
return businessWarehouseMapper.selectBusinessPage(pageReqVO);
}
@Override
public List<BusinessWarehouseDO> getBusinessWarehouseList(BusinessWarehouseExportReqVO exportReqVO) {
return businessWarehouseMapper.selectList(exportReqVO);
}
@Override
public List<BusinessWarehouseDO> getBusinessSimpleList(BusinessWarehousePageReqVO pageReqVO) {
return businessWarehouseMapper.simpleBusiness(pageReqVO);
}
@Override
public List<BusinessWarehouseDO> getBusinessWarehouseListByUserId(Long id) {
return businessWarehouseMapper.getBusinessWarehouseListByUserId(id);
}
@Override
public PageResult<BusinessUserVO> getBusinessUserList(BusinessUserVO reqVO) {
Page<BusinessUserVO> page = new Page<>(reqVO.getPageNo(), reqVO.getPageSize());
IPage<BusinessUserVO> result = businessWarehouseMapper.selectBusinessUserPage(page,reqVO);
return new PageResult<>(result.getRecords(), result.getTotal());
}
}

@ -4,9 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.yunxi.scm.framework.common.util.collection.CollectionUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
import com.yunxi.scm.module.system.controller.admin.user.vo.user.UserPageItemRespVO;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import java.util.*;
@ -103,9 +101,4 @@ public interface DeptService {
*/
void validateDeptList(Collection<Long> ids);
/**
*
*
*/
List<DeptSimpleRespVO> buildTree(List<DeptSimpleRespVO> deptDOList, long pid);
}

@ -6,16 +6,13 @@ import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.datapermission.core.annotation.DataPermission;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
import com.yunxi.scm.module.system.convert.dept.DeptConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.dal.mysql.dept.DeptMapper;
import com.yunxi.scm.module.system.dal.redis.RedisKeyConstants;
import com.yunxi.scm.module.system.enums.dept.DeptIdEnum;
import com.google.common.annotations.VisibleForTesting;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
@ -205,17 +202,4 @@ public class DeptServiceImpl implements DeptService {
});
}
@Override
public List<DeptSimpleRespVO> buildTree(List<DeptSimpleRespVO> deptDOList, long pid) {
List<DeptSimpleRespVO> treeList = new ArrayList<>();
for (DeptSimpleRespVO dept : deptDOList) {
if (dept.getParentId() == pid) {
dept.setChildren(buildTree(deptDOList, dept.getId()));
treeList.add(dept);
}
}
return treeList;
}
}

@ -128,11 +128,4 @@ public interface TenantService {
* @param id
*/
void validTenant(Long id);
/**
* id
*
* @param id
*/
List<TenantDO> getTenantListByUserId(Long id);
}

@ -95,11 +95,6 @@ public class TenantServiceImpl implements TenantService {
}
}
@Override
public List<TenantDO> getTenantListByUserId(Long id) {
return tenantMapper.getTenantListByUserId(id);
}
@Override
@DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换
public Long createTenant(TenantCreateReqVO createReqVO) {

@ -14,18 +14,13 @@ import com.yunxi.scm.module.system.controller.admin.user.vo.profile.UserProfileU
import com.yunxi.scm.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
import com.yunxi.scm.module.system.controller.admin.user.vo.user.*;
import com.yunxi.scm.module.system.convert.user.UserConvert;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.UserPostDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.dal.mysql.dept.UserPostMapper;
import com.yunxi.scm.module.system.dal.mysql.user.AdminUserMapper;
import com.yunxi.scm.module.system.service.businesswarehouse.BusinessWarehouseService;
import com.yunxi.scm.module.system.service.dept.DeptService;
import com.yunxi.scm.module.system.service.dept.PostService;
import com.yunxi.scm.module.system.service.enterprise.EnterpriseService;
import com.yunxi.scm.module.system.service.permission.PermissionService;
import com.yunxi.scm.module.system.service.tenant.TenantService;
import com.google.common.annotations.VisibleForTesting;
@ -76,12 +71,6 @@ public class AdminUserServiceImpl implements AdminUserService {
@Resource
private UserPostMapper userPostMapper;
@Resource
private EnterpriseService enterpriseService;
@Resource
private BusinessWarehouseService businessWarehouseService;
@Resource
private FileApi fileApi;
@ -231,28 +220,7 @@ public class AdminUserServiceImpl implements AdminUserService {
@Override
public AdminUserDO getUser(Long id) {
AdminUserDO adminUserDO = userMapper.selectById(id);
//查询对应的租户
List<TenantDO> tenantDOList = tenantService.getTenantListByUserId(adminUserDO.getId());
for (TenantDO tenantDO: tenantDOList) {
//查询租户下的机构
List<EnterpriseDO> enterpriseList = enterpriseService.getEnterpriseListByTenantId(tenantDO.getId(), adminUserDO.getId());
tenantDO.setEnterpriseList(enterpriseList);
if(adminUserDO.getTenantId().equals(tenantDO.getId())){
adminUserDO.setEnterpriseList(enterpriseList);
}
}
adminUserDO.setTenantDOList(tenantDOList);
//根据userID查找对应业务线
List<BusinessWarehouseDO> businessWarehouseDOList = businessWarehouseService.getBusinessWarehouseListByUserId(adminUserDO.getId());
adminUserDO.setBusinessWarehouseList(businessWarehouseDOList);
//查询当前企业信息
EnterpriseDO enterpriseDO = enterpriseService.getEnterprise(adminUserDO.getEnterpriseId());
adminUserDO.setEnterprise(enterpriseDO);
//查询当前租户信息
TenantDO tenantDO = tenantService.getTenant(adminUserDO.getTenantId());
adminUserDO.setTenantDO(tenantDO);
return adminUserDO;
return userMapper.selectById(id);
}
@Override

@ -1,16 +0,0 @@
<?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.yunxi.scm.module.system.dal.mysql.businesswarehouse.BusinessWarehouseMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getBusinessWarehouseListByUserId"
resultType="com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO" >
SELECT * from system_business_warehouse where id in (SELECT business_id from system_business_user_relational where user_id = #{id})
</select>
</mapper>

@ -1,15 +0,0 @@
<?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.yunxi.scm.module.system.dal.mysql.enterprise.EnterpriseMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getEnterpriseListByTenantId"
resultType="com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO" >
SELECT * from system_enterprise where id in (SELECT enterprise_id from system_user_enterprise_relational where tenant_id = #{tenantId} AND user_id = #{userId})
</select>
</mapper>

@ -1,16 +0,0 @@
<?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.yunxi.scm.module.system.dal.mysql.tenant.TenantMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getTenantListByUserId"
resultType="com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO" >
SELECT * from system_tenant where id in (SELECT tenant_id from system_user_enterprise_relational where user_id = #{id})
</select>
</mapper>

@ -1,303 +0,0 @@
package com.yunxi.scm.module.system.service.businesswarehouse;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.mock.mockito.MockBean;
import javax.annotation.Resource;
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.mysql.businesswarehouse.BusinessWarehouseMapper;
import com.yunxi.scm.framework.common.pojo.PageResult;
import javax.annotation.Resource;
import org.springframework.context.annotation.Import;
import java.util.*;
import java.time.LocalDateTime;
import static cn.hutool.core.util.RandomUtil.*;
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/**
* {@link BusinessWarehouseServiceImpl}
*
* @author
*/
@Import(BusinessWarehouseServiceImpl.class)
public class BusinessWarehouseServiceImplTest extends BaseDbUnitTest {
@Resource
private BusinessWarehouseServiceImpl businessWarehouseService;
@Resource
private BusinessWarehouseMapper businessWarehouseMapper;
@Test
public void testCreateBusinessWarehouse_success() {
// 准备参数
BusinessWarehouseCreateReqVO reqVO = randomPojo(BusinessWarehouseCreateReqVO.class);
// 调用
Long businessWarehouseId = businessWarehouseService.createBusinessWarehouse(reqVO);
// 断言
assertNotNull(businessWarehouseId);
// 校验记录的属性是否正确
BusinessWarehouseDO businessWarehouse = businessWarehouseMapper.selectById(businessWarehouseId);
assertPojoEquals(reqVO, businessWarehouse);
}
@Test
public void testUpdateBusinessWarehouse_success() {
// mock 数据
BusinessWarehouseDO dbBusinessWarehouse = randomPojo(BusinessWarehouseDO.class);
businessWarehouseMapper.insert(dbBusinessWarehouse);// @Sql: 先插入出一条存在的数据
// 准备参数
BusinessWarehouseUpdateReqVO reqVO = randomPojo(BusinessWarehouseUpdateReqVO.class, o -> {
o.setId(dbBusinessWarehouse.getId()); // 设置更新的 ID
});
// 调用
businessWarehouseService.updateBusinessWarehouse(reqVO);
// 校验是否更新正确
BusinessWarehouseDO businessWarehouse = businessWarehouseMapper.selectById(reqVO.getId()); // 获取最新的
assertPojoEquals(reqVO, businessWarehouse);
}
@Test
public void testUpdateBusinessWarehouse_notExists() {
// 准备参数
BusinessWarehouseUpdateReqVO reqVO = randomPojo(BusinessWarehouseUpdateReqVO.class);
// 调用, 并断言异常
assertServiceException(() -> businessWarehouseService.updateBusinessWarehouse(reqVO), BUSINESS_WAREHOUSE_NOT_EXISTS);
}
@Test
public void testDeleteBusinessWarehouse_success() {
// mock 数据
BusinessWarehouseDO dbBusinessWarehouse = randomPojo(BusinessWarehouseDO.class);
businessWarehouseMapper.insert(dbBusinessWarehouse);// @Sql: 先插入出一条存在的数据
// 准备参数
Long id = dbBusinessWarehouse.getId();
// 调用
businessWarehouseService.deleteBusinessWarehouse(id);
// 校验数据不存在了
assertNull(businessWarehouseMapper.selectById(id));
}
@Test
public void testDeleteBusinessWarehouse_notExists() {
// 准备参数
Long id = randomLongId();
// 调用, 并断言异常
assertServiceException(() -> businessWarehouseService.deleteBusinessWarehouse(id), BUSINESS_WAREHOUSE_NOT_EXISTS);
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetBusinessWarehousePage() {
// mock 数据
BusinessWarehouseDO dbBusinessWarehouse = randomPojo(BusinessWarehouseDO.class, o -> { // 等会查询到
o.setBusinessCode(null);
o.setName(null);
o.setBusinessSimple(null);
o.setBusinessLogo(null);
o.setParentId(null);
o.setType(null);
o.setStatus(null);
o.setInstitutionNum(null);
o.setEmployeeNum(null);
o.setIndustry(null);
o.setCity(null);
o.setEstablishDate(null);
o.setBelongUserId(null);
o.setBrandName(null);
o.setPhone(null);
o.setDiffFlag(null);
o.setFax(null);
o.setUrl(null);
o.setDescription(null);
o.setCreateTime(null);
});
businessWarehouseMapper.insert(dbBusinessWarehouse);
// 测试 businessCode 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBusinessCode(null)));
// 测试 name 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setName(null)));
// 测试 businessSimple 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBusinessSimple(null)));
// 测试 businessLogo 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBusinessLogo(null)));
// 测试 parentId 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setParentId(null)));
// 测试 type 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setType(null)));
// 测试 status 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setStatus(null)));
// 测试 institutionNum 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setInstitutionNum(null)));
// 测试 employeeNum 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setEmployeeNum(null)));
// 测试 industry 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setIndustry(null)));
// 测试 city 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setCity(null)));
// 测试 establishDate 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setEstablishDate(null)));
// 测试 belongUserId 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBelongUserId(null)));
// 测试 brandName 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBrandName(null)));
// 测试 phone 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setPhone(null)));
// 测试 diffFlag 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setDiffFlag(null)));
// 测试 fax 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setFax(null)));
// 测试 url 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setUrl(null)));
// 测试 description 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setDescription(null)));
// 测试 createTime 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setCreateTime(null)));
// 准备参数
BusinessWarehousePageReqVO reqVO = new BusinessWarehousePageReqVO();
reqVO.setBusinessCode(null);
reqVO.setName(null);
reqVO.setBusinessSimple(null);
reqVO.setBusinessLogo(null);
reqVO.setParentId(null);
reqVO.setType(null);
reqVO.setStatus(null);
reqVO.setInstitutionNum(null);
reqVO.setEmployeeNum(null);
reqVO.setIndustry(null);
reqVO.setCity(null);
reqVO.setEstablishDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setBelongUserId(null);
reqVO.setBrandName(null);
reqVO.setPhone(null);
reqVO.setDiffFlag(null);
reqVO.setFax(null);
reqVO.setUrl(null);
reqVO.setDescription(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
PageResult<BusinessWarehouseDO> pageResult = businessWarehouseService.getBusinessWarehousePage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
assertPojoEquals(dbBusinessWarehouse, pageResult.getList().get(0));
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetBusinessWarehouseList() {
// mock 数据
BusinessWarehouseDO dbBusinessWarehouse = randomPojo(BusinessWarehouseDO.class, o -> { // 等会查询到
o.setBusinessCode(null);
o.setName(null);
o.setBusinessSimple(null);
o.setBusinessLogo(null);
o.setParentId(null);
o.setType(null);
o.setStatus(null);
o.setInstitutionNum(null);
o.setEmployeeNum(null);
o.setIndustry(null);
o.setCity(null);
o.setEstablishDate(null);
o.setBelongUserId(null);
o.setBrandName(null);
o.setPhone(null);
o.setDiffFlag(null);
o.setFax(null);
o.setUrl(null);
o.setDescription(null);
o.setCreateTime(null);
});
businessWarehouseMapper.insert(dbBusinessWarehouse);
// 测试 businessCode 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBusinessCode(null)));
// 测试 name 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setName(null)));
// 测试 businessSimple 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBusinessSimple(null)));
// 测试 businessLogo 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBusinessLogo(null)));
// 测试 parentId 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setParentId(null)));
// 测试 type 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setType(null)));
// 测试 status 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setStatus(null)));
// 测试 institutionNum 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setInstitutionNum(null)));
// 测试 employeeNum 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setEmployeeNum(null)));
// 测试 industry 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setIndustry(null)));
// 测试 city 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setCity(null)));
// 测试 establishDate 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setEstablishDate(null)));
// 测试 belongUserId 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBelongUserId(null)));
// 测试 brandName 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setBrandName(null)));
// 测试 phone 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setPhone(null)));
// 测试 diffFlag 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setDiffFlag(null)));
// 测试 fax 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setFax(null)));
// 测试 url 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setUrl(null)));
// 测试 description 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setDescription(null)));
// 测试 createTime 不匹配
businessWarehouseMapper.insert(cloneIgnoreId(dbBusinessWarehouse, o -> o.setCreateTime(null)));
// 准备参数
BusinessWarehouseExportReqVO reqVO = new BusinessWarehouseExportReqVO();
reqVO.setBusinessCode(null);
reqVO.setName(null);
reqVO.setBusinessSimple(null);
reqVO.setBusinessLogo(null);
reqVO.setParentId(null);
reqVO.setType(null);
reqVO.setStatus(null);
reqVO.setInstitutionNum(null);
reqVO.setEmployeeNum(null);
reqVO.setIndustry(null);
reqVO.setCity(null);
reqVO.setEstablishDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setBelongUserId(null);
reqVO.setBrandName(null);
reqVO.setPhone(null);
reqVO.setDiffFlag(null);
reqVO.setFax(null);
reqVO.setUrl(null);
reqVO.setDescription(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
List<BusinessWarehouseDO> list = businessWarehouseService.getBusinessWarehouseList(reqVO);
// 断言
assertEquals(1, list.size());
assertPojoEquals(dbBusinessWarehouse, list.get(0));
}
}

@ -1,4 +0,0 @@
/**
* System API API
*/
package com.yunxi.scm.module.xxjj.api;

@ -30,11 +30,6 @@
<artifactId>yunxi-spring-boot-starter-biz-operatelog</artifactId>
</dependency>
<dependency>
<groupId>com.yunxi.scm</groupId>
<artifactId>yunxi-spring-boot-starter-biz-tenant</artifactId>
</dependency>
<!-- Web 相关 -->
<dependency>
<groupId>com.yunxi.scm</groupId>

@ -1,102 +0,0 @@
package com.yunxi.scm.module.xxjj.controller.admin.contract;
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.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.yunxi.scm.module.xxjj.controller.admin.contract.vo.*;
import com.yunxi.scm.module.xxjj.dal.dataobject.contract.ContractDO;
import com.yunxi.scm.module.xxjj.convert.contract.ContractConvert;
import com.yunxi.scm.module.xxjj.service.contract.ContractService;
@Tag(name = "管理后台 - 合同信息")
@RestController
@RequestMapping("/xxjj/contract")
@Validated
public class ContractController {
@Resource
private ContractService contractService;
@PostMapping("/create")
@Operation(summary = "创建合同信息")
@PreAuthorize("@ss.hasPermission('xxjj:contract:create')")
public CommonResult<Long> createContract(@Valid @RequestBody ContractCreateReqVO createReqVO) {
return success(contractService.createContract(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新合同信息")
@PreAuthorize("@ss.hasPermission('xxjj:contract:update')")
public CommonResult<Boolean> updateContract(@Valid @RequestBody ContractUpdateReqVO updateReqVO) {
contractService.updateContract(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除合同信息")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('xxjj:contract:delete')")
public CommonResult<Boolean> deleteContract(@RequestParam("id") Long id) {
contractService.deleteContract(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得合同信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('xxjj:contract:query')")
public CommonResult<ContractRespVO> getContract(@RequestParam("id") Long id) {
ContractDO contract = contractService.getContract(id);
return success(ContractConvert.INSTANCE.convert(contract));
}
@GetMapping("/list")
@Operation(summary = "获得合同信息列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('xxjj:contract:query')")
public CommonResult<List<ContractRespVO>> getContractList(@RequestParam("ids") Collection<Long> ids) {
List<ContractDO> list = contractService.getContractList(ids);
return success(ContractConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得合同信息分页")
@PreAuthorize("@ss.hasPermission('xxjj:contract:query')")
public CommonResult<PageResult<ContractRespVO>> getContractPage(@Valid ContractPageReqVO pageVO) {
PageResult<ContractDO> pageResult = contractService.getContractPage(pageVO);
return success(ContractConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出合同信息 Excel")
@PreAuthorize("@ss.hasPermission('xxjj:contract:export')")
@OperateLog(type = EXPORT)
public void exportContractExcel(@Valid ContractExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ContractDO> list = contractService.getContractList(exportReqVO);
// 导出 Excel
List<ContractExcelVO> datas = ContractConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "合同信息.xls", "数据", ContractExcelVO.class, datas);
}
}

@ -1,70 +0,0 @@
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* Base VO VO 使
* VO Swagger
*/
@Data
public class ContractBaseVO {
@Schema(description = "合同状态", example = "1")
private String contractStatus;
@Schema(description = "合同类型", example = "2")
private String contractType;
@Schema(description = "合同模板", example = "6806")
private Long contractTemplateId;
@Schema(description = "合同编号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "合同编号不能为空")
private Long contractNumber;
@Schema(description = "合同名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@NotNull(message = "合同名称不能为空")
private String contractName;
@Schema(description = "供应商/客户名称id")
private Long subject;
@Schema(description = "部门id", example = "10183")
private Long deptId;
@Schema(description = "对方合同编号")
private String contractNo;
@Schema(description = "签订地点", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "签订地点不能为空")
private String contractSigned;
@Schema(description = "签订时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "签订时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime contractSignedTime;
@Schema(description = "关联业务线", requiredMode = Schema.RequiredMode.REQUIRED, example = "32066")
@NotNull(message = "关联业务线不能为空")
private Long businessId;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "业务类型不能为空")
private String businessType;
@Schema(description = "申报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "申报时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime declarationTime;
}

@ -1,14 +0,0 @@
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 合同信息创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContractCreateReqVO extends ContractBaseVO {
}

@ -1,72 +0,0 @@
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
/**
* Excel VO
*
* @author
*/
@Data
public class ContractExcelVO {
@ExcelProperty("编号")
private Long id;
@ExcelProperty(value = "合同状态", converter = DictConvert.class)
@DictFormat("contract_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String contractStatus;
@ExcelProperty(value = "合同类型", converter = DictConvert.class)
@DictFormat("contract_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String contractType;
@ExcelProperty("合同模板")
private Long contractTemplateId;
@ExcelProperty("合同编号")
private Long contractNumber;
@ExcelProperty("合同名称")
private String contractName;
@ExcelProperty("供应商/客户名称id")
private Long subject;
@ExcelProperty("部门id")
private Long deptId;
@ExcelProperty("对方合同编号")
private String contractNo;
@ExcelProperty("签订地点")
private String contractSigned;
@ExcelProperty("签订时间")
private LocalDateTime contractSignedTime;
@ExcelProperty("关联业务线")
private Long businessId;
@ExcelProperty(value = "业务类型", converter = DictConvert.class)
@DictFormat("contract_business_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String businessType;
@ExcelProperty("申报时间")
private LocalDateTime declarationTime;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -1,61 +0,0 @@
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 合同信息 Excel 导出 Request VO参数和 ContractPageReqVO 是一致的")
@Data
public class ContractExportReqVO {
@Schema(description = "合同状态", example = "1")
private String contractStatus;
@Schema(description = "合同类型", example = "2")
private String contractType;
@Schema(description = "合同模板", example = "6806")
private Long contractTemplateId;
@Schema(description = "合同编号")
private Long contractNumber;
@Schema(description = "合同名称", example = "王五")
private String contractName;
@Schema(description = "供应商/客户名称id")
private Long subject;
@Schema(description = "部门id", example = "10183")
private Long deptId;
@Schema(description = "对方合同编号")
private String contractNo;
@Schema(description = "签订地点")
private String contractSigned;
@Schema(description = "签订时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] contractSignedTime;
@Schema(description = "关联业务线", example = "32066")
private Long businessId;
@Schema(description = "业务类型", example = "2")
private String businessType;
@Schema(description = "申报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] declarationTime;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,63 +0,0 @@
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.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 ContractPageReqVO extends PageParam {
@Schema(description = "合同状态", example = "1")
private String contractStatus;
@Schema(description = "合同类型", example = "2")
private String contractType;
@Schema(description = "合同模板", example = "6806")
private Long contractTemplateId;
@Schema(description = "合同编号")
private Long contractNumber;
@Schema(description = "合同名称", example = "王五")
private String contractName;
@Schema(description = "供应商/客户名称id")
private Long subject;
@Schema(description = "部门id", example = "10183")
private Long deptId;
@Schema(description = "对方合同编号")
private String contractNo;
@Schema(description = "签订地点")
private String contractSigned;
@Schema(description = "签订时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] contractSignedTime;
@Schema(description = "关联业务线", example = "32066")
private Long businessId;
@Schema(description = "业务类型", example = "2")
private String businessType;
@Schema(description = "申报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] declarationTime;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save