子用户首页+子用户首页接口

This commit is contained in:
Lu67 2024-03-21 14:37:17 +08:00
parent a218d70793
commit 9a83428e38
18 changed files with 1001 additions and 574 deletions

View File

@ -67,7 +67,7 @@ public class CrmCustomerController extends BaseController
/**
* 查询我的客户列表
*/
@PreAuthorize("@ss.hasPermi('crm:customer:person:list')")
// @PreAuthorize("@ss.hasPermi('crm:customer:person:customers')")
@GetMapping("/person-customers")
public AjaxResult personCustomers(CrmCustomer crmCustomer)
{
@ -141,7 +141,7 @@ public class CrmCustomerController extends BaseController
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
String formattedDate = currentDate.format(formatter);
//根据当前时间生成客户编号
crmCustomer.setCode("zy_"+formattedDate+crmCustomer.getId()+ UUID.randomUUID().toString().replace("-","").substring(0,6));
crmCustomer.setCode("zy_"+formattedDate+ UUID.randomUUID().toString().replace("-","").substring(0,6));
return toAjax(crmCustomerService.insertCrmCustomer(crmCustomer));
}
@ -207,4 +207,46 @@ public class CrmCustomerController extends BaseController
public AjaxResult toPool(@RequestParam("ids") Long[] ids, @RequestParam("poolType") String poolType){
return toAjax(crmCustomerService.customerToPoolByIds(ids, poolType));
}
/**
* 查询当前用户最近七天新增的客户列表
*/
// @PreAuthorize("@ss.hasPermi('crm:customer:person:customers')")
@GetMapping("/week-customers")
public AjaxResult weekCustomer()
{
List<CrmCustomer> list = crmCustomerService.selectWeekCustomer(getUsername());
return AjaxResult.success(list);
}
/**
* 查询当前用户最近七天新增的线索列表
*/
// @PreAuthorize("@ss.hasPermi('crm:customer:person:customers')")
@GetMapping("/week-clues")
public AjaxResult weekClues()
{
List<CrmCustomer> list = crmCustomerService.selectWeekClues(getUsername());
return AjaxResult.success(list);
}
/**
* 查询最近七天新增的线索列表的总条数
*/
// @PreAuthorize("@ss.hasPermi('crm:customer:person:customers')")
@GetMapping("/week-totalClues")
public String weekTotalClues()
{
return crmCustomerService.selectWeekTotalClues(getUsername());
}
/**
* 查询最近七天新增的客户列表的总条数
*/
// @PreAuthorize("@ss.hasPermi('crm:customer:person:customers')")
@GetMapping("/week-totalCustomer")
public String weekTotalCustomer()
{
return crmCustomerService.selectWeekTotalCustomer(getUsername());
}
}

View File

@ -118,17 +118,17 @@ public class CrmOrderController extends BaseController
//获取订单的总额度
@GetMapping(value ="/totalAmount")
public AjaxResult getTotalAmount()
public BigDecimal getTotalAmount()
{
BigDecimal totalAmount = crmOrderService.getTotalAmount();
System.out.println(totalAmount);
return AjaxResult.success(totalAmount);
return totalAmount;
}
//获取各自的订单金额
@GetMapping(value ="/someAmount")
public AjaxResult getSomeAmount()
public List<CrmOrder> getSomeAmount()
{
return AjaxResult.success(crmOrderService.getSomeAmount());
return crmOrderService.getSomeAmount();
}
/**

View File

@ -1,8 +1,7 @@
package com.ruoyi.crm.domain;
import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

View File

@ -105,4 +105,12 @@ public interface CrmCustomerMapper
List<TodayUpdatesVO> todayMsg(@Param("owner") String owner,@Param("createTime") String createTime);
String selectCrmCustomerByCode(String code);
List<CrmCustomer> selectWeekCustomer(@Param("owner") String username);
List<CrmCustomer> selectWeekClues(@Param("owner") String username);
String selectWeekTotalClues(@Param("owner") String username);
String selectWeekTotalCustomer(@Param("owner") String username);
}

View File

@ -100,4 +100,11 @@ import java.util.List;
String selectCrmCustomerByCode(String code);
List<CrmCustomer> selectWeekCustomer(String username);
List<CrmCustomer> selectWeekClues(String username);
String selectWeekTotalClues(String username);
String selectWeekTotalCustomer(String username);
}

View File

@ -152,4 +152,24 @@ public class CrmCustomerServiceImpl implements ICrmCustomerService
public String selectCrmCustomerByCode(String code) {
return crmCustomerMapper.selectCrmCustomerByCode(code);
}
@Override
public List<CrmCustomer> selectWeekCustomer(String username) {
return crmCustomerMapper.selectWeekCustomer(username);
}
@Override
public List<CrmCustomer> selectWeekClues(String username) {
return crmCustomerMapper.selectWeekClues(username);
}
@Override
public String selectWeekTotalClues(String username) {
return crmCustomerMapper.selectWeekTotalClues(username);
}
@Override
public String selectWeekTotalCustomer(String username) {
return crmCustomerMapper.selectWeekTotalCustomer(username);
}
}

View File

@ -153,4 +153,24 @@ public class BusinessController extends BaseController
ExcelUtil<Business> util = new ExcelUtil(Business.class);
util.importTemplateExcel(response, "商机数据");
}
/**
* 查询当前用户负责的商机
*/
// @PreAuthorize("@ss.hasPermi('crm:customer:person:customers')")
@GetMapping("/business-now")
public AjaxResult nowBus()
{
return AjaxResult.success(businessService.selectBusnessNow(getUsername()));
}
/**
* 查询当前用户负责的商机的数量
*/
// @PreAuthorize("@ss.hasPermi('crm:customer:person:customers')")
@GetMapping("/business-nowTotal")
public String nowBusTotal()
{
return businessService.selectBusnessNowTotal(getUsername());
}
}

