From 56a77499582c48e7c01487167f5cd9e25ccb2cfc Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 12 十二月 2025 10:57:41 +0800
Subject: [PATCH] yys 商机管理

---
 src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java    |   60 +++++++++++++++
 src/main/java/com/ruoyi/sales/mapper/BusinessOpportunityMapper.java            |   11 ++
 src/main/java/com/ruoyi/sales/pojo/BusinessOpportunity.java                    |   73 ++++++++++++++++++
 src/main/java/com/ruoyi/sales/service/BusinessOpportunityService.java          |   21 +++++
 src/main/resources/application.yml                                             |    2 
 src/main/java/com/ruoyi/sales/service/impl/BusinessOpportunityServiceImpl.java |   41 ++++++++++
 6 files changed, 207 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java b/src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java
new file mode 100644
index 0000000..7a4d02d
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java
@@ -0,0 +1,60 @@
+package com.ruoyi.sales.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.sales.pojo.BusinessOpportunity;
+import com.ruoyi.sales.service.BusinessOpportunityService;
+import io.jsonwebtoken.lang.Collections;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/12/12 9:29
+ */
+@RestController
+@RequestMapping("/businessOpportunity")
+@Api(tags = "鍟嗘満绠$悊")
+public class BusinessOpportunityController extends BaseController {
+
+    @Autowired
+    private BusinessOpportunityService businessOpportunityService;
+
+    @GetMapping("/listPage")
+    @ApiOperation("鍟嗘満鍒楄〃")
+    public AjaxResult listPage(Page page, BusinessOpportunity businessOpportunity) {
+        return AjaxResult.success(businessOpportunityService.listPage(page, businessOpportunity));
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("娣诲姞鍟嗘満")
+    @Log(title = "鍟嗘満绠$悊-娣诲姞鍟嗘満", businessType = BusinessType.INSERT)
+    public AjaxResult add(@RequestBody BusinessOpportunity businessOpportunity) {
+        return businessOpportunityService.save(businessOpportunity) ? success() : error();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("淇敼鍟嗘満")
+    @Log(title = "鍟嗘満绠$悊-淇敼鍟嗘満", businessType = BusinessType.UPDATE)
+    public AjaxResult update(@RequestBody BusinessOpportunity businessOpportunity) {
+        return businessOpportunityService.updateById(businessOpportunity) ? success() : error();
+    }
+
+    @DeleteMapping("/delete")
+    @ApiOperation("鍒犻櫎鍟嗘満")
+    @Log(title = "鍟嗘満绠$悊-鍒犻櫎鍟嗘満", businessType = BusinessType.DELETE)
+    public AjaxResult delete(@RequestBody List<Long> ids) {
+        if(Collections.isEmpty(ids)) return error("璇烽�夋嫨瑕佸垹闄ょ殑鍟嗘満");
+        return businessOpportunityService.removeBatchByIds(ids) ? success() : error();
+    }
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/sales/mapper/BusinessOpportunityMapper.java b/src/main/java/com/ruoyi/sales/mapper/BusinessOpportunityMapper.java
new file mode 100644
index 0000000..a84630d
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/mapper/BusinessOpportunityMapper.java
@@ -0,0 +1,11 @@
+package com.ruoyi.sales.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.sales.pojo.BusinessOpportunity;
+
+/**
+ * @author :yys
+ * @date : 2025/12/12 9:27
+ */
+public interface BusinessOpportunityMapper extends BaseMapper<BusinessOpportunity> {
+}
diff --git a/src/main/java/com/ruoyi/sales/pojo/BusinessOpportunity.java b/src/main/java/com/ruoyi/sales/pojo/BusinessOpportunity.java
new file mode 100644
index 0000000..826c11a
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/pojo/BusinessOpportunity.java
@@ -0,0 +1,73 @@
+package com.ruoyi.sales.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.dto.DateQueryDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author :yys
+ * @date : 2025/12/12 9:21
+ */
+@Data
+@TableName("business_opportunity")
+@ApiModel
+public class BusinessOpportunity extends DateQueryDto {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "鐘舵��")
+    private String status;
+
+    @ApiModelProperty(value = "鐪佷唤")
+    private String province;
+
+    @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
+    private String customerName;
+
+    @ApiModelProperty(value = "鍟嗘満鏉ユ簮")
+    private String businessSource;
+
+    @ApiModelProperty(value = "瀹㈡埛鎻忚堪")
+    private String description;
+
+    @ApiModelProperty(value = "褰曞叆浜�")
+    private String entryPerson;
+
+    @ApiModelProperty(value = "褰曞叆鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date entryDate;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/sales/service/BusinessOpportunityService.java b/src/main/java/com/ruoyi/sales/service/BusinessOpportunityService.java
new file mode 100644
index 0000000..75a3c26
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/BusinessOpportunityService.java
@@ -0,0 +1,21 @@
+package com.ruoyi.sales.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.sales.pojo.BusinessOpportunity;
+
+/**
+ * @author :yys
+ * @date : 2025/12/12 9:28
+ */
+public interface BusinessOpportunityService extends IService<BusinessOpportunity> {
+
+    /**
+     * 鍟嗘満鍒楄〃鍒嗛〉鏌ヨ
+     * @param page
+     * @param businessOpportunity
+     * @return
+     */
+    IPage<BusinessOpportunity> listPage(Page page, BusinessOpportunity businessOpportunity);
+}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/BusinessOpportunityServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/BusinessOpportunityServiceImpl.java
new file mode 100644
index 0000000..0c48247
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/impl/BusinessOpportunityServiceImpl.java
@@ -0,0 +1,41 @@
+package com.ruoyi.sales.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.sales.mapper.BusinessOpportunityMapper;
+import com.ruoyi.sales.pojo.BusinessOpportunity;
+import com.ruoyi.sales.service.BusinessOpportunityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author :yys
+ * @date : 2025/12/12 9:28
+ */
+@Service
+@Slf4j
+public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportunityMapper, BusinessOpportunity> implements BusinessOpportunityService {
+
+    @Autowired
+    private BusinessOpportunityMapper businessOpportunityMapper;
+
+    @Override
+    public IPage<BusinessOpportunity> listPage(Page page, BusinessOpportunity businessOpportunity) {
+        LambdaQueryWrapper<BusinessOpportunity> businessOpportunityLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if(businessOpportunity != null){
+            if(StringUtils.isNotEmpty(businessOpportunity.getCustomerName())){
+                businessOpportunityLambdaQueryWrapper.like(BusinessOpportunity::getCustomerName,businessOpportunity.getCustomerName());
+            }
+            if(StringUtils.isNotEmpty(businessOpportunity.getEntryDateStart()) && StringUtils.isNotEmpty(businessOpportunity.getEntryDateEnd())){
+                businessOpportunityLambdaQueryWrapper.ge(BusinessOpportunity::getEntryDate,businessOpportunity.getEntryDateStart())
+                        .le(BusinessOpportunity::getEntryDate,businessOpportunity.getEntryDateEnd());
+            }
+        }
+        businessOpportunityLambdaQueryWrapper.orderByDesc(BusinessOpportunity::getEntryDate);
+        return businessOpportunityMapper.selectPage(page,businessOpportunityLambdaQueryWrapper);
+    }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 33d6165..c79d967 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,4 +1,4 @@
 # Spring閰嶇疆
 spring:
   profiles:
-    active: demo
+    active: dev

--
Gitblit v1.9.3