maven
2025-12-12 56a77499582c48e7c01487167f5cd9e25ccb2cfc
yys 商机管理
已添加5个文件
已修改1个文件
208 ■■■■■ 文件已修改
src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/mapper/BusinessOpportunityMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/pojo/BusinessOpportunity.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/BusinessOpportunityService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/BusinessOpportunityServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}
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> {
}
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;
}
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);
}
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);
    }
}
src/main/resources/application.yml
@@ -1,4 +1,4 @@
# Spring配置
spring:
  profiles:
    active: demo
    active: dev