View File

@ -1,6 +1,8 @@
package com.ruoyi.crm.system.mapper;
import com.ruoyi.crm.domain.CrmCustomer;
import com.ruoyi.crm.system.domain.Business;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -66,4 +68,8 @@ public interface BusinessMapper
* @return
*/
public Business selectByBusinessNumber(String businessNumber);
List<Business> selectBusinessNow(@Param("personInCharge") String username);
String selectBusinessNowTotal(@Param("personInCharge") String username);
}

View File

@ -2,6 +2,7 @@ package com.ruoyi.crm.system.service;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.crm.domain.CrmCustomer;
import com.ruoyi.crm.system.domain.Business;
import java.util.List;
@ -71,4 +72,8 @@ public interface IBusinessService
* @return 结果
*/
public String importBusines(List<Business> userList, Boolean isUpdateSupport, String operName);
List<Business> selectBusnessNow(String username);
String selectBusnessNowTotal(String username);
}

View File

@ -1,15 +1,12 @@
package com.ruoyi.crm.system.service.impl;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.crm.system.domain.Business;
import com.ruoyi.crm.system.mapper.BusinessMapper;
import com.ruoyi.crm.system.service.IBusinessService;
import com.ruoyi.system.service.impl.SysUserServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -173,4 +170,14 @@ public class BusinessServiceImpl implements IBusinessService
}
return successMsg.toString();
}
@Override
public List<Business> selectBusnessNow(String username) {
return businessMapper.selectBusinessNow(username);
}
@Override
public String selectBusnessNowTotal(String username) {
return businessMapper.selectBusinessNowTotal(username);
}
}

View File

@ -71,6 +71,30 @@
</where>
</select>
<select id="selectWeekCustomer" parameterType="String" resultMap="CrmCustomerResult">
SELECT *
FROM crm_customer
WHERE create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) and status='1' and owner = #{owner}
</select>
<select id="selectWeekClues" parameterType="String" resultMap="CrmCustomerResult">
SELECT *
FROM crm_customer
WHERE create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) and status='0' and owner = #{owner}
</select>
<select id="selectWeekTotalClues" parameterType="String" resultType="String">
SELECT COUNT(*)
FROM crm_customer
WHERE create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) and status='0' and owner = #{owner}
</select>
<select id="selectWeekTotalCustomer" parameterType="String" resultType="String">
SELECT COUNT(*)
FROM crm_customer
WHERE create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) and status='1' and owner = #{owner}
</select>
<select id="selectCrmCustomerById" parameterType="Long" resultMap="CrmCustomerResult">
<include refid="selectCrmCustomerVo"/>
where id = #{id} ORDER BY id DESC

View File

@ -59,12 +59,13 @@
</select>
<select id="getTotalAmount" resultType="BigDecimal">
select sum(amount) as total_amount from crm_order;
select sum(amount) as total_amount from crm_order WHERE status = '1';
</select>
<select id="getSomeAmount" resultMap="CrmOrderResult">
SELECT create_by,SUM(amount) as total_amount
FROM crm_order
WHERE status = '1'
GROUP BY create_by;
</select>

View File

