CRM后端六模块代码生成完毕

This commit is contained in:
liuzongkun999
2025-03-12 12:56:45 +08:00
parent 519df7599c
commit c8cce87fe2
48 changed files with 3770 additions and 0 deletions

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.OaBusinessVo;
import com.ruoyi.oa.domain.bo.OaBusinessBo;
import com.ruoyi.oa.service.IOaBusinessService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* CRM 商机
*
* @author ruoyi
* @date 2025-03-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/business")
public class OaBusinessController extends BaseController {
private final IOaBusinessService iOaBusinessService;
/**
* 查询CRM 商机列表
*/
@SaCheckPermission("oa:business:list")
@GetMapping("/list")
public TableDataInfo<OaBusinessVo> list(OaBusinessBo bo, PageQuery pageQuery) {
return iOaBusinessService.queryPageList(bo, pageQuery);
}
/**
* 导出CRM 商机列表
*/
@SaCheckPermission("oa:business:export")
@Log(title = "CRM 商机", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OaBusinessBo bo, HttpServletResponse response) {
List<OaBusinessVo> list = iOaBusinessService.queryList(bo);
ExcelUtil.exportExcel(list, "CRM 商机", OaBusinessVo.class, response);
}
/**
* 获取CRM 商机详细信息
*
* @param businessId 主键
*/
@SaCheckPermission("oa:business:query")
@GetMapping("/{businessId}")
public R<OaBusinessVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long businessId) {
return R.ok(iOaBusinessService.queryById(businessId));
}
/**
* 新增CRM 商机
*/
@SaCheckPermission("oa:business:add")
@Log(title = "CRM 商机", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaBusinessBo bo) {
return toAjax(iOaBusinessService.insertByBo(bo));
}
/**
* 修改CRM 商机
*/
@SaCheckPermission("oa:business:edit")
@Log(title = "CRM 商机", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaBusinessBo bo) {
return toAjax(iOaBusinessService.updateByBo(bo));
}
/**
* 删除CRM 商机
*
* @param businessIds 主键串
*/
@SaCheckPermission("oa:business:remove")
@Log(title = "CRM 商机", businessType = BusinessType.DELETE)
@DeleteMapping("/{businessIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] businessIds) {
return toAjax(iOaBusinessService.deleteWithValidByIds(Arrays.asList(businessIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.OaBusinessProductVo;
import com.ruoyi.oa.domain.bo.OaBusinessProductBo;
import com.ruoyi.oa.service.IOaBusinessProductService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* CRM 商机产品关联
*
* @author ruoyi
* @date 2025-03-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/businessProduct")
public class OaBusinessProductController extends BaseController {
private final IOaBusinessProductService iOaBusinessProductService;
/**
* 查询CRM 商机产品关联列表
*/
@SaCheckPermission("oa:businessProduct:list")
@GetMapping("/list")
public TableDataInfo<OaBusinessProductVo> list(OaBusinessProductBo bo, PageQuery pageQuery) {
return iOaBusinessProductService.queryPageList(bo, pageQuery);
}
/**
* 导出CRM 商机产品关联列表
*/
@SaCheckPermission("oa:businessProduct:export")
@Log(title = "CRM 商机产品关联", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OaBusinessProductBo bo, HttpServletResponse response) {
List<OaBusinessProductVo> list = iOaBusinessProductService.queryList(bo);
ExcelUtil.exportExcel(list, "CRM 商机产品关联", OaBusinessProductVo.class, response);
}
/**
* 获取CRM 商机产品关联详细信息
*
* @param businessProductId 主键
*/
@SaCheckPermission("oa:businessProduct:query")
@GetMapping("/{businessProductId}")
public R<OaBusinessProductVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long businessProductId) {
return R.ok(iOaBusinessProductService.queryById(businessProductId));
}
/**
* 新增CRM 商机产品关联
*/
@SaCheckPermission("oa:businessProduct:add")
@Log(title = "CRM 商机产品关联", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaBusinessProductBo bo) {
return toAjax(iOaBusinessProductService.insertByBo(bo));
}
/**
* 修改CRM 商机产品关联
*/
@SaCheckPermission("oa:businessProduct:edit")
@Log(title = "CRM 商机产品关联", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaBusinessProductBo bo) {
return toAjax(iOaBusinessProductService.updateByBo(bo));
}
/**
* 删除CRM 商机产品关联
*
* @param businessProductIds 主键串
*/
@SaCheckPermission("oa:businessProduct:remove")
@Log(title = "CRM 商机产品关联", businessType = BusinessType.DELETE)
@DeleteMapping("/{businessProductIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] businessProductIds) {
return toAjax(iOaBusinessProductService.deleteWithValidByIds(Arrays.asList(businessProductIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.OaClueVo;
import com.ruoyi.oa.domain.bo.OaClueBo;
import com.ruoyi.oa.service.IOaClueService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* CRM 线索
*
* @author ruoyi
* @date 2025-03-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/clue")
public class OaClueController extends BaseController {
private final IOaClueService iOaClueService;
/**
* 查询CRM 线索列表
*/
@SaCheckPermission("oa:clue:list")
@GetMapping("/list")
public TableDataInfo<OaClueVo> list(OaClueBo bo, PageQuery pageQuery) {
return iOaClueService.queryPageList(bo, pageQuery);
}
/**
* 导出CRM 线索列表
*/
@SaCheckPermission("oa:clue:export")
@Log(title = "CRM 线索", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OaClueBo bo, HttpServletResponse response) {
List<OaClueVo> list = iOaClueService.queryList(bo);
ExcelUtil.exportExcel(list, "CRM 线索", OaClueVo.class, response);
}
/**
* 获取CRM 线索详细信息
*
* @param clueId 主键
*/
@SaCheckPermission("oa:clue:query")
@GetMapping("/{clueId}")
public R<OaClueVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long clueId) {
return R.ok(iOaClueService.queryById(clueId));
}
/**
* 新增CRM 线索
*/
@SaCheckPermission("oa:clue:add")
@Log(title = "CRM 线索", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaClueBo bo) {
return toAjax(iOaClueService.insertByBo(bo));
}
/**
* 修改CRM 线索
*/
@SaCheckPermission("oa:clue:edit")
@Log(title = "CRM 线索", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaClueBo bo) {
return toAjax(iOaClueService.updateByBo(bo));
}
/**
* 删除CRM 线索
*
* @param clueIds 主键串
*/
@SaCheckPermission("oa:clue:remove")
@Log(title = "CRM 线索", businessType = BusinessType.DELETE)
@DeleteMapping("/{clueIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] clueIds) {
return toAjax(iOaClueService.deleteWithValidByIds(Arrays.asList(clueIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.OaCustomerVo;
import com.ruoyi.oa.domain.bo.OaCustomerBo;
import com.ruoyi.oa.service.IOaCustomerService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* CRM 客户
*
* @author ruoyi
* @date 2025-03-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/customer")
public class OaCustomerController extends BaseController {
private final IOaCustomerService iOaCustomerService;
/**
* 查询CRM 客户列表
*/
@SaCheckPermission("oa:customer:list")
@GetMapping("/list")
public TableDataInfo<OaCustomerVo> list(OaCustomerBo bo, PageQuery pageQuery) {
return iOaCustomerService.queryPageList(bo, pageQuery);
}
/**
* 导出CRM 客户列表
*/
@SaCheckPermission("oa:customer:export")
@Log(title = "CRM 客户", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OaCustomerBo bo, HttpServletResponse response) {
List<OaCustomerVo> list = iOaCustomerService.queryList(bo);
ExcelUtil.exportExcel(list, "CRM 客户", OaCustomerVo.class, response);
}
/**
* 获取CRM 客户详细信息
*
* @param customerId 主键
*/
@SaCheckPermission("oa:customer:query")
@GetMapping("/{customerId}")
public R<OaCustomerVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long customerId) {
return R.ok(iOaCustomerService.queryById(customerId));
}
/**
* 新增CRM 客户
*/
@SaCheckPermission("oa:customer:add")
@Log(title = "CRM 客户", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaCustomerBo bo) {
return toAjax(iOaCustomerService.insertByBo(bo));
}
/**
* 修改CRM 客户
*/
@SaCheckPermission("oa:customer:edit")
@Log(title = "CRM 客户", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaCustomerBo bo) {
return toAjax(iOaCustomerService.updateByBo(bo));
}
/**
* 删除CRM 客户
*
* @param customerIds 主键串
*/
@SaCheckPermission("oa:customer:remove")
@Log(title = "CRM 客户", businessType = BusinessType.DELETE)
@DeleteMapping("/{customerIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] customerIds) {
return toAjax(iOaCustomerService.deleteWithValidByIds(Arrays.asList(customerIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.OaFollowUpRecordVo;
import com.ruoyi.oa.domain.bo.OaFollowUpRecordBo;
import com.ruoyi.oa.service.IOaFollowUpRecordService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* CRM 跟进记录
*
* @author ruoyi
* @date 2025-03-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/followUpRecord")
public class OaFollowUpRecordController extends BaseController {
private final IOaFollowUpRecordService iOaFollowUpRecordService;
/**
* 查询CRM 跟进记录列表
*/
@SaCheckPermission("system:followUpRecord:list")
@GetMapping("/list")
public TableDataInfo<OaFollowUpRecordVo> list(OaFollowUpRecordBo bo, PageQuery pageQuery) {
return iOaFollowUpRecordService.queryPageList(bo, pageQuery);
}
/**
* 导出CRM 跟进记录列表
*/
@SaCheckPermission("system:followUpRecord:export")
@Log(title = "CRM 跟进记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OaFollowUpRecordBo bo, HttpServletResponse response) {
List<OaFollowUpRecordVo> list = iOaFollowUpRecordService.queryList(bo);
ExcelUtil.exportExcel(list, "CRM 跟进记录", OaFollowUpRecordVo.class, response);
}
/**
* 获取CRM 跟进记录详细信息
*
* @param followId 主键
*/
@SaCheckPermission("system:followUpRecord:query")
@GetMapping("/{followId}")
public R<OaFollowUpRecordVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long followId) {
return R.ok(iOaFollowUpRecordService.queryById(followId));
}
/**
* 新增CRM 跟进记录
*/
@SaCheckPermission("system:followUpRecord:add")
@Log(title = "CRM 跟进记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaFollowUpRecordBo bo) {
return toAjax(iOaFollowUpRecordService.insertByBo(bo));
}
/**
* 修改CRM 跟进记录
*/
@SaCheckPermission("system:followUpRecord:edit")
@Log(title = "CRM 跟进记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaFollowUpRecordBo bo) {
return toAjax(iOaFollowUpRecordService.updateByBo(bo));
}
/**
* 删除CRM 跟进记录
*
* @param followIds 主键串
*/
@SaCheckPermission("system:followUpRecord:remove")
@Log(title = "CRM 跟进记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{followIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] followIds) {
return toAjax(iOaFollowUpRecordService.deleteWithValidByIds(Arrays.asList(followIds), true));
}
}

View File

@@ -0,0 +1,108 @@
package com.ruoyi.oa.controller;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.OaProductVo;
import com.ruoyi.oa.domain.bo.OaProductBo;
import com.ruoyi.oa.service.IOaProductService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* CRM 产品
*
* @author ruoyi
* @date 2025-03-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oa/product")
public class OaProductController extends BaseController {
private final IOaProductService iOaProductService;
/**
* 查询CRM 产品列表
*/
@SaCheckPermission("oa:product:list")
@GetMapping("/list")
public TableDataInfo<OaProductVo> list(OaProductBo bo, PageQuery pageQuery) {
return iOaProductService.queryPageList(bo, pageQuery);
}
/**
* 导出CRM 产品列表
*/
@SaCheckPermission("oa:product:export")
@Log(title = "CRM 产品", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OaProductBo bo, HttpServletResponse response) {
List<OaProductVo> list = iOaProductService.queryList(bo);
ExcelUtil.exportExcel(list, "CRM 产品", OaProductVo.class, response);
}
/**
* 获取CRM 产品详细信息
*
* @param productId 主键
*/
@SaCheckPermission("oa:product:query")
@GetMapping("/{productId}")
public R<OaProductVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long productId) {
return R.ok(iOaProductService.queryById(productId));
}
/**
* 新增CRM 产品
*/
@SaCheckPermission("oa:product:add")
@Log(title = "CRM 产品", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaProductBo bo) {
return toAjax(iOaProductService.insertByBo(bo));
}
/**
* 修改CRM 产品
*/
@SaCheckPermission("oa:product:edit")
@Log(title = "CRM 产品", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaProductBo bo) {
return toAjax(iOaProductService.updateByBo(bo));
}
/**
* 删除CRM 产品
*
* @param productIds 主键串
*/
@SaCheckPermission("oa:product:remove")
@Log(title = "CRM 产品", businessType = BusinessType.DELETE)
@DeleteMapping("/{productIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] productIds) {
return toAjax(iOaProductService.deleteWithValidByIds(Arrays.asList(productIds), true));
}
}