开发控制器(Controller)

以本地新建的项目jecloudcrm为例,一般用户在做自己的业务时,写的controller,都在这个jecloudcrm-impl这个模块里面去写,以下是这个项目中的案例

代码案例

package com.je.business.controller;

import com.je.business.rpc.DemoRpcService;
import com.je.common.base.mvc.AbstractPlatformController;
import com.je.common.base.result.BaseRespResult;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping(value="/je/crm")

public class DemoController extends AbstractPlatformController {
    @Autowired
    DemoRpcService demoRpcService;

    //直接写controller让用户调运
    @RequestMapping(value="/helloWord",method = RequestMethod.POST)
    public BaseRespResult helloWord(HttpServletRequest request){
        //获取前端参数
        String str = getStringParameter(request,"str");
        String mystr = "helloword";
        if(str.equals(mystr)){
            return  BaseRespResult.successResult(str,"请求成功");
        }
        return  BaseRespResult.errorResult(str,"请求失败");
    }
}

调用Controller

1. 确定servicename的名称,当前文档案例中指定是crm,可以在application.yml文件中进行查看

2. 调用方式有两种:

2.1、在网关项目jecloud-getway中找到/resources/router/urlRouter.xml文件,在这个文件中添加下面内容

<url path="/je/crm/.*" microServiceName="crm" realPath="" versionRule="0.0.0+" prefixSegmentCount="0" />

2.2、请求头路由

需要在请求头中添加参数pd,内容为指定的服务名称serviceName,本案例中是crm,例如将截图中的pd:demo改为pd:crm即可

调运完成,返回结果

1.调运前一定要对代码进行编译打包,将服务往注册中心重新注册,要在注册中心能看到自己写的controller,并且重启网关,才能使用

前端单击事件中调运代码

const ui = JE.useUi();
const Modal = ui.Modal;
const utils = JE.useUtils();
const system = JE.useSystem();
//获取ajax
const ajax = utils.ajax;
//获得功能对象
const {$func} = EventOptions;
//获得列表对象
const grid = $func.getFuncGrid();

ajax({
    url:'/je/crm/hello',
    params:{
        str:"helloword"
    },
    headers:{pd:'crm'}
}).then((data)=>{
     if(data.success){
        Modal.notice(data.message, "success");
    }else{
        Modal.alert(data.message, "error");
    }
}).catch((error)=>{
    Modal.alert(error.message, "error");
})
最后编辑: 呼丽华  文档更新时间: 2025-01-15 16:00   作者:刘利军