使用@WebService注解开发接口

本文介绍了一个基于@WebService注解的CRM订单服务接口设计,详细展示了如何通过表头验证进行身份认证,以及如何以JSON格式获取数据并存入数据库的过程。文章深入探讨了接口方法的实现细节,包括数据校验、业务逻辑处理及异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@WebService
public class CrmForDWOrderService{

    private String ACCOUNT = "test";
    private String PASSWORD = "test1234";

    //设置表头验证,只有验证通过才能够调用接口的方法

    private boolean autoUser(String userAccount, String password) {
        if (ACCOUNT.equals(userAccount) && PASSWORD.equals(password)) {
            return true;
        } else {
            return false;
        }
    }

    //写接口方法,以JSON格式获取数据存入数据库中

    public AjaxJson addOrder(@WebParam(name = "userName", header = true) String userName,
            @WebParam(name = "password", header = true) String password,
            @WebParam(name = "crmAccount") String crmAccount, @WebParam(name = "clientId") Integer clientId,
            @WebParam(name = "erpCode") String erpCode, @WebParam(name = "orderNum") String orderNum,
            @WebParam(name = "contractPrice") Double contractPrice, @WebParam(name = "orderSort") String orderSort,
            @WebParam(name = "orderType") String orderType) {
        AjaxJson ajaxJson = new AjaxJson();
        try {
            if (this.autoUser(userName, password)) {
                CrmUser crmUser = crmUserService.findCrmUserByAccount(crmAccount);
                CrmClient crmClient = crmClientService.findCrmClientById(clientId);
                CrmDivision crmDivision = crmDivisionService.findCrmDivisionByCode("C");
                CrmShop crmShop = crmShopService.findCrmShopById(crmClient.getCrmShop().getId());
                
                Integer orderSortTemp = null;
                Integer orderTypeTemp = null;
                if (CrmOrderConstants.DW_ORDER_SORT.D.getValue().equals(orderSort)) {
                    orderSortTemp = CrmOrderConstants.DW_ORDER_SORT.D.getKey();
                } 
                if (CrmOrderConstants.DW_ORDER_TYPE.D.getValue().equals(orderSort)) {
                    orderTypeTemp = CrmOrderConstants.DW_ORDER_TYPE.D.getKey();
                } 

                if (crmUser != null && crmShop != null) {
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    
                    CrmDWOrder crmDWOrder = new CrmDWOrder();
                    crmDWOrder.setClientId(clientId);
                    crmDWOrder.setShopId(crmShop.getId());
                    crmDWOrder.setOrderNumber(orderNum);
                    crmDWOrder.setMergeNumber(orderNum);
                    crmDWOrder.setContractPrice(contractPrice);
                    crmDWOrder.setCreateUserId(crmUser.getId());
                    crmDWOrder.setCreateDate(sdf.parse(sdf.format(new Date())));
                    crmDWOrder.setModifyDate(new Date());
                    crmDWOrder.setDivisionId(crmDivision.getId());
                    crmDWOrder.setOrderSort(orderSortTemp);
                    crmDWOrder.setOrderType(orderTypeTemp);
                    crmDWOrder.setOrderStatus(1);
                    CrmShopDivision csd = getCrmShopDivisionByOrderType(crmDWOrder.getShopId(),
                            crmDWOrder.getOrderType());
                    System.out.println("addOrder-csd="+csd.getRegionId()+","+csd.getTerritoryId());
                    if (csd != null) {
                        crmDWOrder.setRegionId(csd.getRegionId());
                        crmDWOrder.setTerritoryId(csd.getTerritoryId());
                    }
                    crmDWOrderService.insertCrmDWOrder(crmDWOrder);
                } else {
                    ajaxJson.setSuccess(false);
                    ajaxJson.setMessage("用户或门店不存在");
                }
            } else {
                ajaxJson.setSuccess(false);
                ajaxJson.setMessage("身份验证错误");
            }
        } catch (Exception e) {
            log.error("调用添加订单接口出错!", e);
            ajaxJson.setSuccess(false);
            ajaxJson.setMessage("参数错误");
        }
        return ajaxJson;
    }

    //通过EndPoint(端点服务)发布一个WebService

    public static void main(String[] args) {

          /*参数:1,本地的服务地址; 2,提供服务的类; */

          Endpoint.publish("http://test.xyxi.com/webservice/crmForDWOrderService", new CrmForDWOrderService());

          System.out.println("发布成功!");

         //发布成功后 在浏览器输入 http://test.xyxi.com/webservice/crmForDWOrderService?wsdl ,如出现XML格式代码,则发布成功,反之,则否

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值