@ -67,7 +67,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
ORDER BY id DESC
</select>
<select id="selectBusinessNow" parameterType="String" resultMap="BusinessResult">
SELECT *
FROM business
WHERE person_in_charge = #{personInCharge}
</select>
<select id="selectBusinessNowTotal" parameterType="String" resultType="String">
SELECT count(*)
FROM business
WHERE person_in_charge = #{personInCharge}
</select>
<select id="selectBusinessById" parameterType="Long" resultMap="BusinessResult">
<include refid="selectBusinessVo"/>
where id = #{id} ORDER BY id DESC

View File

@ -1,5 +1,20 @@
import request from '@/utils/request'
// 查询当前用户负责的商机的数量
export function nowBusTotal() {
return request({
url: '/system/business/business-nowTotal',
method: 'get',
})
}
// 查询当前用户负责的商机
export function nowBus() {
return request({
url: '/system/business/business-now',
method: 'get',
})
}
// 查询商机列表
export function listBusiness(query) {
return request({

View File

@ -1,5 +1,37 @@
import request from '@/utils/request'
//查询最近七天新增的客户数量
export function newTotalCustomer() {
return request({
url: '/crm/customer/week-totalCustomer',
method: 'get',
})
}
//查询最近七天新增的线索数量
export function newTotalClues() {
return request({
url: '/crm/customer/week-totalClues',
method: 'get',
})
}
//查询最近七天新增的客户
export function newCustomerAdd() {
return request({
url: '/crm/customer/week-customers',
method: 'get',
})
}
//查询最近七天新增的线索
export function newCluesAdd() {
return request({
url: '/crm/customer/week-clues',
method: 'get',
})
}
// 查询客户列表
export function listPersonCustomer(query) {
return request({

View File

@ -20,7 +20,7 @@ router.beforeEach((to, from, next) => {
} else {
if (store.getters.roles.length === 0) {
// 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(() => {
store.dispatch('GetInfo').then((res) => {
store.dispatch('GenerateRoutes').then(accessRoutes => {
// 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes) // 动态添加可访问路由表

View File

@ -17,80 +17,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="客户编号" prop="customerCode">
<el-input
v-model="queryParams.customerCode"
placeholder="请输入客户编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="应收计划编号" prop="receiveCode">
<el-input
v-model="queryParams.receiveCode"
placeholder="请输入应收计划编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="合同订单编号" prop="contractCode">
<el-input
v-model="queryParams.contractCode"
placeholder="请输入合同订单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="合同标题 " prop="contractTitle">
<el-input
v-model="queryParams.contractTitle"
placeholder="请输入合同标题 "
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="合同金额" prop="contractAmount">
<el-input
v-model="queryParams.contractAmount"
placeholder="请输入合同金额"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item label="负责人" prop="owner">
<el-input
v-model="queryParams.owner"
placeholder="请输入负责人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="归属部门" prop="department">
<el-input
v-model="queryParams.department"
placeholder="请输入归属部门"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item label="本次回款金额" prop="nowAmount">
<el-input
v-model="queryParams.nowAmount"
placeholder="请输入本次回款金额"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="回款方式" prop="receiptType">
<el-select v-model="queryParams.receiptType" placeholder="请选择回款方式" clearable>
<el-option
v-for="dict in dict.type.pay_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="回款日期" prop="receiptDate">
<el-date-picker clearable
v-model="queryParams.receiptDate"
@ -99,14 +26,7 @@
placeholder="请选择回款日期">
</el-date-picker>
</el-form-item>
<el-form-item label="回款单编号" prop="receiptCode">
<el-input
v-model="queryParams.receiptCode"
placeholder="请输入回款单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="回款状态" prop="receiptState">
<el-select v-model="queryParams.receiptState" placeholder="请选择回款状态" clearable>
<el-option
@ -117,54 +37,8 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="开票状态" prop="invoState">
<el-input
v-model="queryParams.invoState"
placeholder="请输入开票状态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item label="提交人" prop="submitPerson">
<el-input
v-model="queryParams.submitPerson"
placeholder="请输入提交人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="流程状态" prop="processSate">
<el-input
v-model="queryParams.processSate"
placeholder="请输入流程状态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="当前节点" prop="nowNode">
<el-input
v-model="queryParams.nowNode"
placeholder="请输入当前节点"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="当前负责人" prop="nowOwner">
<el-input
v-model="queryParams.nowOwner"
placeholder="请输入当前负责人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item label="提交时间" prop="submitTime">
<el-date-picker clearable
v-model="queryParams.submitTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择提交时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>

File diff suppressed because it is too large Load Diff