中扬CRM客户关系管理系统
#
Junjie
2023-09-07 9b170ef6438012f5679fc1ab352b408c13bf6f1d
#
1个文件已添加
4个文件已修改
190 ■■■■ 已修改文件
src/main/java/com/zy/crm/manager/controller/CstmrController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/utils/CompanySearchUtils.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/cstmr/cstmr.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/cstmr/cstmr.html 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/cstmr/cstmr_more.html 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/CstmrController.java
@@ -19,6 +19,7 @@
import com.zy.crm.manager.service.CstmrFollService;
import com.zy.crm.manager.service.CstmrService;
import com.zy.crm.manager.service.CstmrTypeService;
import com.zy.crm.manager.utils.CompanySearchUtils;
import com.zy.crm.system.entity.Dept;
import com.zy.crm.system.entity.Dic;
import com.zy.crm.system.entity.Role;
@@ -173,6 +174,13 @@
        return R.ok(result);
    }
    @RequestMapping(value = "/cstmrSearch/auth")
    @ManagerAuth
    public R cstmrSearch(String condition) {
        List<Map<String, Object>> search = CompanySearchUtils.search(condition, 1);
        return R.ok(search);
    }
    @RequestMapping(value = "/cstmr/check/column/auth")
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {
src/main/java/com/zy/crm/manager/utils/CompanySearchUtils.java
New file
@@ -0,0 +1,74 @@
package com.zy.crm.manager.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 第三方API接口搜索企业信息
 */
public class CompanySearchUtils {
    /**
     * 对外暴露搜索接口
     * @param company 企业名(模糊)
     * @param api 调用的第三方接口
     */
    public static List<Map<String, Object>> search(String company, Integer api) {
        List<Map<String, Object>> list = new ArrayList<>();
        switch (api) {
            case 1:
                list.addAll(aliyun_1(company));
                break;
        }
        return list;
    }
    /**
     * 阿里云市场API
     */
    private static List<Map<String, Object>> aliyun_1(String company) {
        ArrayList<Map<String, Object>> list = new ArrayList<>();
        try {
            HashMap<String, Object> headers = new HashMap<>();
            HashMap<String, Object> param = new HashMap<>();
            headers.put("Authorization", "APPCODE d4675b210cec469aa3b9dad2e5ffe51a");
            param.put("com", company);
            param.put("method", "企业名称");
            param.put("page", "1");
            String response = new HttpHandler.Builder()
                    .setUri("https://orgs.market.alicloudapi.com")
                    .setPath("/searchCompany")
                    .setHeaders(headers)
                    .setParams(param)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if (Integer.parseInt(jsonObject.get("error_code").toString()) == 0) {
                JSONObject result = JSON.parseObject(jsonObject.get("result").toString());
                List<JSONObject> data = JSON.parseArray(result.get("data").toString(), JSONObject.class);
                for (JSONObject object : data) {
                    HashMap<String, Object> map = new HashMap<>();
                    map.put("value", object.get("creditCode"));
                    map.put("name", object.get("companyName"));
                    list.add(map);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }
}
src/main/webapp/static/js/cstmr/cstmr.js
@@ -265,6 +265,11 @@
            title: (mData ? '修改' : '添加') + '甲方单位',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                let loadNameXml = loadNameXmlSel()
                if (mData) {
                    $('#cascaderVal').val(mData.pcd);
                    if (mData.name) { loadNameXml.setValue([{name: mData.name, value: mData.name}]); }
                }
                form.verify({
                    name: function(value, item){
                        var min = item.getAttribute('lay-min');
@@ -280,6 +285,11 @@
                cascaderRender();
                form.val('detail', mData);
                form.on('submit(editSubmit)', function (data) {
                    data.field.name = loadNameXml.getValue()[0] ? loadNameXml.getValue()[0].name : null;
                    if (!data.field.name) {
                        layer.msg("客户名称不能为空", {icon: 2});
                        return false;
                    }
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/cstmr/"+(mData?'update':'add')+"/auth",
@@ -378,6 +388,34 @@
        });
    }
    window.loadNameXmlSel = function () {
        return xmSelect.render({
            el: '#nameXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/cstmrSearch/auth",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
});
// 关闭动作
src/main/webapp/views/cstmr/cstmr.html
@@ -80,7 +80,6 @@
                                <option value="addr" >详细地址</option>
                                <option value="tel" >电话</option>
                                <option value="remarks" >备注</option>
                                <option value="rela" >客户关系</option>
                                <option value="simple" >客户简称</option>
                                <option value="director" >负责人</option>
                                <option value="contacts" >客户联系人</option>
@@ -135,10 +134,17 @@
        <input name="id" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md6">
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">客户名称: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="name" placeholder="请输入客户名称" lay-vertype="tips" lay-verify="required|name" lay-min="8" autocomplete="off">-->
<!--                    </div>-->
<!--                </div>-->
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">客户名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="name" placeholder="请输入客户名称" lay-vertype="tips" lay-verify="required|name" lay-min="8" autocomplete="off">
                        <div id="nameXmlSel" name="nameXmlSel">
                        </div>
                    </div>
                </div>
<!--                <div class="layui-form-item">-->
@@ -201,12 +207,12 @@
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">客户关系: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="rela" placeholder="请输入客户关系" autocomplete="off">
                    </div>
                </div>
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label">客户关系: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="rela" placeholder="请输入客户关系" autocomplete="off">-->
<!--                    </div>-->
<!--                </div>-->
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">区分: </label>
                    <div class="layui-input-block">
src/main/webapp/views/cstmr/cstmr_more.html
@@ -52,7 +52,7 @@
            <div class="layui-card-body">
                <div class="card-body-item">
                    <div class="header-sub">
                        电话
                        客户电话
                    </div>
                    <div class="header-desc" id="form-tel">
                        &nbsp;
@@ -61,7 +61,7 @@
                <div class="card-body-item" style="width: 400px">
                    <div class="header-sub">
                        详细地址
                        客户详细地址
                    </div>
                    <div class="header-desc" id="form-addr">
                        &nbsp;
@@ -80,7 +80,7 @@
        </div>
        <div class="layui-row">
            <!-- 基本信息 -->
            <div class="layui-col-md9">
            <div class="layui-col-md12">
                <div class="layui-card">
                    <div class="layui-card-header">
                        基本信息
@@ -107,12 +107,12 @@
                                    <input name="cstmrType$" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">客户关系:</label>
                                <div class="layui-input-block">
                                    <input name="rela" class="layui-input" disabled/>
                                </div>
                            </div>
<!--                            <div class="layui-inline layui-col-md6">-->
<!--                                <label class="layui-form-label">客户关系:</label>-->
<!--                                <div class="layui-input-block">-->
<!--                                    <input name="rela" class="layui-input" disabled/>-->
<!--                                </div>-->
<!--                            </div>-->
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">省市区:</label>
                                <div class="layui-input-block">
@@ -131,7 +131,7 @@
                                    <input name="type$" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                            <div class="layui-inline layui-col-md12">
                                <label class="layui-form-label">备注:</label>
                                <div class="layui-input-block">
                                    <input name="remarks" class="layui-input" disabled />
@@ -170,20 +170,20 @@
                    </div>
                </div>
            </div>
            <!-- 跟进人 -->
            <div class="layui-col-md3" style="width: 24%;margin-left: 1%">
                <div class="layui-card">
                    <div class="layui-card-header">
                        <span>跟进人</span>
                        <span lay-filter="followerAdd" lay-submit style="float: right;cursor: pointer;">
                            <i class="layui-icon" style="font-size: 20px;color: #1890ff;">&#xe61f;</i>
                        </span>
                    </div>
                    <div class="layui-card-body">
                        <table id="followersTable" lay-filter="followersTable"></table>
                    </div>
                </div>
            </div>
<!--            &lt;!&ndash; 跟进人 &ndash;&gt;-->
<!--            <div class="layui-col-md3" style="width: 24%;margin-left: 1%">-->
<!--                <div class="layui-card">-->
<!--                    <div class="layui-card-header">-->
<!--                        <span>跟进人</span>-->
<!--                        <span lay-filter="followerAdd" lay-submit style="float: right;cursor: pointer;">-->
<!--                            <i class="layui-icon" style="font-size: 20px;color: #1890ff;">&#xe61f;</i>-->
<!--                        </span>-->
<!--                    </div>-->
<!--                    <div class="layui-card-body">-->
<!--                        <table id="followersTable" lay-filter="followersTable"></table>-->
<!--                    </div>-->
<!--                </div>-->
<!--            </div>-->
        </div>
    </div>