Authored by 胡古飞

no message

Showing 49 changed files with 4624 additions and 0 deletions

Too many changes to show.

To preserve performance only 49 of 49+ files are displayed.

  1 +/target/
  2 +.settings/
  3 +*.project
  4 +*.classpath
  5 +.idea/
  6 +error-code.iml
  1 +@echo off
  2 +
  3 +cd ..
  4 +mvn deploy -DrepositoryId=snapshots -Durl=http://192.168.102.168:18081/nexus/content/repositories/snapshots &pause
  1 +#!/bin/bash
  2 +################################################################
  3 +#@Authro Lijian
  4 +#@Date 2011-06-08
  5 +################################################################
  6 +
  7 +cd ..
  8 +
  9 +/usr/local/maven/bin/mvn mvn deploy -DrepositoryId=snapshots -Durl=http://192.168.102.168:18081/nexus/content/repositories/snapshots &pause
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <modelVersion>4.0.0</modelVersion>
  6 +
  7 + <parent>
  8 + <groupId>com.yoho</groupId>
  9 + <artifactId>parent</artifactId>
  10 + <version>1.1.9-SNAPSHOT</version>
  11 + </parent>
  12 +
  13 +
  14 + <groupId>com.yoho.common</groupId>
  15 + <artifactId>error-code</artifactId>
  16 + <version>1.1.9-SNAPSHOT</version>
  17 +
  18 + <dependencies>
  19 +
  20 + <dependency>
  21 + <groupId>org.springframework</groupId>
  22 + <artifactId>spring-core</artifactId>
  23 + </dependency>
  24 + <dependency>
  25 + <groupId>org.springframework</groupId>
  26 + <artifactId>spring-beans</artifactId>
  27 + </dependency>
  28 +
  29 + <dependency>
  30 + <groupId>org.springframework</groupId>
  31 + <artifactId>spring-webmvc</artifactId>
  32 + </dependency>
  33 +
  34 + <dependency>
  35 + <groupId>javax.servlet</groupId>
  36 + <artifactId>servlet-api</artifactId>
  37 + </dependency>
  38 + <dependency>
  39 + <groupId>org.springframework</groupId>
  40 + <artifactId>spring-context</artifactId>
  41 + </dependency>
  42 +
  43 + <dependency>
  44 + <groupId>org.apache.commons</groupId>
  45 + <artifactId>commons-lang3</artifactId>
  46 + </dependency>
  47 +
  48 + <dependency>
  49 + <groupId>commons-collections</groupId>
  50 + <artifactId>commons-collections</artifactId>
  51 + </dependency>
  52 +
  53 +
  54 + <dependency>
  55 + <groupId>com.alibaba</groupId>
  56 + <artifactId>fastjson</artifactId>
  57 + </dependency>
  58 +
  59 + <dependency>
  60 + <groupId>junit</groupId>
  61 + <artifactId>junit</artifactId>
  62 + </dependency>
  63 +
  64 + <dependency>
  65 + <groupId>org.springframework</groupId>
  66 + <artifactId>spring-test</artifactId>
  67 + </dependency>
  68 + <dependency>
  69 + <groupId>org.yaml</groupId>
  70 + <artifactId>snakeyaml</artifactId>
  71 + </dependency>
  72 + <dependency>
  73 + <groupId>org.slf4j</groupId>
  74 + <artifactId>slf4j-api</artifactId>
  75 + </dependency>
  76 +
  77 +
  78 + </dependencies>
  79 +
  80 +</project>
  1 +# 错误码定义
  2 +
  3 +错误码定义在下面的目录下:`src/main/resources`. 预先定义了如下的yml文件:服务的异常分开在不同的文件中
  4 + - gateway-error.yml
  5 + - service-error.yml
  6 + - service-error-*.yml
  7 +
  8 +分别用来表示`API Gateway` 和 服务内部的错误码。 注意,错误码需要用`UTF-8`来编码,否则会出错。
  9 +
  10 +# 如何添加新的错误码
  11 +1. 先在yml文件中添加错误码(注意使用 `UTF-8`编码)
  12 +2. 然后在对应的枚举类型`Java`类中添加对应的枚举类型。例如:
  13 +
  14 +```
  15 +public enum GatewayError implements ErrorCode {
  16 + PROFILE_IS_NULL(421),
  17 + PASSWORD_IS_NULL(422);
  18 +
  19 + PASSWORD_IS_INVALIDATE(424);
  20 + }
  21 +```
  22 +
  23 +# 使用说明
  24 +1.先在maven中添加依赖:
  25 +
  26 +```
  27 + <dependency>
  28 + <groupId>com.yoho.common</groupId>
  29 + <artifactId>error-code</artifactId>
  30 + </dependency>
  31 +
  32 +```
  33 +
  34 +2.在你的spring context中拉起这个`src/resources/META-INF/spring/spring-error.xml`
  35 +
  36 +3.然后可以直接使用如下错误码的枚举类型
  37 +- `com.yoho.error.GatewayError`
  38 +- `com.yoho.error.ServiceError`
  39 +
  40 +# 服务的异常码自动映射到gateway的异常
  41 +服务的异常码可以自动映射到gateway,可以通过下面的配置实现:
  42 +
  43 +```yml
  44 +
  45 +300000001:
  46 + message: "request error"
  47 + gwError: 22222:消息不能为空
  48 +
  49 +```
  50 +
  51 +其中,`gwError`定义了输出到gateway的异常(这个异常信息会通过json发送给app)。用`:`分割异常码和消息
  52 +
  53 +
  54 +
  55 +# 服务间错误码的规范
  56 +`[100][001][001]` 模块编码+子模块编码+错误码, 例如 `001001002`
  57 +
  58 +## 模块编码
  59 + - `100`: 用户(Passport)
  60 + - `200`: 购物车
  61 + - `300`: 资源(Resource)
  62 + - `400`: 订单
  63 + - `500`: 产品
  64 + - `600`: 消息(Message)
  65 + - `700`: 促销(Promotion)
  66 +
  67 +### 子模块编码
  68 + - 用户001: auth(`001`), vip(`002`), profile(`003`), sso(`004`)
  1 +package com.yoho.error;
  2 +
  3 +import java.util.Map;
  4 +
  5 +/**
  6 + *
  7 + * Created by chang@yoho.cn on 2015/11/3.
  8 + */
  9 +public interface ErrorCode {
  10 +
  11 + /**
  12 + * 设置错误内容
  13 + * @param content
  14 + */
  15 + public void setErrorContent(Map<String, Object> content);
  16 +
  17 + /**
  18 + * 获取错误码
  19 + * @return 错误码
  20 + */
  21 + public int getCode();
  22 +}
  1 +package com.yoho.error;
  2 +
  3 +import java.text.MessageFormat;
  4 +import java.util.Map;
  5 +
  6 +/**
  7 + *
  8 + * Gateway的错误码定义
  9 + * Created by chang@yoho.cn on 2015/11/3.
  10 + */
  11 +public enum GatewayError implements ErrorCode {
  12 +
  13 +
  14 +
  15 + // ----------------------- begin profile error ---------------------//
  16 +
  17 + CODE_SUCCESS(200),
  18 +
  19 +// PROFILE_IS_NULL(421),
  20 +// PASSWORD_IS_NULL(422),
  21 + PASSWORD_NOT_RULE(423),
  22 +
  23 + SEND_ERROR(425),
  24 + SEND_SUCCESS(200),
  25 +
  26 + //第三方登录code开始
  27 +// SOURCE_TYPE_IS_NULL(502),
  28 + LOGIN_ERROR(503),
  29 + OTHER_ERROR(412),
  30 +// NOT_BIND(201),
  31 + //第三方登录code结束
  32 +
  33 + UPDATE_MOBILE_ERROR(411),
  34 + UPDATE_PASSWORD_ERROR(420),
  35 + PLEASE_INPUT_PASSWORD(413),
  36 + REGISTER_ERROR(414),
  37 +
  38 +// PROFILE_MUST_BE_MOBILE_OR_EMAIL(10001),
  39 + PASSWORD_ERROR(10012),
  40 + USER_NOT_EXISTS(10010),
  41 +
  42 + //以下为 address code
  43 + BIND_SUCCESS(200),//200
  44 + ADDRESS_LIST(200),//200
  45 + ADDRESS_ID_ERROR(452),//500
  46 + USER_ID_ERROR(453),//500
  47 + ADDRESSEENAME_ERROR(454),//500
  48 + ADDRESS_NULL(455),//500
  49 + PROVINCE_MUST(456),//500
  50 + MOBILE_PHONE_ONE(457),//500
  51 + ADD_SUCCESS(200),//200
  52 + ADD_FALSE(458),//404
  53 + UPDATE_SUCCESS(200),//200
  54 + ID_UID_NULL(459),//500
  55 + DEL_SUCCESS(200),//200
  56 + DEL_FALSE(460),//404
  57 + PROVINCE_LIST(200),//200
  58 + ID_IS_NULL(461),//405
  59 + SET_SUCCESS(200),//200
  60 + SET_FALSE(462),//201
  61 +
  62 + PHONE_UPDATE_SUCCESS(200),//200
  63 + PHONE_UPDATE_FALSE(464),//409
  64 +
  65 +
  66 +
  67 +
  68 +// GET_USER_SSO_INFO_ERROR(601),
  69 +// SSO_LOGIN_INFO_NULL(602),
  70 +
  71 +
  72 + UID_MAIL_MOBILE_MUST_NOT_NULL(603),
  73 + GET_SSO_INFO_ERROR(604),
  74 + SSO_UPDATE_ERROR(605),
  75 +
  76 + SHOPPING_ACTION_SUCCESS(200),//200
  77 + REQUEST_PAREMENT_ERROR(413),
  78 +
  79 +
  80 +
  81 +
  82 +
  83 + ///*************** 通用的异常 ****************************
  84 + //未映射的服务异常
  85 + SERVICE_ERROR(998),
  86 + SERVICE_NOT_AVAILBLE(999),
  87 +
  88 +
  89 + //**************************************ERP BEGIN*******************************
  90 + SERVICE_ID_NOT_AVAILBLE(1000)
  91 + //**************************************ERP END*******************************
  92 + ;
  93 +
  94 +
  95 +
  96 + //-------------------------------------/
  97 +
  98 +
  99 + static String DEFAULT_ERROR_MSG = "操作失败";
  100 + static int DEFAULT_ERROR_CODE = 400;
  101 +
  102 + private final int code;
  103 + private String message;
  104 +
  105 + GatewayError(int code)
  106 + {
  107 + this.code=code;
  108 + }
  109 +
  110 +
  111 + /**
  112 + * 根据code查找错误
  113 + * @param code code
  114 + * @return error info
  115 + */
  116 + public static GatewayError getGatewayErrorByCode(int code){
  117 + for(GatewayError error : GatewayError.values()){
  118 + if(error.code == code){
  119 + return error;
  120 + }
  121 + }
  122 + return null;
  123 + }
  124 +
  125 +
  126 +
  127 + @Override
  128 + public int getCode() {
  129 + return code;
  130 + }
  131 +
  132 + public String getMessage(Object ... param) {
  133 + if( param != null && param.length > 0){
  134 + return MessageFormat.format(this.message, param);
  135 + }else {
  136 + return message;
  137 + }
  138 + }
  139 +
  140 + @Override
  141 + public void setErrorContent(Map<String, Object> content) {
  142 +
  143 + this.message = (String)content.get("message");
  144 + }
  145 +
  146 +
  147 + /**
  148 + * 直接调用 {@link GatewayError#getMessage(Object...)}
  149 + *
  150 + * @param param 参数
  151 + * @return 格式化之后的消息
  152 + */
  153 + @Deprecated
  154 + public String getFormattedMessage(Object ... param){
  155 + return MessageFormat.format(this.message, param);
  156 + }
  157 +}
  1 +package com.yoho.error;
  2 +
  3 +import org.apache.commons.lang3.StringUtils;
  4 +import org.apache.commons.lang3.tuple.Pair;
  5 +
  6 +import java.util.Map;
  7 +
  8 +/**
  9 + * 服务的错误码定义
  10 + * <p>
  11 + * Created by chang@yoho.cn on 2015/11/3.
  12 + */
  13 +public enum ServiceError implements ErrorCode {
  14 + //-------------------common---------------------------
  15 + REQUEST_PAREMENT_ERROR(413),
  16 + // ----------------------- begin error ---------------------//
  17 + USER_NOT_FOUND(100200300),
  18 +
  19 + CODE_SUCCESS(100000000),//200
  20 + NOT_BIND(100000001),//200
  21 + CODE_FAILED(100000002),
  22 + OUT_OF_RANGE(100000010),
  23 +
  24 + //----Begin----------用户模块异常码---------------------
  25 + //100-001
  26 + OPEN_ID_IS_NULL(100001001),//501
  27 + SOURCE_TYPE_IS_NULL(100001002),//502
  28 + LOGIN_ERROR(100001003),//503
  29 + REGISTER_PARAM_NULL(100001004),
  30 + PASSWORD_NOT_INVALID(100001005),
  31 + REGISTER_FAILED(100001006),
  32 + THIRD_LOGIN(100001007),//400
  33 + LOGIN_METHOD(100001008),//400
  34 + BIND_SUCCESS(100001009),//200
  35 + ADDRESS_LIST(100001010),//200
  36 + ADDRESS_ID_ERROR(100001011),//500
  37 + USER_ID_ERROR(100001012),//500
  38 + ADDRESSEENAME_ERROR(100001013),//500
  39 + ADDRESS_NULL(100001014),//500
  40 + PROVINCE_MUST(100001015),//500
  41 + MOBILE_PHONE_ONE(100001016),//500
  42 + ADD_SUCCESS(100001017),//200
  43 + ADD_FALSE(100001018),//404
  44 + ID_UID_NULL(100001019),//500
  45 + DEL_SUCCESS(100001020),//200
  46 + DEL_FALSE(100001021),//404
  47 + PROVINCE_LIST(100001022),//200
  48 + ID_IS_NULL(100001023),//405
  49 + SET_SUCCESS(100001024),//200
  50 + SET_FALSE(100001025),//201
  51 + MOBILE_NUMBER_ERROR(100001026),//401
  52 + UPDATE_SUCCESS(100001027),//200
  53 + UID_NOT_MATCH_MOBILE(100001028),
  54 + MOBILE_INVALID(100001029),
  55 + UID_IS_RELATED(100001030),
  56 + CARDNO_IS_NULL(100001031),
  57 + CLIENT_TYPE_IS_NULL(100001032),
  58 + IDNO_IS_NULL(100001033),
  59 + USERNAME_IS_NULL(100001034),
  60 + SNSCHECKCODE_IS_NULL(100001035),
  61 + APPLY_IS_DONE(100001036),
  62 + APPLY_IS_DOING(100001037),
  63 + VERIFYID_IS_NULL(100001038),
  64 + GET_VERIFYCODE_FAIL(100001039),
  65 + CODETYPE_IS_NULL(100001040),
  66 + CALL_CRF_FAIL(100001041),
  67 + BANKID_ID_ERROR(100001042),
  68 + REGISTER_FAILED_EXIST(100001043),
  69 + INTALMENT_CARDNO_IS_ERROR(100001044),
  70 + INTALMENT_CARDNO_USED_ERROR(100001101),
  71 + INTALMENT_USERNAME_IS_ERROR(100001045),
  72 + INTALMENT_MOBILE_IS_ERROR(100001046),
  73 + INTALMENT_IDNO_IS_ERROR(100001047),
  74 + CARDNO_IS_NOT_SUPPORT(100001048),
  75 + CARDNO_IS_BINDING(100001049),
  76 + INTALMENT_INFO_NOT_MATCH(100001050),
  77 + SNSCHECKCODE_IS_ERROR(100001051),
  78 + USER_SMS_TYPE_ERROR(100001052),
  79 + NOT_APPLY_SUCCESS(100001053),
  80 + CARD_IS_BANDING(100001054),
  81 + PREPAYNO_IS_NULL(100001055),
  82 + ORDERNO_IS_NULL(100001056),
  83 + //100-003
  84 + PASSWORD_IS_NULL(100003000),
  85 + UID_IS_NULL(100003001),///421
  86 + PROFILE_IS_NULL(100003002),
  87 + PASSWORD_NOT_RULE(100003003),
  88 + MOBILE_IS_NULL(100003004),
  89 + MOBILE_IS_ERROR(100003005),
  90 + SEND_ERROR(100003006),
  91 + SEND_SUCCESS(100003007),
  92 + TYPE_IS_NULL(100003007),
  93 + PRODUCTID_IS_NULL(100003008),
  94 + CONSULT_LIST_IS_NULL(100003009),
  95 + CONSULT_CONTENT_IS_NULL(100003010),
  96 + CONSULT_PRODUCT_NOT_EXIST(100003011),
  97 + USER_IS_NOT_EXIST(100003012),
  98 + THREAD_IS_NOT_EXIST(100003013),
  99 + MOBILE_IS_REGISTER(100003014),
  100 + UPDATE_MOBILE_ERROR(100003015),
  101 + UPDATE_PASSWORD_ERROR(100003016),
  102 + PLEASE_INPUT_PASSWORD(100003017),
  103 + BIND_ERROR(100003018),
  104 + REGISTER_ERROR(100003019),
  105 + USER_COUPON_IS_NULL(100003020),
  106 + PROFILE_MUST_BE_MOBILE_OR_EMAIL(100003021),
  107 + PASSWORD_ERROR(100003022),
  108 + USER_NOT_EXISTS(100003023),
  109 + MOBILE_IS_EXISTS(100003024),
  110 + MOBILE_CHECK_IS_SUCCRSS(100003025),
  111 + CODE_IS_NULL(100003026),//403 短信验证码空
  112 + PHONE_UPDATE_SUCCESS(100003027),//200
  113 + PHONE_UPDATE_FALSE(100003028),//409
  114 + GET_USER_SSO_INFO_ERROR(100003029),
  115 + SSO_LOGIN_INFO_NULL(100003030),
  116 + NICK_NAME_IS_NULL(100003031),
  117 + CONSULT_INSERT_FAILED(100003032),
  118 + UID_MAIL_MOBILE_MUST_NOT_NULL(100003033),
  119 + GET_SSO_INFO_ERROR(100003034),
  120 + SSO_UPDATE_ERROR(100003035),
  121 + USER_CONPONS_INSERT_ERROR(100003036),
  122 + USER_BASE_UPDATE_FAILED(100003037),
  123 + CHECK_MOBILE_SUCCESS(100003038),
  124 + FAVORITE_UID_NULL(100003039),
  125 + UID_MUST_NOT_NULL(100003040),
  126 + PRODUCT_IS_EMPTY(100003041),
  127 + BRAND_IS_EMPTY(100003042),
  128 + MOBILE_IS_BIND(100003043),
  129 + PASSWORD_IS_ERROR(100003044),
  130 + SSO_LOGIN_CODE_50101(100003045),
  131 + VALID_CODE_TIMEOUT_CODE(100003046),
  132 + VALID_ERROR(100003047),
  133 + SESSION_KEY_ISNULL(100003048),
  134 + CODE_IS_EMPTY(100003049),
  135 + CODE_IS_INVALID(100003050),
  136 + NEW_PWD_IS_NULL(100003051),
  137 + NEW_PWD_IS_NOT_RULE(100003052),
  138 + EMAIL_IS_EXISTS(100003053),
  139 + QUESTION_ID_ISNULL(100003054),
  140 + FEEDBACK_ID_ISNULL(100003055),
  141 + ANSWER_ISNULL(100003056),
  142 + EMAIL_SUBSCRIBER_FAIL(100003057),
  143 + NICK_NAME_IS_EXISTS(100003058),
  144 + //100-004 yohocoin 有货币、红包
  145 + YOHOCOIN_TYPE_ISNULL(100004001),
  146 + YOHOCOIN_NUM_ISNULL(100004002),
  147 + YOHOCOIN_PARAMS_ISNULL(100004003),
  148 + YOHOCOIN_ORDERCODE_ISNULL(100004004),
  149 + YOHOCOIN_CURRENCY_ISNULL(100004005),
  150 + LOGINNAME_OR_PASSWORD_ERROR(100004006),
  151 + YOHOCOIN_CURRENCY_NOT_ENOUGH(100004007),
  152 + YOHOCOIN_ORDER_FULLY_REFUND(100004008),
  153 + YOHOCOIN_ORDERRECORD_NOT_EXIST(100004009),
  154 + REDENVELOPES_CURRENCY_NOT_ENOUGH(100004010),
  155 + //100-005 browse 浏览记录
  156 + BROWSE_ADD_ID_ISNULL(100005001),
  157 + BROWSE_ADD_SKN_ISNULL(100005002),
  158 + BROWSE_ADD_CATEGORYID_ISNULL(100005003),
  159 + BROWSE_TOTAL_UID_ISNULL(100005004),
  160 + BROWSE_DEL_UID_ISNULL(100005005),
  161 + BROWSE_LIST_UID_ISNULL(100005006),
  162 + VERIFY_CODE_ERROR(100005007),
  163 + TOKEN_IS_ERROR(100005008),
  164 + NOT_CHECK_MOBILE(100005009),
  165 + EMAIL_NULL(100005010),
  166 + EMAIL_ERROR(100005011),
  167 + //100-006 suggest 意见反馈
  168 + SUGGEST_ADD_PARAM_ISNULL(100006001),
  169 + SUGGEST_ADD_CONTENT_ISNULL(100006002),
  170 + SUGGEST_ADD_FAILED(100006003),
  171 + SUGGEST_RELIABLE_UDIDSUGGESTID_ISNULL(100006004),
  172 + SUGGEST_RELIABLE_ISRELIABLE_INVALIDATED(100006005),
  173 + SUGGEST_RELIABLE_SETALREADY(100006006),
  174 + SUGGEST_RELIABLE_ADD_FAILED(100006007),
  175 +
  176 + //100-007 help 在线客服
  177 + HELPCONTENT_ID_ISNULL(100007001),
  178 + HELPCONTENT_NOT_EXISTS(100007002),
  179 + HELPCONTENT_CATEGORYID_ISNULL(100007003),
  180 + HELPCONTENT_CATEGORYID_ISERROR(100007004),
  181 +
  182 + //100008活动信息
  183 + PARAM_ERROR(100008001),
  184 + WECHAT_HAVE_ACTIVITIED(100008002),
  185 + NOT_ACTIVITY(100008003),
  186 + HAVE_SHARE_ACTIVITY(100008004),
  187 + RECORD_ERROR(100008005),
  188 + ACTIVITY_NOT_EXISTS(100008006),
  189 +
  190 + //100-009 UserContacts 用户联系信息
  191 + USERCONTACTS_MODIFY_UID_ISNULL(100009001),
  192 + USERCONTACTS_MODIFY_CODEADDRESS_ISNULL(100009002),
  193 + USERCONTACTS_GET_UID_ISNULL(100009003),
  194 + USERCONTACTS_MODIFY_ZIPCODE_ISERROR(100009004),
  195 +
  196 + //100-010 UserHabits 用户购物&着装习惯
  197 + USERHABITS_MODIFY_UID_ISNULL(100010001),
  198 + USERHABITS_GET_UID_ISNULL(100010002),
  199 +
  200 + //100-011 UserHabits 用户喜爱品牌
  201 + LIKEBRAND_MODIFY_UID_ISNULL(100011001),
  202 + LIKEBRAND_GET_UID_ISNULL(100011002),
  203 +
  204 + //012 在线帮助
  205 + HELP_ID_ERROR(100012001),
  206 + HELP_CONTENT_EMPTY(100012002),
  207 +
  208 + //013 用户签到
  209 + USER_SIGN_SIGNED(100013001),
  210 + USER_SIGN_CONFIG_NOT_EXIST(100013002),
  211 + USER_SIGN_PARAM_PUSH_FLAG_ERROR(100013003),
  212 +
  213 + //014 用户投诉
  214 + USER_COMPLAINTS_PARAM_EMPTY(100014001),
  215 + USER_COMPLAINTS_PARAM_UID_EMPTY(100014002),
  216 + USER_COMPLAINTS_PARAM_TITLE_EMPTY(100014003),
  217 + USER_COMPLAINTS_PARAM_TITLE_TOOLONG(100014004),
  218 + USER_COMPLAINTS_PARAM_CUSTOMER_TOOLONG(100014005),
  219 + USER_COMPLAINTS_PARAM_ORDERCODE_EMPTY(100014006),
  220 + USER_COMPLAINTS_PARAM_CONTENT_EMPTY(100014007),
  221 + USER_COMPLAINTS_PARAM_CONTENT_TOOLONG(100014008),
  222 +
  223 + //015个人中心
  224 + GIFT_CODE_IS_NULL(100015001),
  225 + CAPTCHA_CODE_IS_NULL(100015002),
  226 + GIFT_EXCHANGE_FAIL(100015003),
  227 + GIFT_CODE_NOT_FOUND(100015004),
  228 + GIFT_CODR_IS_ERROR(100015005),
  229 + ADD_LOG_FAIL(100015006),
  230 +
  231 + // 016 各种专题
  232 + // 新潮教室
  233 + USER_STAR_INTIMACY_PARAM_NULL(100016001),
  234 + USER_STAR_INTIMACY_SIGN_ALREADY(100016002),
  235 + USER_STAR_INTIMACY_SIGN_ERROR(100016003),
  236 + USER_STAR_INTIMACY_GET_RANK_FAIL(100016004),
  237 + USER_STAR_INTIMACY_GET_FORWARD_FAIL(100016005),
  238 + USER_STAR_INTIMACY_SET_INTIMACY_FAIL(100016006),
  239 + USER_STAR_INTIMACY_SET_ISCHECKED_FAIL(100016007),
  240 + USER_STAR_INTIMACY_SET_CHECKEDDAYS_FAIL(100016008),
  241 + USER_STAR_INTIMACY_GET_TOP_FAIL(100016009),
  242 +
  243 + // 017 商家端
  244 + SHOPS_ACCOUNT_IS_NULL(100017001),
  245 + SHOPS_PASSWORD_IS_NULL(100017002),
  246 + SHOPS_LOGIN_ERROR(100017003),
  247 + SHOPS_PID_IS_NULL(100017004),
  248 + SHOPS_CALL_ERP_FAIL(100017005),
  249 + SHOPS_PASSWORD_NOT_RULE(100017006),
  250 + SHOPS_UPDATE_PASSWORD_ERROR(100017007),
  251 + SHOPS_APP_VERSION_IS_NULL(100017008),
  252 + SHOPS_CLIENT_TYPE_IS_NULL(100017009),
  253 + SHOPS_APP_URL_IS_NULL(100017010),
  254 + SHOPS_OLD_PASSWORD_IS_ERROR(100017011),
  255 + SHOPS_ACCOUNT_IS_NOT_EXIST(100017012),
  256 + SHOPS_NEW_PASSWORD_IS_NOT_CONSISTENT(100017013),
  257 + SHOPS_ID_IS_ERROR(100017014),
  258 + SHOPS_INBOX_ID_IS_ERROR(100017015),
  259 + SHOPS_INBOX_TYPE_IS_ERROR(100017016),
  260 + SHOPS_NEW_PASSWORD_IS_SIMPLE(100017017),
  261 + SHOPS_ID_IS_NULL(100017018),
  262 + SHOPS_ACCOUNT_CALL_FAIL(100017019),
  263 +
  264 +
  265 + // 018 mars点数
  266 + MARSPOINT_NUM_INVALID(100018001),
  267 + MARSPOINT_TYPE_INVALID(100018002),
  268 + MARSPOINT_ORDERCODE_IS_NULL(100018004),
  269 + MARSPOINT_CURRENCY_NOT_ENOUGH(100018005),
  270 + MARSPOINT_CALL_METHOD_ERRPR(100018006),
  271 + SSOID_IS_NULL(100018008),
  272 + MOBIL_EMAIL_IS_NULL(100018009),
  273 + PASSWORD_NOT_VALID(100018010),
  274 +
  275 + // order黑名单限制
  276 + USER_BLACK_LIST_UID_IS_INVALID(100019001),
  277 +
  278 + // 学生认证
  279 + REQUEST_ZMXY_ERROR(100020001),
  280 + NO_RESPONSE_FROM_ZMXY(100020002),
  281 + NOT_REAL_NAME_USER(100020003),
  282 + NOT_ZHIFUBAO_USER(100020004),
  283 + ZMXY_TOKEN_IS_NULL(100020005),
  284 + IS_STUDENT_ALREADY(100020006),
  285 + IDENTITYCARDNO_IS_USERD(100020007),
  286 + ZMXY_SERVICE_ERROR(100020008),
  287 + ZMXY_COLLEGE_INCORRECT(100020009),
  288 + ZMXY_DEGREE_INCORRECT(100020010),
  289 + ZMXY_ENROLLMENTYEAR_INCORRECT(100020011),
  290 +
  291 + // 二维码登录
  292 + TWODIMEN_CODE_IS_NULL(100021001),
  293 + TWODIMEN_UID_IS_NULL(100021002),
  294 + TWODIMEN_CODE_IS_INVALID(100021003),
  295 + TWODIMEN_CODE_LOGIN_FAIL(100021004),
  296 + TWODIMEN_CODE_IS_ILLEGAL(100021011),
  297 +
  298 + // 领取有货币活动
  299 + TOKEN_IS_NULL(100021005),
  300 + REVICE_ACTIVITY_NOT_EXIST(100021006),
  301 + REVICE_ACTIVITY_NOT_BEGIN(100021007),
  302 + REVICE_ACTIVITY_HAS_END(100021008),
  303 + REVICE_ACTIVITY_HISTORY_EXIST(100021009),
  304 + REVICE_TIMES_MAX(100021010),
  305 +
  306 + // 第三方绑定优化
  307 + OPENID_IS_BIND(100031010),
  308 + UID_OPENID_IS_BIND(100031011),
  309 + RELATED_USER_OPENID_SINGLE(100031012),
  310 + REMOVE_BIND_FAIL(100031013),
  311 + OPENID_IS_NOT_BIND(100031014),
  312 +
  313 +
  314 + // 生成图片验证码失败
  315 + GET_VERIFIEDGRAPHICCODE_FAIL(100041014),
  316 +
  317 +
  318 + //---------------用户模块异常码-------------------
  319 +
  320 +
  321 + //-----------------联盟模块----------------------------------------
  322 + APP_IS_NULL(800000000),
  323 + UDID_IS_NULL(800000001),
  324 + CALLBACKURL_IS_NULL(800000002),
  325 + APP_UDID_IS_EXISTS(800000003),
  326 + APP_UDID_IS_NOT_EXISTS(800000004),
  327 + APP_UDID_IS_ACTIVED(800000005),
  328 +
  329 + //-----------------联盟模块----------------------------------------
  330 +
  331 + OTHER_ERROR(111111111),
  332 + ERROR(222222222),
  333 +
  334 + //-----------resources模块异常处理----------------
  335 + RESOURCES_REQUEST_ERROR(300000001),
  336 + RESOURCES_SERVICE_ERROR(300000002),
  337 + RESOURCES_CONTENT_CODE_IS_EMPTY(300001001),
  338 + RESOURCES_CLIENT_TYPE_IS_EMPTY(300001002),
  339 + RESOURCES_GENDER_IS_EMPTY(300001003),
  340 + RESOURCES_PAGE_MUST_BE_GREATER_THAN_0(300001004),
  341 + RESOURCES_LIMIT_MUST_BE_GREATER_THAN_0(300001005),
  342 +
  343 + RESOURCES_UID_IS_EMPTY(300002001),
  344 + RESOURCES_UDID_IS_EMPTY(300002002),
  345 + RESOURCES_APP_VERSION_IS_EMPTY(300002003),
  346 + RESOURCES_SCREEN_SIZE_EMPTY(300002004),
  347 + RESOURCES_NO_CACHE_CLEAR_INFO(300002005),
  348 +
  349 + RESOURCES_NO_CLIENT_TYPE(300003001),
  350 + RESOURCES_NO_APP_CLIENT_TYPE_ADS(300003002),
  351 + RESOURCES__NO_APP_CLIENT_TYPE_ADS(300003004),
  352 + RESOURCES_NODE_IS_EMPTY(300003003),
  353 + RESOURCES_USERPROFILE_IS_EMPTY(300004001),
  354 + RESOURCES_USERBASE_IS_EMPTY(300004002),
  355 + RESOURCES_YOHOOD_PASSKIT_UID_EMPTY(300004005),
  356 + RESOURCES_YOHOOD_PASSKIT_TICKET_CODE_EMPTY(300004006),
  357 + RESOURCES_YOHOOD_PASSKIT_TICKET_DB_NOT_FOUND(300004007),
  358 + RESOURCES_YOHOOD_PASSKIT_TICKET_UID_UNMATCH(300004008),
  359 + RESOURCES_YOHOOD_PASSKIT_GENERATE_ERROR(300004009),
  360 + RESOURCES_YOHOOD_LARGEVIEW_TAG_ID_ERROR(300004010),
  361 + RESOURCES_SINGLE_NOT_FIND(300005001),
  362 + RESOURCES_SINGLE_PARSE_DATA_ERROR(300005002),
  363 +
  364 + // 2016/12/9 v5.3帮助中心接口 对应的错误消息
  365 + PLATFORM_NAME_IS_NULL(300006001),
  366 + PLATFORM_IS_INVALID(300006002),
  367 + FIRST_LEVEL_CATEGORY_IS_NOTEXIST(300006003),
  368 + HELPER_CONTENT_IS_NOTEXIST(300006004),
  369 +
  370 +
  371 + //-----------resources模块异常处理----------------
  372 + //-----------order模块异常处理----------------
  373 + ORDER_REQUEST_ERROR(400000001),
  374 + ORDER_SERVICE_ERROR(400000002),
  375 + ORDER_NULL(400001001),
  376 + ORDER_ORDER_CODE_IS_EMPTY(400001002),
  377 + ORDER_UID_IS_EMPTY(400001003),
  378 + ORDER_DELETE_ORDER_FAIL(400001004),
  379 + ORDER_ORDERS_GOODS_IS_EMPTY(400001005),
  380 + ORDER_REQUEST_PARM_IS_EMPTY(400001000),
  381 + ORDER_ORDER_HAS_PAID(400001006),
  382 + ORDER_SUBMIT_ORDER_STATUS_FAIL(400001007),
  383 + ORDER_PAYMENT_IS_EMPTY(400001008),
  384 + ORDER_NO_DELIVERY_ORDER(400001009),
  385 + ORDER_NO_LOGISTICS_ORDER(400001010),
  386 + ORDER_NOT_FIND_LOGISTICS_COMPANY(400001011),
  387 + ORDER_LOGISTICS_INFORMATION(400001012),
  388 + ORDER_CHANGE_NO_ID(400001013),
  389 + ORDER_CHANGE_NO_EXPRESS_COMPANY(400001014),
  390 + ORDER_CHANGE_NO_EXPRESS_NUM(400001015),
  391 + ORDER_CHANGE_NO_LOGIN(400001016),
  392 + ORDER_HAS_DELETE(400001017),
  393 + ORDER_CHANGE_ORDER_NO_CONFIRM(400001018),
  394 + ORDER_CHANGE_ORDER_EXPIRED(400001019),
  395 + ORDER_SAVE_EXPRESS_FAIL(400001020),
  396 + ORDER_SAVE_EXPRESS_SUCCESS(400001021),
  397 + ORDER_CHANGE_NO_CHANGEID(400001022),
  398 + ORDER_CHANGE_ORDER_NO_EXISTS(400001023),
  399 + ORDER_CHANGE_SOURCE_NO_EXISTS(400001024),
  400 + ORDER_CHANGE_APPLY_NO_SIGN(400001025),
  401 + ORDER_CHANGE_APPLY_HAS_EXPIRED(400001026),
  402 + ORDER_CHANGE_APPLY_NO_GOODS(400001027),
  403 + ORDER_CHANGE_APPLY_NO_RECEIVE_NAME(400001028),
  404 + ORDER_CHANGE_APPLY_NO_AREA(400001029),
  405 + ORDER_CHANGE_APPLY_NO_ADDRESS(400001030),
  406 + ORDER_CHANGE_APPLY_PHONE_WRONG(400001031),
  407 + ORDER_CHANGE_APPLY_NO_DEVELIVERY_TYPE(400001032),
  408 + ORDER_CHANGE_APPLY_NO_CHANGE_REASON(400001033),
  409 + ORDER_CHANGE_APPLY_NO_FULL_INFO(400001034),
  410 + ORDER_CHANGE_APPLY_NO_SUBMIT_REPEAT(400001035),
  411 + ORDER_CHANGE_APPLY_CHANGE_NUM_WRONG(400001036),
  412 + ORDER_CHANGE_NO_EXISTS(400001037),
  413 + ORDER_CHANGE_APPLY_ERP_ERROR(400001038),
  414 + ORDER_CHANGE_CREATE_LOCAL_ERROR(400001039),
  415 + ORDER_PAY_CANCELED_AND_PAID(400001038),
  416 + ORDER_PAY_AMOUNT_NOT_EQUAL(400001039),
  417 +
  418 +
  419 +
  420 + ORDER_PAY_ATTRIBUTE_EMPTY(400001040),
  421 + ORDER_PAY_ID_EMPTY(400001041),
  422 + ORDER_PAY_UID_EMPTY(400001042),
  423 +
  424 + ORDER_CANCEL_ORDERS_OUPONS_FAIL(400001043),
  425 + ORDER_CANCEL_ORDERS_LIMITCODE_FAIL(400001044),
  426 + ORDER_PRODUCT_ID_EMPTY(400001045),
  427 +
  428 + ORDER_CANCEL_FAILED_BY_STATUS_PAYFINISHED(400001046),//取消订单错误码,已支付的不能取消
  429 + ORDER_CANCEL_FAILED_BY_STATUS_SHIPPED(400001047),////取消订单错误码,已发货的不能取消
  430 + ORDER_CHANGE_CREATE_STORAGE_NOT_ENOUGH(400001048),
  431 + ORDER_CONFIRM_FAILED_BY_STATUS_NOT_SHIPPED(400001049), //确认未发货的订单错误码,未发货的订单不能确认
  432 + ORDER_CANCEL_FAILED_NOT_FIT_TIME(400001050),//取消订单错误码,预支付时间不够
  433 + ORDER_EXPRESS_NOT_VALIDATE(400001051),
  434 + // 收货地址
  435 + ORDER_DELIVERY_ADDRESSID_IS_EMPTY(400001052),
  436 + ORDER_NOT_EXIST(400001053),
  437 + ORDER_HAS_BEEN_REMOVED(400001054),
  438 + ORDER_HAS_BEEN_DELIVERED(400001055),
  439 + ORDER_THE_REGION_NOT_EXIST(400001056),
  440 + ORDER_MODIFY_ONE_TIMES_DELIVERY_ADDRESS(400001057),
  441 + ORDER_DELIVERY_ADDRESSID_NOT_SUPPORT_SF_DISTRIBUTION_AREA(400001058),
  442 + ORDER_PAY_NOT_ALLOW(400001059),
  443 + ORDER_THE_ORDER_HAS_BEEN_CANCELLED(400001060),
  444 + ORDER_DELIVERY_ADDRESSID_NOT_SUPPORT_SF_EXPRESS_TRANSPORT(400001061),
  445 + ORDER_NOT_SUPPORT_CODPAY(400001062),
  446 + ORDER_NOW_IS_CODPAY(400001063),
  447 +
  448 + ORDER_PAYRESULT_CONFIRM_ING(400001070),
  449 + ORDER_NOT_OUTLINE_GET_PAYMENTSTATUS(400001080),
  450 +
  451 + //退货
  452 + ORDER_UID_ERROR(400002001),
  453 + ORDER_REFUND_REQUEST_ID_ERROR(400002002),
  454 + ORDER_REFUND_REQUEST_NOT_EXIST(400002003),
  455 + ORDER_NO_REFUND_GOODS(400002004),
  456 + ORDER_SET_REFUND_REQUEST(400002005),
  457 + ORDER_LOGISTICS_COMPANY(400002006),
  458 + ORDER_FILL_OUT_EXPRESS_ORDER(400002007),
  459 + ORDER_LOGIN_FIRST(400002008),
  460 + ORDER_NO_REFUND_REQUEST(400002009),
  461 + ORDER_FAIL_EXPRESS_ORDER(400002010),
  462 + ORDER_REFUND_EXPRESS_DATA_FAIL(400002011),
  463 + ORDER_NO_REFUND_REQUEST_GOODS(400002012),
  464 + ORDER_INVALID_USER_ID(400002013),
  465 + ORDER_ORDER_NUMBER_ERROR(400002014),
  466 + ORDER_DOES_NOT_EXIST(400002015),
  467 + ORDER_HAS_BEEN_DELETED(400002016),
  468 + ORDER_NOT_CONFIRMED_CANNOT_RETURNED(400002017),
  469 + ORDER_EXCEEDED_RETURN_PERIOD(400002018),
  470 + ORDER_NUMBER_ERROR(400002019),
  471 + ORDER_USER_ID_ERROR(400002020),
  472 + ORDER_SELECT_GOODS_TO_RETURN(400002021),
  473 + ORDER_SELECT_RETURN_SET(400002022),
  474 + ORDER_SELECT_RETURN_METHOD(400002023),
  475 + ORDER_SETUP_BANK_CARD_INFORMATION(400002024),
  476 + ORDER_SETUP_ALIPAY_ACCOUNT(400002025),
  477 + ORDER_RETURN_ORDER_NOT_EXIST(400002026),
  478 + ORDER_ORDER_DELETE(400002027),
  479 + ORDER_SELECT_RETURN_GOODS(400002028),
  480 + ORDER_SELECT_RETURN_REASON(400002029),
  481 + ORDER_UPLOAD_REAL_PICTURE(400002030),
  482 + ORDER_FILLOUT_RETURN_INSTRUCTION(400002031),
  483 + ORDER_RETURN_AMOUNT_EXCEED(400002032),
  484 + ORDER_NO_DUPLICATE_SUBMIT(400002033),
  485 + ORDER_FAILTO_LOCAL_CREDIT_ORDER(400002034),
  486 + ORDER_FAILTO_CREDIT_ORDER(400002035),
  487 + ORDER_REFUND_SUBMIT_FAIL(400002036),
  488 + ORDER_REFUND_QUERY_ORDER_GOODS_NULL(400002037),
  489 + ORDER_REFUND_CANCAEL_STATUS_ILLEGAL(400002038),
  490 + ORDER_CHANGE_CANCAEL_STATUS_ILLEGAL(400002039),
  491 + ORDER_CHANGE_GOODS_NOT_EXISTS(400002040),
  492 + ORDER_EXPRESS_COMPANY_NOT_MORE_THAN_10_WORDS(400002041),
  493 + ORDER_INPUT_CORRECT_BANK_CARD(400002042),
  494 + ORDER_INPUT_CORRECT_ALIPAY_ACCOUNT(400002043),
  495 + ORDER_INPUT_BRANCH_BANK_INFORMATION(400002044),
  496 +
  497 +
  498 + //物流
  499 + ORDER_PARAMETER_PASSING_INCORRECT(400003001),
  500 + ORDER_NO_EXCHANGE_REFUND_INFORMATION(400003002),
  501 + ORDER_NOT_FIND_THE_LOGISTICS_COMPANY(400003003),
  502 + ORDER_NO_LOGISTICS_COMPANY(400003004),
  503 +
  504 + //动态参数
  505 + ORDER_SUBMIT_CALL_ERP(400004001),
  506 + ORDER_SET_EXPRESS_CALL_ERP(400004002),
  507 + ORDER_MISSING_REQUIRED_FIELD(400004003),
  508 + ORDER_SUBMIT_CALL_ERP_RESULT(400004004),
  509 +
  510 + //拆分订单
  511 + ORDER_SPLIT_ORDER_FAIL(400005001),
  512 + //电子发票
  513 + ORDER_INVOICE_NOT_ELETRONIC(400006001),
  514 + ORDER_INVOICE_HEADER_BLANK(400006002),
  515 + ORDER_INVOICE_GOODSITEMS_EMPTY(400006003),
  516 + ORDER_INVOICE_ORDERSTATUS_NULL(400006004),
  517 + ORDER_INVOICE_QUERY_SKNS_MARKETPRICE_NULL(400006005),
  518 + ORDER_INVOICE_ACTUAL_AMOUNT_IS_ZERO(400006006),
  519 +
  520 + //门票
  521 + ORDER_TICKET_SOLD_OUT(400007001),
  522 + ORDER_TICKET_COLORNAME_FORMAT_IS_RIGHT(400007002),
  523 + ORDER_TICKET_SEAT_SOLD_OUT(400007003),
  524 + ORDER_TICKET_TYPE_IS_EMPTY(400007004),
  525 + ORDER_TICKET_IS_EMPTY(400007005),
  526 + ORDER_UID_NOT_EXIST(400007006),
  527 +
  528 + //-----------order模块异常处理----------------
  529 +
  530 + //-----------MESSAGE模块异常处理----------------
  531 + SMS_REQUEST_PARAM_NULL(600001001),
  532 + SMS_IP_REQUEST_OVER_1000_TIME(600001002),
  533 + SMS_MOBILE_REQUEST_OVER_100_TIME(600001003),
  534 + SMS_REDIS_ERROR(600001004),
  535 + SMS_TEMPLATE_ID_NULL(600001005),
  536 + SMS_TEMPLATE_NOT_EXIST(600001006),
  537 + SMS_TEMPLATE_NO_FIT_USER(600001007),
  538 + SMS_TEMPLATE_USER_NOT_EXIST(600001008),
  539 + SMS_MESSAGE_SEND_FAILED(600001009),
  540 + SMS_INBOX_UID_NULL(600001010),
  541 + SMS_MOBILE_IN_BLACKLIST(600001011),
  542 + SMS_IP_IN_BLACKLIST(600001012),
  543 + SMS_SEND_NUM_OUTOFLIMIT(600001013),
  544 + SMS_TEMPLATE_PROJECT_NULL(600001014),
  545 + SMS_MESSAGE_IS_NULL(600001015),
  546 + SMS_TOKEN_IS_NULL(600001016),
  547 + SMS_TOKEN_IS_ERRPR(600001017),
  548 +
  549 + //-----------PUSH模块异常处理----------------
  550 + PUSH_RECYCLETASK_TASKKEY_EMPTY(600002001),
  551 + PUSH_RECYCLETASK_TASKKEY_NOTEXIST(600002002),
  552 + PUSH_RECYCLETASK_UID_EMPTY(600002003),
  553 +
  554 +
  555 + //-----------SNS模块异常处理----------------
  556 + SNS_PARAMS_IS_NULL(700001001),
  557 + // 700-003 guang 逛
  558 + ARTICLE_GET_ID_ISNULL(700003001),
  559 + ARTICLE_GET_DATA_ISNULL(700003002),
  560 + ARTICLE_FAV_UID_ISNULL(700003003),
  561 + ARTICLE_FAV_ARTID_ISNULL(700003004),
  562 + ARTICLE_FAV_ADD_FAIL(700003005),
  563 + ARTICLE_FAV_DEL_FAIL(700003006),
  564 + ARTICLE_GETBASEINFO_ID_ISNULL(700003007),
  565 + ARTICLE_GETBASEINFO_DATA_ISNULL(700003008),
  566 + ARTICLECOMMENTS_GETLIST_ARTICLEID_ISNULL(700003009),
  567 + ARTICLECOMMENTS_GETLIST_DATA_ISNULL(700003010),
  568 + ARTICLECOMMENTS_ADD_UID_ISNULL(700003011),
  569 + ARTICLECOMMENTS_ADD_ARTICLEID_ISNULL(700003012),
  570 + ARTICLECOMMENTS_ADD_ARTICLE_ISNULL(700003013),
  571 + ARTICLECOMMENTS_ADD_USER_ISNULL(700003014),
  572 + ARTICLE_PRAISE_ARTID_ISNULL(700003015),
  573 + ARTICLE_PRAISE_UDID_ISNULL(700003016),
  574 + ARTICLE_PRAISE_GET_FAIL(700003017),
  575 + ARTICLE_PRAISE_SET_FAIL(700003030),
  576 + SHAREBRAND_DETAIL_ID_ISNULL(700003018),
  577 + SHAREBRAND_DETAIL_BRANDRELATION_ISNULL(700003019),
  578 + SHAREBRAND_DETAIL_BRAND_ISNULL(700003020),
  579 + PLUSTAR_BRAND_TYPE_IS_NULL(700003021),
  580 + ARTICLE_AUTHOR_UID_NULL(700003022),
  581 + ARTICLE_AUTHOR_UID_PARAM_ERROR(700003023),
  582 + ARTICLE_AUTHOR_NOT_EXIST(700003024),
  583 + ARTICLE_CONTENT_ARTICLEID_NULL(700003025),
  584 + ARTICLE_CONTENT_ARTICLEID_ERROR(700003026),
  585 + ARTICLE_CONTENT_ARTICLE_NOT_EXIST(700003027),
  586 + ARTICLE_NEXT_PRE_NOT_EXIST(700003031),
  587 + BRAND_RELATION_NOT_EXIST(700003028),
  588 + ARTICLE_TAG_IS_EMPTY(700003029),
  589 + ARTICLE_PRAISE_CANCEL_FAIL(700003032),
  590 +
  591 +
  592 + //-------------PROMOTION促销优惠券模块------------------------/
  593 + PROMOTION_REQUEST_PAREMENT_ERROR(700001000),
  594 + PROMOTION_PARAM_IS_ERROR(700001001),
  595 + PROMOTION_COUPON_IS_INVAILD(700001002),
  596 + PROMOTION_COUPON_IS_CLOSED(700001003),
  597 + PROMOTION_COUPON_NOT_EXISTS(700001004),
  598 + PROMOTION_COUPONINFO_NOT_EXIST(700001005),
  599 + PROMOTION_COUPON_IS_NOT_VAILD(700001006),
  600 + PROMOTION_COUPON_CANNOT_USE(700001007),
  601 + PROMOTION_COUPON_USE_TYPE_NOT_ALLOW(700001008),
  602 + PROMOTION_COUPON_USED_MAX(700001009),
  603 + PROMOTION_COUPON_NOT_USE_DOUBLE(700001010),
  604 + PROMOTION_COUPON_NOT_ALLOW_OR_EXPIRE(700001011),
  605 + PROMOTION_COUPON_USE_MAX(700001012),
  606 + PROMOTION_COUPON_IS_NOT_YOUS(700001013),
  607 + PROMOTION_COUPON_HAS_RECEIVED(700001014),
  608 + PROMOTION_COUPON_HAS_NOT_EXISTS(700001015),
  609 + PROMOTION_COUPON_SEND_FAIL(700001016),
  610 + PROMOTION_COUPON_HAS_NO_VAILD(700001017),
  611 + PROMOTION_COUPON_CONFIG_NOT_EXISTS(700001018),
  612 + PROMOTION_YOHOBI_SEND_FAIL(700001019),
  613 + PROMOTION_COUPON_USER_BIRTH_IS_NULL(700001020),
  614 + PROMOTION_COUPON_USER_BIRTH_IS_NOT_ALLOW(700001021),
  615 + PROMOTION_COUPON_USER_BIRTH_ONE_YEAR_ONE(700001022),
  616 + PROMOTION_ACTIVITY_NOT_EXISTS(700001041),
  617 + PROMOTION_ACTIVITY_CONFIGURATION_NOT_EXISTS(700001042),
  618 + PROMOTION_COUPON_ONLY_NEW_USER_CAN_ACQUIRE(700001043),
  619 + PROMOTION_ACTIVITY_COUPON_HAS_ACQUIRED(700001044),
  620 + POROMTION_COUPON_USER_LEVEL_CAN_NOT_ACQUIRE(700001045),
  621 + ACTIVITY_STATUS_ERROR(700001046),
  622 + HAVE_NOT_EXISTS_SHARE_HISTORY(700001047),
  623 + REQUEST_PARAM_INVALID(700001048),
  624 + PROMOTION_PCOUPON_ARRIVED_MAX_TIMES(700001049),
  625 + PROMOTION_COUPON_BROADCAST_SEND_FAIL(700001051),
  626 + PROMOTION_COUPON_NOT_ARRIVE_GET_START_TIME(700001052),
  627 + PROMOTION_COUPON_TIME_OUT_CAN_NOT_GET(700001053),
  628 + PROMOTION_COUPON_VIP_LEVEL_NO_BIRTH_COUPON(700001054),
  629 + PROMOTION_COUPON_NO_BIRTH_COUPON_GET(700001055),
  630 + //限购码异常
  631 + LIMIT_CODE_NOT_EXIST(700001030),
  632 + LIMIT_CODE_INVALID(700001031),
  633 + LIMIT_CODE_EXPIRED(700001032),
  634 + LIMIT_CODE_NOT_AVAILABLE(700001033),
  635 + LIMIT_CODE_EXCEED_LIMIT_NUM(700001034),
  636 + LIMIT_CODE_UNFIT_CONDITION(700001035),
  637 + LIMIT_CODE_NOT_PRODUCT(700001036),
  638 + HAS_RECEIVE_LIMIT_CODE_PRODUCT(700001037),
  639 + LIMIT_CODE_BATCH_NOT_EXIST(700001038),
  640 + LIMIT_PRODUCT_TYPE_NOT_SHARE(700001039),
  641 + LIMIT_CODE_SKU_NOT_MATCH_PRODUCTSKU(700001040),
  642 + LIMIT_PRODUCT_TYPE_SPECIAL_NOT_SHARE(700001050),
  643 +
  644 +
  645 + //优惠码异常
  646 + PROMOTION_CODE_NOT_EXIST(700001023),
  647 + PROMOTION_CODE_INVALID(700001024),
  648 + PROMOTION_CODE_EXPIRED(700001025),
  649 + PROMOTION_CODE_EXCEED_LIMIT_NUM(700001026),
  650 + PROMOTION_CODE_UNFIT_CONDITION(700001027),
  651 + PROMOTION_CODE_NOT_AVAILABLE(700001028),
  652 +
  653 + //----------------购物车异常码-------------------/
  654 + SHOPPING_REQUESTPARAMS_IS_NULL(200001001),
  655 + SHOPPING_PRODUCTSKU_IS_NULL(200001002),
  656 + SHOPPING_SHOPPINGKEY_IS_NULL(200001003),
  657 + SHOPPING_PRODUCTSKN_BUYNUMBER_OVER_MAX(200001004),
  658 + SHOPPING_CART_NUMBER_OVER_MAX(200001005),
  659 + SHOPPING_PROFILE_IS_EMPTY(200001006),
  660 + SHOPPING_CART_IS_EMPTY(200001007),
  661 + SHOPPING_BUSCHECK_STORAGE_NUM_NOT_SUPPORT(200001008),
  662 + SHOPPING_PRODUCT_ATTRIBUTE_NOT_SUPPORT(200001009),
  663 + SHOPPING_PRODUCT_NOT_EXIST(200001010),
  664 + SHOPPING_VRESION_NOT_SUPPORT_ADVANCE(200001011),
  665 + SHOPPING_CART_ONLY_ONE_PRODUCT(200001012),
  666 + SHOPPING_PRODUCT_SKU_LIST_IS_NULL(200001013),
  667 + SHOPPING_PACKAGE_FORMAT_IS_NULL(200001014),
  668 + SHOPPING_SWAP_DATA_IS_NULL(200001015),
  669 + SHOPPING_UID_IS_NULL(200001016),
  670 + SHOPPING_PRODUCT_NOT_BELONG_PROMOTION(200001017),
  671 + SHOPPING_GOODS_NUMBER_NOTMEET_COUPONS(200001018),
  672 + SHOPPING_GOODS_AMOUNT_NOTMEET_COUPONS(200001019),
  673 + SHOPPING_SHIPPINGCOST_IS_FREE_NEXTTEIME_USE_COUPONCODE(200001020),
  674 + SHOPPING_NON_USE_COUPONS_GOODS(200001021),
  675 + SHOPPING_COUPONCODE_IS_NULL(200001022),
  676 + SHOPPING_CART_IS_EMPTY_FOR_QUERY(200001023),
  677 + SHOPPING_CART_IS_EMPTY_FOR_INCREASE(200001024),
  678 + SHOPPING_CART_IS_EMPTY_FOR_DECREASE(200001025),
  679 + SHOPPING_CART_IS_EMPTY_FOR_REMOVE(200001026),
  680 + SHOPPING_CART_IS_EMPTY_FOR_SWAP(200001027),
  681 + SHOPPING_CART_IS_EMPTY_FOR_PAYMENT(200001028),
  682 + SHOPPING_CART_IS_EMPTY_FOR_COUNT(200001029),
  683 + SHOPPING_CART_IS_EMPTY_FOR_SELECTED(200001030),
  684 + SHOPPING_CART_IS_EMPTY_FOR_COMPUTE(200001031),
  685 + SHOPPING_CART_IS_EMPTY_FOR_USECOUPON(200001032),
  686 + SHOPPING_CART_IS_EMPTY_FOR_SUBMIT(200001033),
  687 + SHOPPING_CART_IS_EMPTY_FOR_ADDFAVORITE(200001034),
  688 +
  689 + SHOPPING_CART_ORDER_TAG_IS_USED(200001040),
  690 + SHOPPING_CART_GET_ORDERCODE_ERROR(200001041),
  691 + SHOPPING_PROMOTION_NOT_EXIST(200001042),
  692 + SHOPPING_ERP_ORDER_GOODS_IS_EMPTY(200001043),
  693 + SHOPPING_BUSCHECK_ERP_ORDER_MISSING_FIELDS(200001044),
  694 + SHOPPING_BUSCHECK_ERP_ORDER_GOODS_MISSING_FIELDS(200001045),
  695 +
  696 + SHOPPING_BUSCHECK_ERP_ORDER_RECEIVER_MISSING_FIELDS(200001046),
  697 + SHOPPING_ERP_ORDER_PROMOTION_MISSING_FIELDS(200001047),
  698 + SHOPPING_ERP_ORDER_CREATION_ERROR(200001048),
  699 + SHOPPING_BUSCHECK_LOCAL_ORDER_MISSING_FIELDS(200001049),
  700 + SHOPPING_YOHO_EXCEED_REAL_AMOUT(200001050),
  701 + SHOPPING_BUSCHECK_PRODUCT_EXCEED_BUYLIMIT(200001051),
  702 + SHOPPING_ERP_ORDER_STATUS_ERROR(200001052),
  703 + SHOPPING_ORDER_ADDRESS_IS_NULL(200001053),
  704 + SHOPPING_ORDER_PAYMENTTYPE_IS_NULL(200001054),
  705 + SHOPPING_ORDER_PAYBY_IS_NULL(200001055),
  706 + SHOPPING_BUSCHECK_ERP_STATUS_RETURN_CODE_NOT_200(200001056),
  707 + SHOPPING_CART_ADDFAVORITE_ACTION_ERROR(200001057),
  708 + SHOPPING_BUSCHECK_ERP_ORDER_CREATION_RETURN_CODE_NOT_200(200001058),
  709 + SHOPPING_ORDER_GOODS_IS_EMPTY(200001059),
  710 + SHOPPING_COUPONS_PROMOTIONCODE_BOTH_NOT_NULL(200001060),
  711 + SHOPPING_PROMOTIONCODE_NOTMEETING_CONDITION(200001061),
  712 + SHOPPING_PRMOTIONCODE_NOT_EXISTS(200001062),
  713 + SHOPPING_BLACK_LIST(200001063),
  714 + SHOPPING_CASH_PAYMENT_AMOUNT_OVER_LIMIT(200001064),
  715 + SHOPPING_SHOPPINGKEY_LENGTH_OVERLIMIT(200001065),
  716 + SHOPPING_PRODUCT_STORAGE_NUM_NOT_ENOUGH(200001066),
  717 + SHOPPING_CART_VERSION_NOT_SUPPORT(200001067),
  718 + SHOPPING_CART_ILLEGAL_PARAMETER(200001068),
  719 + SHOPPING_USE_YOHOCOIN_AMOUNT_OVER_ORDER_AMOUNT(200001069),
  720 + SHOPPING_USER_BLACK_LIST(200001070),
  721 + SHOPPING_ORDER_MUST_ONLINE_PAY(200001071),
  722 + SHOPPING_ORDER_AMOUNT_ERROR(200001072),
  723 + SHOPPING_ONLINE_PAY_ORDER_AMOUNT_OVERLIMIT(200001073),
  724 + SHOPPING_JIT_SUPPLIER_ERROR(200001074),
  725 + SHOPPING_CART_TYPE_NOT_SUPPORT(200001075),
  726 + SHOPPING_USER_MOBILE_IS_INVALID(200021001),
  727 + SHOPPING_PRODUCT_ATTRIBUTE_NOT_SUPPORT_TICKET(200021002),
  728 + SHOPPING_TICKET_SYSCONFIG_IS_NULL(200021003),
  729 + SHOPPING_TICKET_HAS_BUY(200021004),
  730 + SHOPPING_TICKET_SIZENAME_FORMST_IS_RIGHT(200021005),
  731 + SHOPPING_SUBMIT_ORDER_FAIL(200021006),
  732 + SHOPPING_ORDER_AMOUNT_INCORRECT(200021007),
  733 + SHOPPING_ORDER_REPEATABL_SUBMIT(200021008),
  734 + SHOPPING_TICKET_MUST_UPGRADE_VERSION(200021009),
  735 + SHOPPING_PRODUCT_NOT_SUPPORT_BUYNOW(200021010),
  736 +
  737 + SHOPPING_CART_OFFLINE_PRODUCT_LOCK_ERROR(200021011),
  738 + SHOPPING_CART_OFFLINE_PRODUCT_UN_LOCK_ERROR(200021012),
  739 + SHOPPING_CART_OFFLINE_PRODUCT_CHECK_LOCK_ERROR(200021013),
  740 + SHOPPING_CART_OFFLINE_STOCK_QUERY_ERROR(200021014),
  741 + SHOPPING_CART_OFFLINE_QR_BIND_ERROR(200021015),
  742 + SHOPPING_CART_OFFLINE_QR_ACTIVATE_ERROR(200021016),
  743 + SHOPPING_CART_OFFLINE_QR_NOT_MATCH(200021017),
  744 + SHOPPING_CART_OFFLINE_PAYMENT_STORAGE_UNSATISFY(200021018),
  745 + SHOPPING_CART_OFFLINE_SUBMIT_STORAGE_UNSATISFY(200021019),
  746 + SHOPPING_CART_OFFLINE_PAYMENT_STORAGE_NOT_ENOUGH(200021020),
  747 + SHOPPING_CART_OFFLINE_SUBMIT_STORAGE_NOT_ENOUGH(200021021),
  748 +
  749 + //秒杀
  750 + SHOPPING_PRODUCT_NOT_SUPPORT_SECKILL(200022010),
  751 + SHOPPING_SECKILL_NOT_SUPPORT_OPERATION(200022011),
  752 + SHOPPING_SECKILL_ONLY_BUY_ONE_GOODS(200022012),
  753 + SHOPPING_SECKILL_NOT_SUPPORT_ADD_SHOPPINGCART(200022013),
  754 + SHOPPING_SECKILL_ONLY_BUY_ONE(200022014),
  755 + SHOPPING_SECKILL_GOODS_SOLD_OUT(200022018),
  756 + SHOPPING_SECKILL_ACTIVITY_NOT_START(200022019),
  757 + SHOPPING_SECKILL_ACTIVITY_IS_OVER(200022020),
  758 +
  759 + SHOPPING_PRODUCT_NOT_SUPPORT_DEPOSIT(200022021),
  760 + SHOPPING_DEPOSIT_ACTIVITY_IS_OUT(200022023),
  761 + SHOPPING_DEPOSIT_ACTIVITY_IS_OVER(200022025),
  762 +
  763 + //线下店
  764 + SHOPPING_CART_OFFLINE_DONT_HAVE_PERMISSION_ACTIVATE(200022015),
  765 + SHOPPING_CART_OFFLINE_ILLEGAL_PARAMETER_FOR_DELETE(200022016),
  766 + SHOPPING_CART_OFFLINE_CANNT_CHANGE_NUM_FOR_SWAP(200022017),
  767 + SHOPPING_CART_OFFLINE_LOCK_STORAGE_FAILED(200022022),
  768 + SHOPPING_CART_OFFLINE_IS_INVALID(200022024),
  769 + SHOPPING_CART_OFFLINE_ACTIVATE_NOT_ENOUGH_STORAGE(200022026),
  770 +
  771 + SHOPPING_PRODUCT_STORAGE_NUM_NOT_ENOUGH_SOLDOUT(200022027),
  772 +
  773 + //套餐
  774 + SHOPPING_ACTIVITY_IS_INVALID(200022028),
  775 + SHOPPING_THE_SAME_SKN_ONLY_BUY_ONE_IN_AN_ACTIVITY(200022029),
  776 + SHOPPING_SKN_NOT_BELONG_TO_ACTIVITY(200022030),
  777 + SHOPPING_ACTIVITY_SKN_MUST_NEED_BUY(200022031),
  778 + SHOPPING_PRODUCT_BUNDLE_NOT_EXIST(200022032),
  779 + SHOPPING_CART_NOT_SUPPORT_ADD_THE_PRODUCT(200022033),
  780 + SHOPPING_PRODUCT_BUY_NUMBER_NOT_MEET_CONDITION(200022034),
  781 + SHOPPING_CART_PRODUCT_BUY_NUMBER_NOT_MEET_CONDITION(200022035),
  782 +
  783 + SHOPPING_SYS_ERROR(200009999),
  784 +
  785 +
  786 + //----------------商品异常码 start-------------------/
  787 + //商品收藏服务接口
  788 + PRODUCT_TYPE_INCORRECT(500001001),
  789 + PRODUCT_ID_INCORRECT(500001002),
  790 + PRODUCT_NOT_EXIST(500001003),
  791 + PRODUCT_EXISTS(500001004),
  792 + PRODUCT_ADD_FAVORITE_SUCCESS(500001005),
  793 + PRODUCT_ADD_FAVORITE_FAIL(500001006),
  794 + PRODUCT_CANCLE_FAVORITE_SUCCESS(500001007),
  795 + PRODUCT_CANCLE_FAVORITE_FAIL(500001008),
  796 + FAVORITED_OVER_LIMIT(500001016),
  797 + //品牌收藏服务接口
  798 + UID_NOT_EXIST(500001009),
  799 + BRAND_NOT_EXISTS(500001010),
  800 + BRAND_ALREADY_FAVORITE(500001011),
  801 + //加价购服务接口
  802 + PRODUCTSKN_IS_NULL(500001012),
  803 + PROMOTIONID_IS_NULL(500001013),
  804 + PRODUCT_DATA_NOT_EXIST(500001014),
  805 + ACTIVITY_NOT_CONTAIN_PRODUCT(500001015),
  806 +
  807 + // Outlets 专题
  808 + PRODUCT_ACTIVITY_PARAMS_PLATFORM(500001019),
  809 + PRODUCT_ACTIVITY_PARAMS_TYPE(500001020),
  810 + PRODUCT_ACTIVITY_PARAMS_ID(500001021),
  811 + PRODUCT_ACTIVITY_NOT_EXIST(500001022),
  812 + PRODUCT_ACTIVITY_NOT_START(500001023),
  813 + PRODUCT_ACTIVITY_IS_END(500001024),
  814 +
  815 + //微信
  816 + WECHAT_USERFOLLOW_OPENID_ISBLANK(800001001),
  817 + WECHAT_USERFOLLOW_NO_UNIONID(800001002),
  818 + WECHAT_USERFOLLOW_NO_TOKEN(800001003),
  819 + WECHAT_USERFOLLOW_INVOKE_API_FAIL(800001004),
  820 + WECHAT_PARAM_ISNULL(800001005),
  821 + WECHAT_INTERFACE_ERROR(800001006),
  822 + WECHAT_NOTSUPPORT_INTERFACE(800001007),
  823 +
  824 + //---------------社区异常码——————————————————————————/
  825 + POSTS_PRAISE_ID_ISNULL(900001001),
  826 + POSTS_PRAISE_UID_ISNULL(900001002),
  827 + POSTS_PRAISE_FAIL(900001003),
  828 + POSTS_PRAISE_GET_FAIL(900001004),
  829 + POSTS_ID_ISNULL(900001005),
  830 + POSTS_ISNULL(900001006),
  831 + POSTS_COMMENT_UID_IS_NULL(900001007),
  832 + POSTS_UID_IS_NULL(900001008),
  833 + SOCIAL_UID_IS_NULL(900001009),
  834 + SOCIAL_USERINFO_IS_NULL(900001010),
  835 + SOCIAL_INBOX_MSG_ID_IS_NULL(900001011),
  836 + SOCIAL_SSOUID_IS_NULL(900001012),
  837 + SOCIAL_INBOX_TYPE_NULL(900001013),
  838 + SOCIAL_APPTYPE_TYPE_NULL(900001014),
  839 +
  840 + POSTS_AUTHOR_UID_NULL(900002002),
  841 + POSTS_AUTHOR_ISNOT_EXIST(900002003),
  842 + POSTS_FORUM_ISNOT_EXIST(900002004),
  843 + POSTS_INFO_IS_NULL(900002005),
  844 + POSTS_FORUM_CODE_IS_NULL(90000206),
  845 + POSTS_AUTHOR_ID_IS_NULL(90000207),
  846 + POSTS_CONTENT_IS_NULL(90000208),
  847 + POSTS_FORUM_GET_FAIL(900002009),
  848 + POSTS_ADVERT_CODE_ISNOT_EXIST(900002010),
  849 + POSTS_IMAGE_SIZE_ISNOT_SAME(900002011),
  850 +
  851 + POSTS_COMMENT_IS_NULL(900003001),
  852 + POSTS_COMMENT_ID_IS_NULL(900003002),
  853 + POSTS_COMMENT_DEL_INVALID(900003003),
  854 +
  855 +
  856 + //----------------商品异常码 end-------------------/
  857 +
  858 + //---- EPR-Stock CODE ---//
  859 + ERP_STOCK_ORDER_CODE_IS_EMPTY(70001002),
  860 + ERP_STOCK_CHANNEL_CODE_IS_EMPTY(70001003),
  861 + ERP_STOCK_ORDER_NOT_IN_MAP(70001004),
  862 + ERP_STOCK_SHIFT_LOG_NOT_PRODUCT_SKU(70001005),
  863 + ERP_STOCK_CHANGE_LOG_NOT_SKN_SKC_SKU(70001006),
  864 + ERP_STOCK_OCCUP_NOT_SKU(70001007),
  865 + ERP_STOCK_OCCUP_NOT_SHOPID(70001008),
  866 + ERP_STOCK_OCCUP_NOT_SHOPKEY(70001009),
  867 + ERP_STOCK_OCCUP_NOT_STOCKNUM(70001010),
  868 + ERP_STOCK_CANNOT_GET_ANY_ORDERS(70001011),
  869 + ERP_STOCK_CHECK_CAUSE_FAILURE(70001012),
  870 + ERP_STOCK_WRONG_STOREHOUSE_ID(70001013),
  871 + ERP_STOCK_IRREGULAR_PARAMETERS(70001014),
  872 + ERP_STOCK_INVALID_SEAT_CODE(70001015),
  873 +
  874 +
  875 +
  876 + //################################################## ERP BEGIN ##############################
  877 +
  878 + SERVICE_ID_NOT_AVAILBLE(20001002),//param is null
  879 + //----------------外采单异常码 begin-------------------/
  880 + ERP_WEBSERVICE_SUCCESS(90001000),
  881 + ERP_WEBSERVICE_EXCEPTION(90001001),
  882 + ERP_WEBSERVICE_PARAM_ERROR(90001002),
  883 + ERP_WEBSERVICE_SERVICE_NOT_AVAILABLE(90001003),
  884 + ERP_POP_SKU_EMPTY(60001002),
  885 + ERP_POP_EMPTY_JIT(60001003),
  886 + ERP_POP_PURCHASE_EMPTY(60001004),
  887 + ERP_POP_PURCHASE_GOODS_EMPTY(60001005),
  888 + ERP_POP_EMPTY_BRAND_ID(60001006),
  889 + ERP_POP_INVALID_BRAND_NAME(60001007),
  890 + ERP_POP_NO_OUTSTORAGE_RECORD(60001008),
  891 + ERP_POP_NO_REQUISITION_RECORD(60001009),
  892 + ERP_POP_NO_PRO_REQUISITION_RECORD(60001010),
  893 + ERP_POP_INPUT_FACTORYCODE_INVALID(60001011),
  894 + ERP_POP_NO_PRO_REQUISITION_GOODS(60001012),
  895 + ERP_POP_CASE_EXCEPTION(60001013),
  896 + ERP_POP_NO_SALE(60001014),
  897 + ERP_POP_ABNORMAL_INVENTORY(60001015),
  898 + ERP_POP_ABNORMAL_SKU(60001016),
  899 + ERP_POP_PARAM_ILLEGAL(60001017),
  900 + ERP_POP_NO_PRO_REQUISITION_ERROR(60001018),
  901 + ERP_POP_PRO_REQUISITION_COMMITTED(60001019),
  902 + ERP_POP_MAIN_PRO_REQUISITION_NOT_COMMITED(60001020),
  903 + ERP_POP_SUPPLY_PRO_REQ_FORBID(60001021),
  904 + ERP_POP_REQUISITION_AUDIT_STATUS_ERROR(60001022),
  905 + ERP_POP_NO_GOODS(60001023),
  906 + ERP_POP_REQUISITION_STATUS_ERROR(60001024),
  907 + ERP_POP_PRO_REQUISITION_STATUS_ERROR(60001025),
  908 + ERP_POP_UNCOMMITTED_SUPPLY_PRO_REQUISITON(60001026),
  909 + ERP_POP_IMPORT_NUM_GREATER_THAN(60001027),
  910 + ERP_POP_NOT_DISTRIBUTION(60001028),
  911 + ERP_POP_SYNC_VIR_STORAGE_ERROR(60001029),
  912 + ERP_POP_PRO_REQUISITION_FINISHED(60001030),
  913 + ERP_POP_DUPLICATE_KEY_OF_EXPRESS(60001031),
  914 + ERP_POP_INVOKE_FMS_PAYEDAMOUNT_ERROR(60001032),
  915 + ERP_POP_INVOKE_FMS_INSERTDEALERBALANCE_ERROR(60001033),
  916 + //----------------外采单异常码 end-------------------/
  917 +
  918 + //----------------财务结算异常码 begin-------------------/
  919 + ERP_FMS_SUCCESS(30001000),
  920 + ERP_FMS_EXCEPTION(30001001),
  921 + ERP_FMS_OUTINSTORAGE_EMPTY(30001002),
  922 + ERP_FMS_REQUISITIONFORM_EMPTY(30001003),
  923 + ERP_FMS_CLAUSESETTLEMENT_EMPTY(30001004),
  924 + ERP_FMS_AGREEMENTClAUSE_EMPTY(30001005),
  925 + ERP_FMS_BASEPRODUCT_EMPTY(30001006),
  926 + ERP_FMS_SELL_TYPE_EXCEPTION(30001007),
  927 + ERP_FMS_PURCHASE_DISCOUNT_EXCEPTION(30001008),
  928 + ERP_FMS_BALANCE_DETAIL_INSERT_ERROR_EXCEPTION(30001009),
  929 + ERP_FMS_FINANCE_CLEARING_UPDATE_ERROR_EXCEPTION(30001010),
  930 + ERP_FMS_PAYINFO_INSERT_DUPLICATE(30001011),
  931 + ERP_FMS_PAYINFO_INSERT_ERROR(30001012),
  932 + ERP_FMS_PAYINFO_INSERT_INVALID(30001013),
  933 + ERP_FMS_USERRECEIVABLES_INSERT_DUPLICATE(30001013),
  934 + ERP_FMS_USERRECEIVABLES_INSERT_ERROR(30001014),
  935 + ERP_FMS_USERRECEIVABLES_INSERT_INVALID(30001015),
  936 + ERP_FMS_USERRECEIVABLESSPLIT_INSERT_DUPLICATE(30001016),
  937 + ERP_FMS_USERRECEIVABLESSPLIT_INSERT_ERROR(30001017),
  938 + ERP_FMS_USERRECEIVABLESSPLIT_INSERT_INVALID(30001018),
  939 + ERP_FMS_USER_PAYMENT_TOO_LARGE(30002006),
  940 + ERP_FMS_SPECIAL_RETURN_STATUS_NOT_AUDITED(30002007),
  941 + ERP_FMS_COSTCHANGE_NOT_EXISTED(30002008),
  942 + ERP_FMS_COSTCHANGE_HAS_AUDITED(30002009),
  943 +
  944 + //----------------CRF分期付款异常码start-------------------/
  945 + ERP_FMS_INSTALLMENT_REFUND_NOTIFY_INSERT_ERROR(30002000),
  946 + ERP_FMS_INSTALLMENT_REFUND_NOTIFY_PARAMS_ERROR(30002001),
  947 + ERP_FMS_INSTALLMENT_PAYMENT_NOTIFY_HAS_EXIST_ERROR(30002002),
  948 + ERP_FMS_PARAMETER_ERROR(30002003),
  949 + ERP_FMS_NO_REPAY_PLAN_RECORD(30002004),
  950 + //----------------CRF分期付款异常码 end-------------------/
  951 +
  952 +
  953 + //----------------经销请款异常码start-------------------/
  954 + ERP_FMS_NO_SUPPLIER_INVOICE(30003000),
  955 + ERP_FMS_SUPPLIER_INVOICE_NO_ENOUGH_AMOUNT(30003001),
  956 + ERP_FMS_EMPTY_REQUISITION_INVOICE(30003002),
  957 + ERP_FMS_EMPTY_REQUISITION_INVOICE_LIST(30003003),
  958 + ERP_FMS_EMPTY_SUPPLIER_INVOICE(30003004),
  959 + ERP_FMS_SUPPLIER_BRAND_ERROR(30003005),
  960 + ERP_FMS_PRO_INVOICE_AMOUNT_ERROR(30003006),
  961 + ERP_FMS_NET_INVOICE_AMOUNT_ERROR(30003007),
  962 + ERP_FMS_NO_REQUISITION_GOODS(30003008),
  963 + ERP_FMS_NO_PRO_REQUISITION_GOODS(30003009),
  964 + ERP_FMS_SUPPLIER_INVOCIE_STATUS_ERROR(30003010),
  965 + ERP_FMS_NO_PRO_REQUISITION(30003011),
  966 + ERP_FMS_REQUISITION_INVOCIE_STATUS_ERROR(30003012),
  967 + ERP_FMS_NO_AGREEMENT(30003013),
  968 + ERP_FMS_NO_AGREEMENT_CLAUSE(30003014),
  969 + ERP_FMS_REJECT_REASON(30003015),
  970 + ERP_FMS_WORKFLOW_EMPTY(30003016),
  971 + ERP_FMS_REQUISITION_EMPTY(30003017),
  972 + ERP_FMS_CREATOR_NO_PERMISSION(30003018),
  973 + ERP_FMS_NODE_STATUS_NOT_CHECK_PENDING(30003019),
  974 + ERP_FMS_PID_IS_INVALID(30003020),
  975 + ERP_FMS_ROLE_ID_NOT_FOUND(30003021),
  976 + ERP_FMS_AMOUNT_GREATER_THAN_BALANCE_AMOUNT(30003022),
  977 + ERP_FMS_AUDIT_FLAG_INVALID(30003023),
  978 + ERP_FMS_PID_NOT_EXIST(30003024),
  979 + ERP_FMS_ROLE_ID_NOT_MATCHING_PID(30003025),
  980 + //----------------经销请款异常码end-------------------/
  981 +
  982 + //----------------财务结算异常码 end-------------------/
  983 +
  984 + //----------------基础公共bms begin-------------------/
  985 + ERP_BMS_SUCCESS(10001000),
  986 + ERP_BMS_EXCEPTION(10001001),
  987 + ERP_BMS_SMSBO_PARAMS_EMPTY(10001002),
  988 + ERP_BMS_ACCOUNT_NOT_EXISTS(10001003),
  989 + ERP_BMS_ACCOUNT_EXPIRED(10001004),
  990 + ERP_BMS_ACCOUNT_CLOSED(10001005),
  991 + ERP_BMS_ACCOUNT_NOT_AUTHORIZED(10001006),
  992 + ERP_BMS_PASSWORD_NOT_CORRECT(10001007),
  993 + ERP_BMS_ROLE_STATE_ERROR(10001008),
  994 + ERP_BMS_ACCOUNT_HAS_EXISTED(10001009),
  995 + ERP_BMS_SYN_ERP_PROFILE_EXCEPTION(10001010),
  996 + ERP_BMS_NO_RECORD(10001011),
  997 + ERP_BMS_PARAMS_EMPTY(10001012),
  998 + //----------------基础公共bms end-------------------/
  999 +
  1000 + //----------------权限系统ams begin start with 1100xxxx-------------------/
  1001 + ERP_AMS_SUCCESS(11001000),
  1002 + ERP_AMS_EXCEPTION(11001001),
  1003 + ERP_AMS_SMSBO_PARAMS_EMPTY(11001002),
  1004 + ERP_AMS_ACCOUNT_NOT_EXISTS(11001003),
  1005 + ERP_AMS_ACCOUNT_EXPIRED(11001004),
  1006 + ERP_AMS_ACCOUNT_CLOSED(11001005),
  1007 + ERP_AMS_ACCOUNT_NOT_AUTHORIZED(11001006),
  1008 + ERP_AMS_PASSWORD_NOT_CORRECT(11001007),
  1009 + ERP_AMS_ROLE_STATE_ERROR(11001008),
  1010 + ERP_AMS_ACCOUNT_HAS_EXISTED(11001009),
  1011 + ERP_AMS_SYN_ERP_PROFILE_EXCEPTION(11001010),
  1012 + ERP_AMS_NO_RECORD(11001011),
  1013 + ERP_AMS_BLACK_ACCOUNT(11001012),
  1014 + ERP_AMS_NO_LEGAL_PIDS(11001013),
  1015 + //----------------权限系统ams end-------------------/
  1016 +
  1017 +
  1018 + //----------------订单异常码 begin-------------------/
  1019 +
  1020 + ERP_ORDER_SUCCESS(50001000),
  1021 + ERP_ORDER_EXCEPTION(50001001),
  1022 + ERP_ORDER_STATUS_DELIVERY_ERROR(50001002),
  1023 + ERP_ORDER_STATUS_CANCEL_ERROR(50001003),
  1024 + ERP_ORDER_STATUS_EMPTY(50001004),
  1025 + ERP_ORDER_EMPTY(50001005),
  1026 + ERP_ORDER_CODE_OR_STATUS_EMPTY(50001006),
  1027 + ERP_ORDER_BO_PARAMS_INVALID(50001007),
  1028 + ERP_ORDER_PARENT_ORDER_FAILED(50001008),
  1029 + ERP_ORDER_PARENT_ORDER_EMPTY(50001009),
  1030 + ERP_ORDER_COMPARE_AMOUNT_FAILED(50001010),
  1031 + ERP_ORDER_UPDATE_PARENT_PAYMENT_FAILED(50001011),
  1032 + ERP_ORDER_UPDATE_SUBORDERS_PAYINFO_FAILED(50001012),
  1033 + ERP_ORDER_ORDER_CODE_INVALID(50001013),
  1034 + ERP_ORDER_ORDER_TYPE_INVALID(50001014),
  1035 +
  1036 + ERP_ORDER_CALL_ERROR(50001140),
  1037 + ERP_ORDER_CHANGE_NOT_OPERATE(50001211),
  1038 + ERP_ORDER_AMOUNT_INVALID(50001212),
  1039 + ERP_ORDER_PARAM_INVALID(50001213),
  1040 + ERP_ORDER_CREATE_ORDER_FAILD(50001230),
  1041 + ERP_ORDER_INSERT_ERROR(50001226),
  1042 + ERP_ORDER_INSERT_GOODS_ERROR(50001229),
  1043 + ERP_ORDER_INSERT_COUPONS_ERROR(50001223),
  1044 + ERP_ORDER_INSERT_SPLITINFO_ERROR(50001224),
  1045 + ERP_ORDER_INSERT_PARENT_ORDER_ERROR(50001225),
  1046 + ERP_ORDER_INSERT_PROMO_ERROR(50001227),
  1047 + ERP_ORDER_NOT_EXISTS(50001217),
  1048 + ERP_ORDER_PARENT_EXISTS(50001218),
  1049 + ERP_ORDER_PARENT_NOT_EXISTS(50001219),
  1050 + ERP_ORDER_PARENT_NOT_PAYMENT(50001221),
  1051 + ERP_ORDER_IT_IS_PARENT_ORDER(50001228),
  1052 + ERP_ORDER_CHANNELS_ORDER_EXIST(50001220),
  1053 + ERP_ORDER_GOODS_IS_NULL(50001231),
  1054 + ERP_ORDER_USER_RECEIVABLE_INVALIDATE(50001232),
  1055 + ERP_ORDER_USER_RECEIVABLE_SPLIT_INVALIDATE(50001233),
  1056 + ERP_ORDER_CHILD_ORDER_GOODS_INVALID(50001222),
  1057 + ERP_ORDER_SET_PAYMENT_STATE_FAILD(50001215),
  1058 + ERP_ORDER_CODE_INVALID(50001214),
  1059 + ERP_ORDER_CANCEL_INSERT_USER_PAYMENT_FAILED(50001234),
  1060 + ERP_ORDER_CANCEL_FAILED(50001235),
  1061 + ERP_ORDER_CANCEL_REFUND_FAILED(50001236),
  1062 + ERP_ORDER_REFUND_GOODS_NUMBER_ERROR(50001237),
  1063 + ERP_ORDER_REFUND_CALC_MONEY_FAILED(50001238),
  1064 + ERP_ORDER_REFUND_CANNOT_MATCH_GOODS(50001239),
  1065 + ERP_ORDER_INSERT_PAYINFO_FAILED(50001240),
  1066 + ERP_ORDER_INSERT_USER_RECEIVABLES_FAILED(50001241),
  1067 + ERP_ORDER_INSERT_USER_RECEIVABLES_SPLIT_FAILED(50001242),
  1068 + ERP_ORDER_CHEAT_ORDER(50001243),
  1069 + ERP_ORDER_ORDER_STATUS_ERROR(50001244),
  1070 + ERP_ORDER_STATUS_CALL_ERROR(50001245),
  1071 + ERP_ORDER_INSERT_INVOICE_ERROR(50001246),
  1072 + ERP_ORDER_INSERT_ORDER_DUPLICATE(50001247),
  1073 + ERP_ORDER_RETURN_INSERT_USER_PAYMENT_FAILED(50001248),
  1074 + ERP_ORDER_INSTALMENT_RETURN_CRF_RESP_NULL(50001249),
  1075 + ERP_ORDER_INSTALMENT_HAS_RETURNED(50001250),
  1076 + ERP_ORDER_INSTALMENT_RATE_EMPTY(50001251),
  1077 + ERP_ORDER_INSTALMENT_NOT_EXIST(50001252),
  1078 + ERP_ORDER_INSTALMENT_CRF_RESPONSE_ERROR(50001253),
  1079 + ERP_ORDER_PAYMENT_INSTALLMENTRATES_INSERT_ERROR(50001254),
  1080 + ERP_ORDER_PAYMENT_INSTALLMENTREPAYPLAN_INSERT_ERROR(50001255),
  1081 + ERP_ORDER_INSTALMENT_CANCEL_SUCCESS(50001256),
  1082 + ERP_ORDER_INSTALMENT_CANCEL_FAILED(50001257),
  1083 + ERP_ORDER_STATUS_CANCEL_CODE_INVALID(50001258),
  1084 + ERP_ORDER_UPDATE_ADDRESS_ORDERCODE_INVALID(50001259),
  1085 + ERP_ORDER_UPDATE_ADDRESS_ORDERSTATUS_INVALID(50001260),
  1086 + ERP_ORDER_UPDATE_ADDRESS_SUCCESS(50001261),
  1087 + ERP_ORDER_PAYMENT_CHKACTINFO_ERROR(50001262),
  1088 + ERP_ORDER_STOCK_ERROR(50001263),
  1089 + ERP_ORDER_TYPE_ERROR(50001264),
  1090 + ERP_ORDER_CANNOT_DELETE_USER_RETURN(50001265),
  1091 + ERP_ORDER_NO_CHANGE_GOODS(50001266),
  1092 + ERP_ORDER_REFUSE_USED(50001267),
  1093 + ERP_ORDER_UPDATE_ORDERSTATUS_BYSKU_CANNOT_MATCH_ORDER(50001268),
  1094 + ERP_ORDER_CANNOT_RETURN(50001276),
  1095 + ERP_ORDER_NULL(50001277),
  1096 +
  1097 + //亿起发
  1098 + ORDER_EMAR_USER_EMPRY(50001269),
  1099 + ORDER_EMAR_USER_KEY_ERROR(50001270),
  1100 + ORDER_EMAR_CID_WI_NOT_FOUND(50001271),
  1101 + ORDER_EMAR_NO_ORDERS(50001272),
  1102 + ORDER_EMAR_PROPERTY_ERROR(50001273),
  1103 +
  1104 + ORDER_MARK_ORDER_TOO_MANY_SKUS(50001274),
  1105 + //----------------订单异常码 end-------------------/
  1106 +
  1107 +
  1108 + //----------------WMS异常码 begin-------------------/
  1109 + ERP_WMS_SUCCEED(80001000),
  1110 + ERP_WMS_FAIL(80001001),
  1111 + ERP_WMS_IMPERFECT_PARAM_ERROR(80001002),
  1112 + ERP_WMS_IMPERFECT_ORIGINAL_SKU_NOT_EXIST(80001003),
  1113 + ERP_WMS_IMPERFECT_ORIGINAL_SKC_NOT_EXIST(80001004),
  1114 + ERP_WMS_IMPERFECT_ORIGINAL_SKN_NOT_EXIST(80001005),
  1115 + ERP_WMS_IMPERFECT_ORIGINAL_SKUSKCSKN_NOT_EXIST(80001006),
  1116 + ERP_WMS_IMPERFECT_OUTSTOCK_FAIL(80001007),
  1117 + ERP_WMS_IMPERFECT_UPDATE_INSTOCK_NUM_FAIL(80001008),
  1118 + ERP_WMS_IMPERFECT_BUILD_INSTORAGE_ORDER_FAIL(80001009),
  1119 + ERP_WMS_IMPERFECT_SEAT_CODE_STRING_ERROR(80001010),
  1120 + ERP_WMS_IMPERFECT_SKU_IS_IMPERFECT(80001011),
  1121 + ERP_WMS_IMPERFECT_STORAGE_NOT_ENOUGH(80001012),
  1122 + ERP_WMS_GET_OFFLINE_ALLOCATION_SN_FAIL(80001013),
  1123 + ERP_WMS_OFFLINE_NO_APPROVAL_GOODS(80001014),
  1124 + ERP_WMS_SUBMITTED_ALLOCATION(80001015),
  1125 + ERP_WMS_NO_ALLOCATION_RECORD(80001016),
  1126 + ERP_WMS_OPT_AUDITING_ALLOCATION(80001017),
  1127 + ERP_WMS_OFFLINE_NO_SHOP_ID(80001018),
  1128 + ERP_WMS_OFFLINE_PDA_NO_MOVED_GOODS(80001019),
  1129 + ERP_WMS_OFFLINE_PDA_NOT_ENOUGH_GOODS(80001020),
  1130 + ERP_WMS_GET_OFFLINE_INSTORE_PRODUCT_ERROR(80001021),
  1131 + ERP_WMS_GET_PRODUCT_STOCK_NUM_ERROR(80001022),
  1132 + ERP_WMS_OFFLINE_PDA_SEAT_SHIFT_PARAMETER_ERROR(80001023),
  1133 + ERP_WMS_GET_STORE_SALE_PRODUCT_ERROR(80001024),
  1134 + ERP_WMS_SKU_NOT_FOUND_IN_PICKING_ORDER_ERROR(80001025),
  1135 + ERP_WMS_NO_GOODS_IN_PICKING_ORDER_ERROR(80001026),
  1136 + ERP_WMS_SEATCODESTRING_NOT_EXISTED_ERROR(80001027),
  1137 + ERP_WMS_SEATCODESTRING_PROPERTY_NOT_CORRECT_ERROR(80001028),
  1138 + ERP_WMS_ALLOCATION_EMPTY(80001029),
  1139 + ERP_WMS_ILLEGAL_OUT_STORAGE_TYPE(80001030),
  1140 + ERP_WMS_QUERY_NJ_GOODS_ERROR(80001031),
  1141 + ERP_WMS_QUERY_NJ_GOODS_EXCEPTION(80001032),
  1142 + ERP_WMS_QUERY_AllOCATION_PARAM_EMPTY(80001033),
  1143 + ERP_WMS_QUERY_AllOCATION_GOODS_PARAM_EMPTY(80001034),
  1144 + ERP_WMS_QUERY_SHELF_GOODS_PARAM_EMPTY(80001035),
  1145 + ERP_WMS_PARAM_ERROR(80001036),
  1146 + ERP_WMS_OFFLINE_PDA_IN_STOREORDER_PARAMETER_ERROR(80001037),
  1147 + ERP_WMS_OFFLINE_PDA_IN_STOREORDER_SEATSHIFT_ERROR(80001038),
  1148 + ERP_WMS_OFFLINE_PDA_IN_STOREORDER_GENERATE_ERROR(80001039),
  1149 + ERP_WMS_OFFLINE_UPDATE_OCCUPATION_ERROR(80001040),
  1150 + ERP_WMS_OFFLINE_PDA_IN_OPERATETYPE_ERROR(80001041),
  1151 + ERP_WMS_NOT_GOODS_TO_UPDATE(80001042),
  1152 + ERP_WMS_NOT_ALLOCATION_BY_PICKINGID(80001043),
  1153 + ERP_WMS_VIRTUAIL_OUTIN_FAIL(80001044),
  1154 + ERP_WMS_VIRTUAL_PURCHASE_FORM_NOT_EXIST(80001045),
  1155 + ERP_WMS_VIRTUAL_OUTIN_STATUS_ERROR(80001046),
  1156 + ERP_WMS_VIRTUAL_OUTIN_GOODS_NOTFOUND(80001047),
  1157 + ERP_WMS_VIRTUAL_OUTIN_SHIFTLOGS_NOTVALID(80001048),
  1158 + ERP_WMS_OFFLINE_GOODS_ALREADY_EXIST(80001049),
  1159 + ERP_WMS_TOTAL_ALLOCATION_CLOSED(80001050),
  1160 + ERP_WMS_PURCHASE_FORM_NOT_EXIST(80001051),
  1161 + ERP_WMS_OFFLINE_GOODS_NOT_EXIST(80001052),
  1162 + ERP_WMS_VIRTUAL_OUT_GOODS_NOTFOUND(80001053),
  1163 + ERP_WMS_VIRTUAL_OUT_SHIFTLOGS_NOTFOUND(80001054),
  1164 + ERP_WMS_VIRTUAL_OUT_PURCHASE_FORM_NOT_EXIST(80001055),
  1165 + ERP_WMS_VIRTUAL_OUTIN_CHECKLOCK_ERROR(80001056),
  1166 + ERP_WMS_OFFLINE_ALLOCATION_DONOT_HAS_ANY_GOODS(80001057),
  1167 + ERP_WMS_DEFECT_PICKING_PARAM_NULL(80001058),
  1168 + ERP_WMS_DEFECT_PICKING_PARAM_HOUSEID_NULL(80001059),
  1169 + ERP_WMS_DEFECT_PICKING_PARAM_CREATEBY_NULL(80001060),
  1170 + ERP_WMS_DEFECT_PICKING_PARAM_DESTSHELFCODE_NULL(80001061),
  1171 + ERP_WMS_DEFECT_PICKING_PARAM_GOODSLIST_EMPTY(80001062),
  1172 + ERP_WMS_DEFECT_PICKING_PARAM_GOODSLIST_SKU_NULL(80001063),
  1173 + ERP_WMS_DEFECT_PICKING_PARAM_GOODSLIST_NUM_LESS0(80001064),
  1174 + ERP_WMS_DEFECT_PICKING_PARAM_GOODSLIST_SOURSESHELFCODE_NULL(80001065),
  1175 + ERP_WMS_DEFECT_PICKING_PARAM_GOODSLIST_DEFECTSOURSE_NULL(80001066),
  1176 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_NULL(80001067),
  1177 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_CREATEBY_NULL(80001068),
  1178 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_SHELFCODE_NULL(80001069),
  1179 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_SHOPID_NULL(80001070),
  1180 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_SOURCE_NULL(80001071),
  1181 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_LIST_NULL(80001072),
  1182 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_LIST_SKU_NULL(80001073),
  1183 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_NULL(80001074),
  1184 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_ALLOCATION_ID_AND_CODE_NULL(80001075),
  1185 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_CREATEBY_NULL(80001076),
  1186 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_PICKINGORDERSID_NULL(80001077),
  1187 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_STOREID_NULL(80001078),
  1188 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_TYPE_NULL(80001079),
  1189 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_SOURCESHELFCODE_NULL(80001080),
  1190 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_DESTSHELFCODE_NULL(80001081),
  1191 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_OUTBOXLIST_NULL(80001082),
  1192 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_OUTBOXCODE_NULL(80001083),
  1193 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_GOODSLIST_NULL(80001084),
  1194 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_BRANDID_NULL(80001085),
  1195 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_NUM_LESS_0(80001086),
  1196 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_NUM_SKC_NULL(80001087),
  1197 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_NUM_SKN_NULL(80001088),
  1198 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_NUM_SKU_NULL(80001089),
  1199 + ERP_WMS_DEFECT_CREATE_ALLOCATION_PARAM_LIST_NULL_LESS_0(80001090),
  1200 + ERP_WMS_QUERY_OUTSTORE_DETAIL_PARAM_OUTSTOREORDERID_NULL(80001091),
  1201 + ERP_WMS_QUERY_INSTORE_DETAIL_PARAM_INSTOREORDERID_NULL(80001092),
  1202 + ERP_WMS_OUTSTOREORDER_NOT_EXIST(80001093),
  1203 + ERP_WMS_INSTOREORDER_NOT_EXIST(80001094),
  1204 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_GOODS_NUM_NULL(80001095),
  1205 + ERP_WMS_PICKINGORDER_NOT_EXISTED(80001096),
  1206 + ERP_WMS_PICKINGORDER_FINISHED_OR_OUTED(80001097),
  1207 + ERP_WMS_PICKINGNUM_GREATER_THAN_ALLOCATIONNUM_ERROR(80001098),
  1208 + ERP_WMS_FOLLOW_GIFTS_BATCH_NO_ERROR(80001099),
  1209 + ERP_WMS_BULID_PICKING_ORDER_ISEMPTY(80001100),
  1210 + ERP_WMS_FOLLOW_GIFTS_STATUS_ERROR(80001101),
  1211 + ERP_WMS_SEATCODESTRINGSTOREHOUSEID_NOT_EQUALS_STOREHOUSEID(80001102),
  1212 + ERP_WMS_OUTSTOREORDER_HAS_BEEN_COMPLETED(80001103),
  1213 + ERP_WMS_QUERY_NJ_SHIFT_SHELF_ERROR(80001104),
  1214 + ERP_WMS_ALLOCATION_FINISHED_OR_OUTED(80001105),
  1215 + ERP_WMS_PICKINGID_IS_NULL(80001106),
  1216 + ERP_WMS_ALLOCATIONID_IS_NULL(80001107),
  1217 + ERP_WMS_OUTSTORENUM_GREATER_THAN_ALLOCATIONNUM(80001108),
  1218 + ERP_WMS_OUTSTORENUM_GREATER_THAN_PICKINGNUM(80001109),
  1219 + ERP_WMS_INSTORENUM_GREATER_THAN_OUTSTORENUM(80001110),
  1220 + ERP_WMS_SHELF_GOODS_EMPTY(80001111),
  1221 + ERP_WMS_INVALID_OFFLINE_ALLOCATION_TYPE(80001112),
  1222 + ERP_WMS_QUERY_NJ_USE_GOODS_ERROR(80001113),
  1223 + ERP_WMS_QUERY_NJ_SHELFCODE_TO_SEATCODE_ERROR(80001114),
  1224 + ERP_WMS_QUERY_STOCK_GETSTOCK_ERROR(80001115),
  1225 + ERP_WMS_CALL_NJ_UPDATE_PRODUCT_RELPLENISHSWITCHES_ERROR(80001116),
  1226 + ERP_WMS_NO_GOODS_NEED_BE_SHIFT(80001117),
  1227 + ERP_WMS_CALL_NJ_SYNC_AUDIT_ALLOCATION_GOODS_FAILURE(80001118),
  1228 + ERP_WMS_ALLOCATION_NUM_MUST_GT_ZERO(80001119),
  1229 + ERP_WMS_ALLOCATION_NUM_MUST_LTET_STOCK_NUM(80001120),
  1230 + ERP_WMS_GOODS_IS_NOT_SALABLE_FOR_SHOP(80001121),
  1231 + ERP_WMS_CONFIRM_OUTSTORE_PARAM_OUTBOXCODE_IS_SAME(80001122),
  1232 + ERP_WMS_BRAND_NOT_BINDING_SHELF(80001123),
  1233 + ERP_WMS_NO_BRAND_AUTH(80001124),
  1234 + ERP_WMS_NO_PICK_GOODS(80001125),
  1235 + ERP_SCAN_SHELF_CODE_ERROR(80001126),
  1236 + ERP_SCAN_SALE_SHELF_ERROR(80001127),
  1237 + //----------------WMS异常码 end-------------------/
  1238 +
  1239 + //----------------Invoice异常码 begin-------------------/
  1240 + ERP_INVOICE_SUCCESS(13001000),
  1241 + ERP_INVOICE_BO_PARAMS_INVALID(13001002),
  1242 + ERP_INVOICE_CALL_ERROR(13001003),
  1243 + ERP_INVOICE_ORDER_EMPTY(13001004),
  1244 + ERP_INVOICE_MQ_FAILED(13001005),
  1245 + ERP_INVOICE_RETURN_GOODS_UNSTORE(13001006),
  1246 + ERP_INVOICE_RED_INVOICE_HAD_ISSUED(13001007),
  1247 + ERP_INVOICE_RETURNED_GOODS_NUM_ERROR(13001008),
  1248 + ERP_INVOICE_GOODSLIST_NULL(13001009),
  1249 + ERP_INVOICE_PHONE_ILLEGAL(13001010),
  1250 + ERP_INVOICE_LASTBLUEINVOICE_IS_NULL(13001011),
  1251 + //----------------Invoice异常码 end-------------------/
  1252 +
  1253 + //----------------Printer异常码 begin-------------------/
  1254 + ERP_PRINTER_REQUEST_CONTENT_EMPTY(13010000),
  1255 + ERP_PRINTER_REQUEST_PRINTERNO_EMPTY(13010001),
  1256 + ERP_PRINTER_REQUEST_PRINTERNO_INVALID(13010002),
  1257 +
  1258 + //----------------Printer异常码 end-------------------/
  1259 +
  1260 + //----------------customerservice异常码 begin-------------------/
  1261 + ERP_CS_PROFILE_ACCOUNT_ISNOT_EXIST(25001003),
  1262 + ERP_CS_PROFILE_ACCOUNT_HAS_BEEN_BOUND(25001004),
  1263 + ERP_CS_PROFILE_ACCOUNT_HAS_NOT_BEEN_BOUND(25001005),
  1264 + ERP_CS_SETTING_HAS_BEEN_EXIST(25001006),
  1265 + ERP_CS_SETTING_IS_NULL(25001007),
  1266 + ERP_CS_SETTING_ENTERPRISE_TERMINAL_PARAMS_NULL(25001008),
  1267 + ERP_CS_SETTING_WINDOWTITLE_TOO_LONG(25001009),
  1268 + ERP_CS_SETTING_PCADLINK_TOO_LONG(25001010),
  1269 + ERP_CS_SETTING_USERQUEUETIPS_TOO_LONG(25001011),
  1270 + ERP_CS_SETTING_RECEIVETIPS_TOO_LONG(25001012),
  1271 + ERP_CS_SETTING_OFFLINETIPS_TOO_LONG(25001013),
  1272 + ERP_CS_SETTING_BREAKCOUNTDOWNTIPS_TOO_LONG(25001014),
  1273 + ERP_CS_SETTING_BREAKCOUNTDOWNTIME_TOO_LONG(25001015),
  1274 + ERP_CS_SETTING_BREAKTIME_TOO_LONG(25001016),
  1275 + ERP_CS_SETTING_BREAKTIPS_TOO_LONG(25001017),
  1276 + ERP_CS_SETTING_AUTOMATON_TERMINAL_PARAMS_NULL(25001018),
  1277 + ERP_CS_ROLE_UNDEFINED(25001019),
  1278 + ERP_CS_SETTING_ILLEGAL_DELETE(25001020),
  1279 +
  1280 + //----------------customerservice异常码 end-------------------/
  1281 +
  1282 + //----------------Ticket异常码 begin-------------------/
  1283 + ERP_TICKET_VALIDATE_SUCCEED(12001000),
  1284 + ERP_TICKET_VALIDATE_FAIL(12001001),
  1285 + ERP_TICKET_VALIDATE_PARAM_ERROR(12001002),
  1286 + ERP_TICKET_BEEN_USED(12001003),
  1287 + ERP_TICKET_SHOW_UNFINDABLE(12001004),
  1288 + ERP_TICKET_INVALIDATE(12001005),
  1289 + ERP_TICKET_FAIL_UPDATE(12001006),
  1290 + ERP_TICKET_TYPE_ERROR(12001007),
  1291 + //----------------Ticket异常码 end-------------------/
  1292 +
  1293 + //----------------全球购异常码 begin---------------------/
  1294 + GLOBALBUY_ADDRESS_UID_NULL(16001001),
  1295 + GLOBALBUY_ADDRESS_USERNAME_NULL(16001002),
  1296 + GLOBALBUY_ADDRESS_MOBILE_INVALID(16001003),
  1297 + GLOBALBUY_ADDRESS_ADDRESS_NULL(16001004),
  1298 + GLOBALBUY_ADDRESS_IDCARD_INVALID(16001005),
  1299 + //----------------全球购异常码 end-----------------------/
  1300 +
  1301 + //sso异常码
  1302 + //系统提示
  1303 + SYSTEM(500),
  1304 + MISSING_PARAMETER(500001),
  1305 + ERROR_PARAMETER(500002),
  1306 +
  1307 + //用户相关提示
  1308 + USER_EXIST(50100),
  1309 + USER_NOT_EXIST(50101),
  1310 + USER_DISABLED(50102),
  1311 + USER_NO_LOGIN(50103),
  1312 +
  1313 + //密码相关提示
  1314 + PWD_ERROR(50200),
  1315 + PWD_FORMAT(50201),
  1316 +
  1317 + //账号相关提示
  1318 + ACCOUNT_FORMAT(50300),
  1319 + ACCOUNT_TYPE(50301),
  1320 + ACCOUNT_SET(50302),
  1321 + ACCOUNT_ONLY_ONE(50303),
  1322 + ACCOUNT_EXIST(50304),
  1323 +
  1324 + //用户资料
  1325 + USERINFO_SET(50400);
  1326 +
  1327 + //################################################## ERP END ##############################
  1328 + private final int code;
  1329 + private String message;
  1330 +
  1331 + //可选,映射到gateway的错误码
  1332 + private String gwInfo;
  1333 +
  1334 +
  1335 + ServiceError(int code) {
  1336 + this.code = code;
  1337 + }
  1338 +
  1339 +
  1340 + @Override
  1341 + public int getCode() {
  1342 + return code;
  1343 + }
  1344 +
  1345 + /**
  1346 + * 获取yml中定义的错误信息
  1347 + *
  1348 + * @return 错误信息
  1349 + */
  1350 + public String getMessage() {
  1351 + return message;
  1352 + }
  1353 +
  1354 + /**
  1355 + * 获取错误信息,支持格式化。使用yml定义的模板,对参数进行 String.format
  1356 + *
  1357 + * @param params 格式化输入参数
  1358 + * @return 格式化之后的错误消息
  1359 + */
  1360 + public String getMessage(Object... params) {
  1361 + return String.format(this.message, params);
  1362 + }
  1363 +
  1364 + @Override
  1365 + public void setErrorContent(Map<String, Object> content) {
  1366 +
  1367 + this.message = (String) content.get("message");
  1368 + this.gwInfo = (String) content.get("gwError");
  1369 + }
  1370 +
  1371 +
  1372 + /**
  1373 + * 获取映射的Gateway错误.
  1374 + * 1. 如果配置了gw_info, 则直接映射为gw_info中的code和message
  1375 + * 2. 如果没有配置gw_info, 直接返回service error 中定义的东西
  1376 + *
  1377 + * @return Getaway错误
  1378 + */
  1379 + public Pair<Integer, String> getMappingGatewayError() {
  1380 + Pair<Integer, String> gwError;
  1381 + if (StringUtils.isEmpty(this.gwInfo)) {
  1382 + gwError = Pair.of(GatewayError.DEFAULT_ERROR_CODE, GatewayError.DEFAULT_ERROR_MSG);
  1383 + } else {
  1384 + gwError = this.getGwErrorByMappingInfo();
  1385 + }
  1386 + return gwError;
  1387 + }
  1388 +
  1389 + private Pair<Integer, String> getGwErrorByMappingInfo() {
  1390 + String[] codeMessage = this.gwInfo.split(":", 2);
  1391 + int gwCode = Integer.parseInt(codeMessage[0]);
  1392 + String gwMsg = codeMessage[1];
  1393 +
  1394 + //如果gwInfo只配置了code,则需要去找message
  1395 + if (StringUtils.isEmpty(gwMsg)) {
  1396 + GatewayError error = GatewayError.getGatewayErrorByCode(gwCode);
  1397 + if (error != null) {
  1398 + gwMsg = error.getMessage();
  1399 + } else { //默认的错误
  1400 + gwMsg = GatewayError.DEFAULT_ERROR_MSG;
  1401 + }
  1402 + }
  1403 + return Pair.of(gwCode, gwMsg);
  1404 + }
  1405 +
  1406 +
  1407 + /**
  1408 + * 根据code 获取 error
  1409 + *
  1410 + * @param code
  1411 + * @return
  1412 + */
  1413 + public static ServiceError getServiceErrorByCode(int code) {
  1414 + for (ServiceError error : values()) {
  1415 + if (error.getCode() == code) {
  1416 + return error;
  1417 + }
  1418 + }
  1419 + return null;
  1420 + }
  1421 +
  1422 +}
  1 +package com.yoho.error.event;
  2 +
  3 +import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
  4 +import org.springframework.context.ApplicationEvent;
  5 +
  6 +/**
  7 + *
  8 + * 通用的事件
  9 + *
  10 + * Created by chunhua.zhang@yoho.cn on 2016/2/3.
  11 + */
  12 +public class CommonEvent extends ApplicationEvent {
  13 +
  14 + /**
  15 + * @Fields serialVersionUID
  16 + */
  17 + private static final long serialVersionUID = 2840308379764797160L;
  18 + // 事件名称,线程名称
  19 + protected final String name;
  20 +
  21 + /**
  22 + * Create a new ApplicationEvent.
  23 + *
  24 + * @param name
  25 + * : 事件的名称
  26 + */
  27 + public CommonEvent(String name) {
  28 + super(name);
  29 +
  30 + this.name = name;
  31 +
  32 + }
  33 +
  34 + @Override
  35 + public String toString() {
  36 + return ReflectionToStringBuilder.toString(this);
  37 + }
  38 +
  39 + public String getName() {
  40 + return name;
  41 + }
  42 +}
  1 +package com.yoho.error.event;
  2 +
  3 +/**
  4 + * 数据库操作的事件
  5 + * Created by chunhua.zhang@yoho.cn on 2016/2/19.
  6 + */
  7 +public class DatabaseAccessEvent extends CommonEvent {
  8 +
  9 +
  10 + /**
  11 + * @Fields serialVersionUID
  12 + */
  13 + private static final long serialVersionUID = -2863457811659066198L;
  14 + private final Throwable throwable;
  15 + private final long cost;
  16 + private final String datasource;
  17 + private final String statement;
  18 +
  19 + //服务的名称
  20 + private String serviceName= "UNKNOWN";
  21 +
  22 +
  23 + //最原始的服务名称,来自gateway
  24 + private String srcServiceName = "UNKNOWN";
  25 +
  26 +
  27 + /**
  28 + * Create a new ApplicationEvent.
  29 + *
  30 + * @param name : dao name : 例如: com.yoho.IProductDAO
  31 + * @param statement: 接口名称,例如 getAll
  32 + * @param throwable: 数据库操作的异常, 可能为null
  33 + * @param cost: 数据库操作的延迟
  34 + * @param datasource: 数据库名称
  35 + *
  36 + */
  37 + public DatabaseAccessEvent(String name, String statement, Throwable throwable, long cost, String datasource) {
  38 + super(name);
  39 + this.statement = statement;
  40 + this.throwable = throwable;
  41 + this.cost = cost;
  42 + this.datasource = datasource;
  43 + }
  44 +
  45 +
  46 + /**
  47 + * 兼容之前的方法。
  48 + * @return args
  49 + */
  50 + @Deprecated
  51 + public String getArgs(){
  52 + return this.datasource;
  53 + }
  54 +
  55 + public Throwable getThrowable() {
  56 + return throwable;
  57 + }
  58 + public long getCost() {
  59 + return cost;
  60 + }
  61 +
  62 + public String getDatasource() {
  63 + return datasource;
  64 + }
  65 +
  66 + public String getStatement() {
  67 + return statement;
  68 + }
  69 +
  70 + public String getServiceName() {
  71 + return serviceName;
  72 + }
  73 +
  74 + public void setServiceName(String serviceName) {
  75 + this.serviceName = serviceName;
  76 + }
  77 +
  78 +
  79 + public String getSrcServiceName() {
  80 + return srcServiceName;
  81 + }
  82 +
  83 + public void setSrcServiceName(String srcServiceName) {
  84 + this.srcServiceName = srcServiceName;
  85 + }
  86 +}
  1 +package com.yoho.error.event;
  2 +
  3 +
  4 +import java.util.Map;
  5 +
  6 +/**
  7 + * Gateway Access 事件
  8 + * Created by chunhua.zhang@yoho.cn on 2016/2/3.
  9 + */
  10 +public class GatewayAccessEvent extends CommonEvent {
  11 +
  12 +
  13 + /**
  14 + * @Fields serialVersionUID
  15 + */
  16 + private static final long serialVersionUID = 5636937696455359734L;
  17 +
  18 + //返回的响应码
  19 + private final int statusCode;
  20 +
  21 + //时间
  22 + private final long cost;
  23 +
  24 + //请求参数
  25 + private final Map<String, Object> requestParams;
  26 +
  27 + //错误的异常栈
  28 + private String stack;
  29 +
  30 +
  31 +
  32 + /**
  33 + * gateway 访问事件
  34 + * @param url URL或者method
  35 + * @param statusCode 状态码
  36 + * @param cost 延时
  37 + * @param requestParams http请求参数
  38 + */
  39 + public GatewayAccessEvent(String url, int statusCode, long cost, Map<String, Object> requestParams) {
  40 + super(url);
  41 +
  42 + this.statusCode = statusCode;
  43 + this.cost = cost;
  44 + this.requestParams = requestParams;
  45 + }
  46 +
  47 +
  48 + public int getStatusCode() {
  49 + return statusCode;
  50 + }
  51 +
  52 + public long getCost() {
  53 + return cost;
  54 + }
  55 +
  56 +
  57 +
  58 + public Map<String, Object> getRequestParams() {
  59 + return requestParams;
  60 + }
  61 +
  62 + public String getStack() {
  63 + return stack;
  64 + }
  65 +
  66 + public void setStack(String stack) {
  67 + this.stack = stack;
  68 + }
  69 +}
  1 +package com.yoho.error.event;
  2 +
  3 +
  4 +
  5 +/**
  6 + * Gateway cache 命中统计
  7 + *
  8 + * Created by chunhua.zhang@yoho.cn on 2016/2/2.
  9 + */
  10 +public class GatewayCacheEvent extends CommonEvent {
  11 +
  12 + /**
  13 + * @Fields serialVersionUID
  14 + */
  15 + private static final long serialVersionUID = -6095963872667322633L;
  16 + private final String key;
  17 + private final String status;
  18 + private final Throwable exception;
  19 +
  20 + /**
  21 + * Create a new ApplicationEvent.
  22 + * @param methodName gateway方法
  23 + * @param key cache key
  24 + * @param status 命中状态
  25 + * @param exception 异常
  26 + */
  27 + public GatewayCacheEvent(String methodName, String key, String status, Throwable exception) {
  28 + super(methodName);
  29 + this.key = key;
  30 + this.status = status;
  31 + this.exception = exception;
  32 + }
  33 +
  34 +
  35 + public String getKey() {
  36 + return key;
  37 + }
  38 +
  39 + public String getStatus() {
  40 + return status;
  41 + }
  42 +
  43 + public Throwable getException() {
  44 + return exception;
  45 + }
  46 +
  47 +}
  1 +package com.yoho.error.event;
  2 +
  3 +import java.util.HashMap;
  4 +import java.util.Map;
  5 +
  6 +/**
  7 + * 日志事件
  8 + * Created by chunhua.zhang@yoho.cn on 2016/2/19.
  9 + */
  10 +public class LogEvent extends CommonEvent {
  11 +
  12 +
  13 + /**
  14 + * @Fields serialVersionUID
  15 + */
  16 + private static final long serialVersionUID = 620565801839108835L;
  17 + /**
  18 + * builder
  19 + */
  20 + public static class Builder{
  21 +
  22 + private LogEvent event;
  23 +
  24 +
  25 + /**
  26 + * 事件的名称,例如 "login", "register", 类似数据库的表名字
  27 + * @param name 事件的名称
  28 + */
  29 + public Builder (String name){
  30 + event = new LogEvent(name);
  31 + }
  32 +
  33 +
  34 + /**
  35 + * 添加一个事件参数,不会索引key
  36 + * @param key key
  37 + * @param value value
  38 + * @return 事件的参数
  39 + */
  40 + public Builder addArg(String key, Object value){
  41 + event.args.put(key, value);
  42 + return this;
  43 + }
  44 +
  45 + /**
  46 + * 添加一个事件tags,会索引key
  47 + * @param key key
  48 + * @param value value
  49 + * @return 事件的tags
  50 + */
  51 + public Builder addTag(String key, Object value){
  52 + if(value != null) {
  53 + event.tags.put(key, value);
  54 + }
  55 + return this;
  56 + }
  57 +
  58 + /**
  59 + * 事件属于哪个serial,默认是“logs"
  60 + * @param catalog 事件的类别,例如”users“, ”messages"
  61 + * @return this
  62 + */
  63 + public Builder catalog(String catalog){
  64 + event.catelog = catalog;
  65 + return this;
  66 + }
  67 +
  68 + /**
  69 + * 构造一个event
  70 + * @return event
  71 + */
  72 + public LogEvent build(){
  73 + return this.event;
  74 + }
  75 +
  76 + }
  77 +
  78 +
  79 + private final Map<String, Object> tags = new HashMap<>();
  80 + private final Map<String, Object> args = new HashMap<>();
  81 + private String catelog;
  82 +
  83 + /**
  84 + * Create a new ApplicationEvent.
  85 + *
  86 + * @param name : 事件的名称
  87 + *
  88 + */
  89 + private LogEvent(String name) {
  90 + super(name);
  91 + this.catelog = "yh_logs";
  92 + }
  93 +
  94 + public Map<String, Object> getTags() {
  95 + return tags;
  96 + }
  97 +
  98 + public Map<String, Object> getArgs() {
  99 + return args;
  100 + }
  101 + public String getCatelog() {
  102 + return catelog;
  103 + }
  104 +
  105 +}
  1 +package com.yoho.error.event;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +
  5 +/**
  6 + * 消息中心事件
  7 + *
  8 + * @author hugufei
  9 + */
  10 +public class MessageCenterEvent extends CommonEvent {
  11 +
  12 + private static final long serialVersionUID = -7033940407683264120L;
  13 +
  14 + private String sendScene;// 场景
  15 + private String sendSceneKey;// 场景key
  16 + private JSONObject params;// 关键参数,需要和消息中心约定参数格式【如订单已发货场景中的订单号】
  17 + private String uid;// uid
  18 +
  19 + public MessageCenterEvent(String sendScene, String sendSceneKey, JSONObject params, String uid) {
  20 + super(sendScene);
  21 + this.sendScene = sendScene;
  22 + this.sendSceneKey = sendSceneKey;
  23 + this.params = params;
  24 + this.uid = uid;
  25 + }
  26 +
  27 + public String getSendScene() {
  28 + return sendScene;
  29 + }
  30 +
  31 + public void setSendScene(String sendScene) {
  32 + this.sendScene = sendScene;
  33 + }
  34 +
  35 + public String getSendSceneKey() {
  36 + return sendSceneKey;
  37 + }
  38 +
  39 + public void setSendSceneKey(String sendSceneKey) {
  40 + this.sendSceneKey = sendSceneKey;
  41 + }
  42 +
  43 + public String getUid() {
  44 + return uid;
  45 + }
  46 +
  47 + public void setUid(String uid) {
  48 + this.uid = uid;
  49 + }
  50 +
  51 + public JSONObject getParams() {
  52 + return params;
  53 + }
  54 +
  55 + public void setParams(JSONObject params) {
  56 + this.params = params;
  57 + }
  58 +
  59 +}
  1 +package com.yoho.error.event;
  2 +
  3 +/**
  4 + * 支付事件: 支持支付宝和银联支付
  5 + *
  6 + * Created by chunhua.zhang@yoho.cn on 2016/2/19.
  7 + */
  8 +public class PaymentEvent extends CommonEvent {
  9 +
  10 + /**
  11 + * @Fields serialVersionUID
  12 + */
  13 + private static final long serialVersionUID = 1519723141207084976L;
  14 + private final String payType;
  15 + private final String out_trade_no;
  16 + private final String trade_no;
  17 + private final String total_fee;
  18 + private final String trade_status;
  19 + private String status;
  20 + /**
  21 + * Create a new ApplicationEvent.
  22 + * @param payType 支付类型: alipay or unionpay
  23 + * @param out_trade_no 订单号
  24 + * @param trade_no 平台相关的交易号
  25 + * @param total_fee 总金额
  26 + * @param trade_status 处理状态
  27 + *
  28 + */
  29 + public PaymentEvent(String payType, String out_trade_no, String trade_no, String total_fee, String trade_status) {
  30 + super("payment");
  31 + this.out_trade_no = out_trade_no;
  32 + this.trade_no = trade_no;
  33 + this.total_fee = total_fee;
  34 + this.payType = payType;
  35 + this.trade_status = trade_status;
  36 + this.status = "INIT";
  37 + }
  38 +
  39 +
  40 + public void setStatus(String status) {
  41 + this.status = status;
  42 + }
  43 + public String getPayType() {
  44 + return payType;
  45 + }
  46 +
  47 + public String getOut_trade_no() {
  48 + return out_trade_no;
  49 + }
  50 +
  51 + public String getTrade_no() {
  52 + return trade_no;
  53 + }
  54 +
  55 + public String getTotal_fee() {
  56 + return total_fee;
  57 + }
  58 +
  59 + public String getTrade_status() {
  60 + return trade_status;
  61 + }
  62 +
  63 + public String getStatus() {
  64 + return status;
  65 + }
  66 +
  67 +
  68 +}
  1 +package com.yoho.error.event;
  2 +
  3 +/**
  4 + * 推送事件
  5 + *
  6 + * @author hugufei
  7 + *
  8 + */
  9 +public class PushEvent extends CommonEvent {
  10 +
  11 + private static final long serialVersionUID = 5805800371910913724L;
  12 +
  13 + private String project;// 项目名称
  14 + private String type;// 事件类型
  15 + private String taskId;// 任务id
  16 + private String content;// 上报的内容
  17 + private String paramStr;// 具体参数
  18 +
  19 + public PushEvent(String name, String project, String type, String taskId, String content, String paramStr) {
  20 + super(name);
  21 + this.project = project;
  22 + this.type = type;
  23 + this.taskId = taskId;
  24 + this.content = content;
  25 + this.paramStr = paramStr;
  26 + }
  27 +
  28 + public void setProject(String project) {
  29 + this.project = project;
  30 + }
  31 +
  32 + public void setType(String type) {
  33 + this.type = type;
  34 + }
  35 +
  36 + public void setTaskId(String taskId) {
  37 + this.taskId = taskId;
  38 + }
  39 +
  40 + public void setParamStr(String paramStr) {
  41 + this.paramStr = paramStr;
  42 + }
  43 +
  44 + public String getProject() {
  45 + return project;
  46 + }
  47 +
  48 + public String getType() {
  49 + return type;
  50 + }
  51 +
  52 + public String getTaskId() {
  53 + return taskId;
  54 + }
  55 +
  56 + public String getParamStr() {
  57 + return paramStr;
  58 + }
  59 +
  60 + public String getContent() {
  61 + return content;
  62 + }
  63 +
  64 + public void setContent(String content) {
  65 + this.content = content;
  66 + }
  67 +
  68 +}
  1 +package com.yoho.error.event;
  2 +
  3 +
  4 +import java.util.Map;
  5 +
  6 +/**
  7 + * rabbitmq 发送事件
  8 + *
  9 + * Created by chunhua.zhang@yoho.cn on 2016/2/2.
  10 + */
  11 +public class RabbitmqSentEvent extends CommonEvent {
  12 +
  13 + /**
  14 + * @Fields serialVersionUID
  15 + */
  16 + private static final long serialVersionUID = -7120188904547178276L;
  17 + private final Object message;
  18 + private final Map<String, Object> pros;
  19 +
  20 + /**
  21 + * 服务调用事件
  22 + */
  23 + public RabbitmqSentEvent(String topic, Object message, Map<String, Object> pros) {
  24 + super(topic);
  25 + this.message = message;
  26 + this.pros = pros;
  27 + }
  28 +
  29 + public Object getMessage() {
  30 + return message;
  31 + }
  32 +
  33 + public Map<String, Object> getPros() {
  34 + return pros;
  35 + }
  36 +
  37 +
  38 +}
  1 +package com.yoho.error.event;
  2 +
  3 +/**
  4 + * 推送事件
  5 + *
  6 + * @author hugufei
  7 + *
  8 + */
  9 +public class RegisterEvent extends CommonEvent {
  10 +
  11 + private static final long serialVersionUID = 5805800371910913724L;
  12 +
  13 + private String phone;// 手机号
  14 + private String type;// 来源
  15 +
  16 + public RegisterEvent(String name, String phone, String type) {
  17 + super(name);
  18 + this.phone = phone;
  19 + this.type = type;
  20 + }
  21 +
  22 + public static long getSerialVersionUID() {
  23 + return serialVersionUID;
  24 + }
  25 +
  26 + public String getPhone() {
  27 + return phone;
  28 + }
  29 +
  30 + public void setPhone(String phone) {
  31 + this.phone = phone;
  32 + }
  33 +
  34 + public String getType() {
  35 + return type;
  36 + }
  37 +
  38 + public void setType(String type) {
  39 + this.type = type;
  40 + }
  41 +}
  1 +package com.yoho.error.event;
  2 +
  3 +/**
  4 + * 搜索事件
  5 + * @author gemingdan
  6 + *
  7 + */
  8 +public class SearchEvent extends CommonEvent {
  9 +
  10 + /**
  11 + *
  12 + */
  13 + private static final long serialVersionUID = 2429826704229980752L;
  14 + private final String functionName;
  15 + private final String moudleName;
  16 + private final String type;
  17 + private final Throwable exception;
  18 + private final String paramStr;
  19 + public SearchEvent(String name,String functionName,String moudleName,String type,Throwable exception,String paramStr) {
  20 + super(name);
  21 + // TODO Auto-generated constructor stub
  22 + this.functionName = functionName;
  23 + this.moudleName = moudleName;
  24 + this.type = type;
  25 + this.exception = exception;
  26 + this.paramStr = paramStr;
  27 + }
  28 +
  29 + public String getFunctionName() {
  30 + return functionName;
  31 + }
  32 +
  33 + public String getMoudleName() {
  34 + return moudleName;
  35 + }
  36 +
  37 + public String getType() {
  38 + return type;
  39 + }
  40 +
  41 + public Throwable getException() {
  42 + return exception;
  43 + }
  44 +
  45 + public String getParamStr() {
  46 + return paramStr;
  47 + }
  48 +}
  1 +package com.yoho.error.event;
  2 +
  3 +public class SearchLogsEvent extends CommonEvent {
  4 +
  5 + /**
  6 + *
  7 + */
  8 + private static final long serialVersionUID = 475826348138220151L;
  9 + private final String moudleName;
  10 + private final String type;
  11 + private final String paramStr;
  12 + public SearchLogsEvent(String name,String moudleName,String type,String paramStr) {
  13 + super(name);
  14 + // TODO Auto-generated constructor stub
  15 + this.moudleName = moudleName;
  16 + this.type = type;
  17 + this.paramStr = paramStr;
  18 + }
  19 +
  20 +
  21 + public String getMoudleName() {
  22 + return moudleName;
  23 + }
  24 +
  25 + public String getType() {
  26 + return type;
  27 + }
  28 +
  29 + public String getParamStr() {
  30 + return paramStr;
  31 + }
  32 +}
  1 +package com.yoho.error.event;
  2 +
  3 +
  4 +
  5 +/**
  6 + * 服务提供的restful接口访问事件
  7 + *
  8 + * Created by chunhua.zhang@yoho.cn on 2016/2/2.
  9 + */
  10 +public class ServiceAccessEvent extends CommonEvent {
  11 +
  12 +
  13 +
  14 +
  15 + /**
  16 + * @Fields serialVersionUID
  17 + */
  18 + private static final long serialVersionUID = 2370305262095540320L;
  19 + private final long cost;
  20 + private final long response_code;
  21 + private final String stack;
  22 +
  23 +
  24 +
  25 + //来源于gateway的哪个接口?
  26 + private String srcService;
  27 +
  28 + /**
  29 + * Create a new ApplicationEvent.
  30 + *
  31 + * @param url : 服务提供的URL
  32 + * @param cost: http服务响应时间
  33 + * @param response_code: 响应吗
  34 + * @param stack: 如果时间超过500ms,调用耗用时间堆栈
  35 + */
  36 + public ServiceAccessEvent(String url, long cost, long response_code, String stack) {
  37 + super(url);
  38 +
  39 + this.cost = cost;
  40 + this.response_code = response_code;
  41 + this.stack = stack;
  42 + }
  43 +
  44 + public long getCost() {
  45 + return cost;
  46 + }
  47 +
  48 + public long getResponse_code() {
  49 + return response_code;
  50 + }
  51 +
  52 + public String getStack() {
  53 + return stack;
  54 + }
  55 +
  56 + public void setSrcService(String srcService) {
  57 + this.srcService = srcService;
  58 + }
  59 +
  60 + public String getSrcService() {
  61 + return srcService;
  62 + }
  63 +
  64 +}
  1 +package com.yoho.error.event;
  2 +
  3 +
  4 +
  5 +/**
  6 + * 服务调用事件
  7 + *
  8 + * Created by chunhua.zhang@yoho.cn on 2016/2/2.
  9 + */
  10 +public class ServiceCallEvent extends CommonEvent {
  11 +
  12 +
  13 + /**
  14 + * @Fields serialVersionUID
  15 + */
  16 + private static final long serialVersionUID = 6769811962872763165L;
  17 +
  18 + /**
  19 + * 请求url
  20 + */
  21 + private final String path;
  22 +
  23 + /**
  24 + * gateway的method,比如app.search.li
  25 + */
  26 + private final String callSource;
  27 +
  28 + //异常
  29 + private final Throwable exception;
  30 +
  31 + //耗时
  32 + private long cost;
  33 +
  34 + /**
  35 + * 服务调用事件
  36 + * @param name : 服务名称
  37 + * @param path: 服务地址
  38 + * @param callSource: 调用来源,对gateway调用服务有值
  39 + * @param exception: 异常信息
  40 + */
  41 + public ServiceCallEvent(String name, String path, String callSource, Throwable exception) {
  42 + this(name, path, callSource, exception, 0);
  43 + }
  44 +
  45 + /**
  46 + * 服务调用事件
  47 + * @param name : 服务名称
  48 + * @param path: 服务地址
  49 + * @param callSource: 调用来源,对gateway调用服务有值
  50 + * @param exception: 异常信息
  51 + */
  52 + public ServiceCallEvent(String name, String path, String callSource, Throwable exception, long cost) {
  53 + super(name);
  54 + this.path = path;
  55 + this.callSource = callSource;
  56 + this.exception = exception;
  57 + this.cost = cost;
  58 + }
  59 +
  60 +
  61 + public String getPath() {
  62 + return path;
  63 + }
  64 +
  65 + public Throwable getException() {
  66 + return exception;
  67 + }
  68 +
  69 + public String getCallSource() {
  70 + return callSource;
  71 + }
  72 +
  73 + public long getCost() {
  74 + return cost;
  75 + }
  76 +
  77 + public void setCost(long cost) {
  78 + this.cost = cost;
  79 + }
  80 +}
  1 +package com.yoho.error.event;
  2 +
  3 +
  4 +/**
  5 + * 服务模块,对外提供http服务,出现异常的事件
  6 + * <p/>
  7 + * Created by chunhua.zhang@yoho.cn on 2016/2/2.
  8 + */
  9 +public class ServiceServerExceptionEvent extends CommonEvent {
  10 +
  11 +
  12 + /**
  13 + * @Fields serialVersionUID
  14 + */
  15 + private static final long serialVersionUID = -6906935866415083159L;
  16 + /**
  17 + * RequestURI
  18 + */
  19 + private final String serviceName;
  20 + private final Throwable exception;
  21 +
  22 + /**
  23 + * Create a new ApplicationEvent.
  24 + *
  25 + * @param name : requestURI
  26 + * @param exception: 异常
  27 + */
  28 + public ServiceServerExceptionEvent(String name, Throwable exception) {
  29 + super(name);
  30 + this.serviceName = name;
  31 + this.exception = exception;
  32 + }
  33 +
  34 + public String getServiceName() {
  35 + return serviceName;
  36 + }
  37 +
  38 + public Throwable getException() {
  39 + return exception;
  40 + }
  41 +
  42 +}
  1 +package com.yoho.error.event;
  2 +
  3 +
  4 +import java.util.Map;
  5 +
  6 +/**
  7 + *
  8 +* @ClassName: WebServiceAccessEvent
  9 +* @Description: webservice事件
  10 +* @author gaoren.huang
  11 +* @email gaoren.huang@yoho.cn
  12 +* @date 2016年11月3日 下午4:09:26
  13 +*
  14 + */
  15 +public class WebServiceAccessEvent extends CommonEvent {
  16 +
  17 +
  18 + /**
  19 + * @Fields serialVersionUID
  20 + */
  21 + private static final long serialVersionUID = 5636937696455359734L;
  22 +
  23 + //返回的响应码
  24 + private final int statusCode;
  25 +
  26 + //时间
  27 + private final long cost;
  28 +
  29 + //请求参数
  30 + private final Map<String, Object> requestParams;
  31 +
  32 + //错误的异常栈
  33 + private String stack;
  34 +
  35 +
  36 +
  37 + /**
  38 + * webservice 访问事件
  39 + * @param url URL或者method
  40 + * @param statusCode 状态码
  41 + * @param cost 延时
  42 + * @param requestParams http请求参数
  43 + */
  44 + public WebServiceAccessEvent(String url, int statusCode, long cost, Map<String, Object> requestParams) {
  45 + super(url);
  46 +
  47 + this.statusCode = statusCode;
  48 + this.cost = cost;
  49 + this.requestParams = requestParams;
  50 + }
  51 +
  52 +
  53 + public int getStatusCode() {
  54 + return statusCode;
  55 + }
  56 +
  57 + public long getCost() {
  58 + return cost;
  59 + }
  60 +
  61 +
  62 +
  63 + public Map<String, Object> getRequestParams() {
  64 + return requestParams;
  65 + }
  66 +
  67 + public String getStack() {
  68 + return stack;
  69 + }
  70 +
  71 + public void setStack(String stack) {
  72 + this.stack = stack;
  73 + }
  74 +}
  1 +package com.yoho.error.exception;
  2 +
  3 +import com.yoho.error.ServiceError;
  4 +
  5 +/**
  6 + * 服务调用的异常
  7 + * Created by chunhua.zhang@yoho.cn on 2015/11/18.
  8 + */
  9 +public class ServiceException extends RuntimeException{
  10 +
  11 + /**
  12 + * @Fields serialVersionUID
  13 + */
  14 + private static final long serialVersionUID = -3434467003214522941L;
  15 + //服务错误码
  16 + private final ServiceError serviceError;
  17 + private final int code;
  18 + private final String errorMessage;
  19 +
  20 +
  21 +
  22 + private String[] params;
  23 +
  24 + //是否输出堆栈
  25 + private boolean printStack = false;
  26 +
  27 + /**
  28 + * 服务异常。建议用 {@link #ServiceException(ServiceError)} 来构造
  29 + * @param code 错误码
  30 + * @param message 错误消息
  31 + */
  32 + public ServiceException(int code, String message) {
  33 + this(code,message,false);
  34 + }
  35 +
  36 +
  37 + public ServiceException(int code, String message, boolean printStack) {
  38 + this.code = code;
  39 + this.errorMessage = message;
  40 + this.printStack = printStack;
  41 +
  42 + ServiceError found = ServiceError.getServiceErrorByCode(code);
  43 + this.serviceError = found == null ? ServiceError.OTHER_ERROR : found;
  44 + }
  45 +
  46 +
  47 + /**
  48 + * 设置params。
  49 + * @param params
  50 + */
  51 + public void setParams(String ... params){
  52 + this.params = params;
  53 + }
  54 + public String[] getParams() {
  55 + return params;
  56 + }
  57 + /**
  58 + * 服务异常
  59 + * @param serviceError 服务异常
  60 + */
  61 + public ServiceException(ServiceError serviceError) {
  62 + this(serviceError,false);
  63 + }
  64 +
  65 +
  66 + /**
  67 + * 服务异常
  68 + * @param serviceError 服务异常
  69 + */
  70 + public ServiceException(ServiceError serviceError, boolean printStack) {
  71 + this.serviceError = serviceError;
  72 + this.code = serviceError.getCode();
  73 + this.errorMessage = serviceError.getMessage();
  74 + this.printStack = printStack;
  75 + }
  76 + /**
  77 + * 服务异常
  78 + * @param serviceError 服务异常
  79 + * @param cause 服务异常
  80 + */
  81 +
  82 + public ServiceException(ServiceError serviceError, Throwable cause) {
  83 + super(serviceError.getMessage(), cause);
  84 + this.serviceError = serviceError;
  85 + this.code = serviceError.getCode();
  86 + this.errorMessage = serviceError.getMessage();
  87 + }
  88 +
  89 + /**
  90 + * 服务异常
  91 + *
  92 + * @param serviceError 服务异常
  93 + */
  94 + public ServiceException(ServiceError serviceError, boolean printStack, Object... params) {
  95 + this.serviceError = serviceError;
  96 + this.code = serviceError.getCode();
  97 + this.errorMessage = serviceError.getMessage(params);
  98 + this.printStack = printStack;
  99 + }
  100 +
  101 + /**
  102 + * 如果使用ServiceException(int code, String message)构造,可能会找不到ServiceError
  103 + * @return
  104 + */
  105 + public ServiceError getServiceError() {
  106 + return serviceError;
  107 + }
  108 +
  109 + public int getCode() {
  110 + return code;
  111 + }
  112 +
  113 + @Override
  114 + public String getMessage() {
  115 + return "[" + this.code + ":" + this.errorMessage + "]";
  116 + }
  117 +
  118 + public String getErrorMessage() {
  119 + return errorMessage;
  120 + }
  121 +
  122 + public boolean isPrintStack(){
  123 + return this.printStack;
  124 + }
  125 +
  126 +
  127 +}
  1 +package com.yoho.error.exception.handler;
  2 +
  3 +import com.alibaba.fastjson.support.spring.FastJsonJsonView;
  4 +import com.yoho.error.event.ServiceServerExceptionEvent;
  5 +import com.yoho.error.exception.ServiceException;
  6 +import org.slf4j.Logger;
  7 +import org.slf4j.LoggerFactory;
  8 +import org.springframework.context.ApplicationEventPublisher;
  9 +import org.springframework.context.ApplicationEventPublisherAware;
  10 +import org.springframework.web.servlet.HandlerExceptionResolver;
  11 +import org.springframework.web.servlet.ModelAndView;
  12 +
  13 +import javax.servlet.http.HttpServletRequest;
  14 +import javax.servlet.http.HttpServletResponse;
  15 +import java.io.UnsupportedEncodingException;
  16 +import java.net.URLEncoder;
  17 +import java.util.HashMap;
  18 +import java.util.Map;
  19 +
  20 +/**
  21 + *
  22 + * 服务的全局异常处理
  23 + * spring mvc server 通用的异常处理。 2种响应:
  24 + * 1. 返回200,并且用json作为消息体,并且设置消息头(方便resttemplate处理)
  25 + * 2. 返回500,设置消息头
  26 + * Created by chunhua.zhang@yoho.cn on 2015/11/19.
  27 + */
  28 +public class ServiceGlobalExceptionHandler implements HandlerExceptionResolver, ApplicationEventPublisherAware {
  29 +
  30 + private final Logger logger = LoggerFactory.getLogger(getClass());
  31 +
  32 + private ApplicationEventPublisher publisher;
  33 +
  34 + private static final String SPLIT_ADD = "%%";
  35 +
  36 + //如果服务异常,需要把异常信息加入到头中
  37 + public static String HEADER_ERROR_CODE = "x-yh-service-error-code";
  38 + public static String HEADER_ERROR_MESSAGE = "x-yh-service-error-message";
  39 + public static String HEADER_ERROR_ADD = "x-yh-service-error-addon";
  40 +
  41 +
  42 +
  43 + @Override
  44 + public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, Exception exception) {
  45 +
  46 +
  47 + //publish event
  48 + publisher.publishEvent(new ServiceServerExceptionEvent(httpServletRequest.getRequestURI(), exception));
  49 +
  50 + //如果不是服务异常,直接返回500,并且打印异常
  51 + if (!(exception instanceof ServiceException)) {
  52 + logger.error("unknown exception happened at:{}", httpServletRequest.getRequestURI());
  53 + logger.error("unknown exception is ", exception);
  54 + httpServletResponse.setStatus(500);
  55 + httpServletResponse.addHeader(HEADER_ERROR_MESSAGE, exception.getMessage());
  56 + return new ModelAndView();
  57 + }
  58 +
  59 +
  60 + //处理服务异常。 需要添加异常信息到头中,并且返回json
  61 + ServiceException se = (ServiceException) exception;
  62 + int code = se.getCode();
  63 + String message = se.getErrorMessage();
  64 +
  65 + //add header
  66 + httpServletResponse.addHeader(HEADER_ERROR_CODE, String.valueOf(code));
  67 + httpServletResponse.addHeader(HEADER_ERROR_MESSAGE, message);
  68 + String params[] = se.getParams(); //添加其他的参数,用于重组ServiceException
  69 + if (params != null) {
  70 + try {
  71 + httpServletResponse.addHeader(HEADER_ERROR_ADD, URLEncoder.encode(String.join(SPLIT_ADD, params), "UTF-8"));
  72 + } catch (UnsupportedEncodingException e) {
  73 + logger.error("encode exception.", e);
  74 + }
  75 + }
  76 + ModelAndView mv = getErrorJsonView(code, message);
  77 + return mv;
  78 + }
  79 +
  80 +
  81 + public static String[] getParams(String headerValue) {
  82 + return headerValue.split(SPLIT_ADD);
  83 + }
  84 +
  85 + /**
  86 + * 使用FastJson提供的FastJsonJsonView视图返回,不需要捕获异常
  87 + */
  88 + public static ModelAndView getErrorJsonView(int code, String message) {
  89 + ModelAndView modelAndView = new ModelAndView();
  90 + FastJsonJsonView jsonView = new FastJsonJsonView();
  91 + Map<String, Object> errorInfoMap = new HashMap<>();
  92 + errorInfoMap.put("code", code);
  93 + errorInfoMap.put("message", message);
  94 + jsonView.setAttributesMap(errorInfoMap);
  95 + modelAndView.setView(jsonView);
  96 + return modelAndView;
  97 + }
  98 +
  99 +
  100 + @Override
  101 + public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
  102 + this.publisher = applicationEventPublisher;
  103 + }
  104 +}
  1 +package com.yoho.error.internel;
  2 +
  3 +
  4 +import com.yoho.error.ErrorCode;
  5 +import com.yoho.error.GatewayError;
  6 +import com.yoho.error.ServiceError;
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +
  10 +import java.util.Map;
  11 +
  12 +/**
  13 + * 读取配置文件,并且设置枚举类型。 注意配置文件 gateway-error.yml 使用UTF-8格式
  14 + * <p>
  15 + * Created by chang@yoho.cn on 2015/11/3.
  16 + */
  17 +public class ConfigLoader {
  18 +
  19 + private final Logger logger = LoggerFactory.getLogger(ConfigLoader.class);
  20 + private Map<String, Object> serviceErrorMap;
  21 + private Map<String, Object> gatewayErrorMap;
  22 +
  23 + /**
  24 + * 初始化error code. 由spring 初始化
  25 + */
  26 + public void init() {
  27 +
  28 + logger.info("start to init error code info");
  29 +
  30 + for (ServiceError service_error : ServiceError.values()) {
  31 + this.initErrorContent(service_error, this.serviceErrorMap);
  32 + }
  33 +
  34 + for (GatewayError gateway_error : GatewayError.values()) {
  35 + this.initErrorContent(gateway_error, this.gatewayErrorMap);
  36 + }
  37 +
  38 +
  39 + logger.info("init error code success. gateway error size {}, service error size {}",
  40 + this.gatewayErrorMap.size(), this.serviceErrorMap.size());
  41 +
  42 + }
  43 +
  44 + @SuppressWarnings("unchecked")
  45 + private void initErrorContent(ErrorCode errorCode, Map<String, Object> map) {
  46 + int code = errorCode.getCode();
  47 + String key = "[" + code + "]"; //yml读取的map,key为[422]
  48 +
  49 + Object messageObj = map.get(key);
  50 + if (messageObj != null) {
  51 +
  52 + Map<String, Object> errorInfo = (Map<String, Object>) messageObj;
  53 +
  54 + errorCode.setErrorContent(errorInfo);
  55 + }
  56 + }
  57 +
  58 + public void setServiceErrorMap(Map<String, Object> serviceErrorMap) {
  59 + this.serviceErrorMap = serviceErrorMap;
  60 + }
  61 +
  62 + public void setGatewayErrorMap(Map<String, Object> gatewayErrorMap) {
  63 + this.gatewayErrorMap = gatewayErrorMap;
  64 + }
  65 +
  66 +
  67 +}
  1 +package com.yoho.error.utils;
  2 +
  3 +import java.net.DatagramSocket;
  4 +import java.net.InetAddress;
  5 +import java.net.InetSocketAddress;
  6 +import java.net.SocketAddress;
  7 +
  8 +/**
  9 + * 获取本地IP地址
  10 + * Created by chunhua.zhang@yoho.cn on 2016/2/1.
  11 + */
  12 +public class LocalhostIpFetcher {
  13 +
  14 + public static String fetchLocalIP() {
  15 + String localIP = "127.0.0.1";
  16 + DatagramSocket sock = null;
  17 + try {
  18 + SocketAddress socket_addr = new InetSocketAddress( InetAddress.getByName("1.2.3.4"), 1);
  19 + sock = new DatagramSocket();
  20 + sock.connect(socket_addr);
  21 +
  22 + localIP = sock.getLocalAddress().getHostAddress();
  23 + } catch (Exception e) {
  24 + e.printStackTrace();
  25 + }
  26 + finally {
  27 + sock.disconnect();
  28 + sock.close();
  29 + sock = null;
  30 + }
  31 + return localIP;
  32 + }
  33 +}
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<beans xmlns="http://www.springframework.org/schema/beans"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xmlns:context="http://www.springframework.org/schema/context"
  5 + xmlns:mvc="http://www.springframework.org/schema/mvc"
  6 + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7 + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  8 + http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  9 +
  10 + <!-- gateway 错误码 -->
  11 + <bean id="gatewayErrorMap" class="org.springframework.beans.factory.config.YamlMapFactoryBean">
  12 + <property name="resources">
  13 + <list>
  14 + <value>classpath:gateway-error.yml</value>
  15 + <value>classpath:erp/erp-gateway-error.yml</value>
  16 + </list>
  17 + </property>
  18 + </bean>
  19 +
  20 + <!-- 服务内部 错误码 -->
  21 + <bean id="serviceErrorMap" class="org.springframework.beans.factory.config.YamlMapFactoryBean">
  22 + <property name="resources">
  23 + <list>
  24 + <value>classpath:service-error.yml</value>
  25 + <value>classpath:service-error-common.yml</value>
  26 + <value>classpath:service-error-product.yml</value>
  27 + <value>classpath:service-error-resources.yml</value>
  28 + <value>classpath:service-error-orders.yml</value>
  29 + <value>classpath:service-error-sns.yml</value>
  30 + <value>classpath:service-error-user.yml</value>
  31 + <value>classpath:service-error-message.yml</value>
  32 + <value>classpath:service-error-promotion.yml</value>
  33 + <value>classpath:service-error-shopping.yml</value>
  34 + <value>classpath:service-error-union.yml</value>
  35 + <value>classpath:service-error-shops.yml</value>
  36 + <value>classpath:service-error-social.yml</value>
  37 + <value>classpath:service-error-wechat.yml</value>
  38 + <value>classpath:service-error-globalbuy.yml</value>
  39 +
  40 + <!-- ERP BEGIN -->
  41 + <value>classpath:erp/erp-service-error.yml</value>
  42 + <value>classpath:erp/erp-service-error-bms.yml</value>
  43 + <value>classpath:erp/erp-service-error-dashboard.yml</value>
  44 + <value>classpath:erp/erp-service-error-fms.yml</value>
  45 + <value>classpath:erp/erp-service-error-webService.yml</value>
  46 + <value>classpath:erp/erp-service-error-job.yml</value>
  47 + <value>classpath:erp/erp-service-error-order.yml</value>
  48 + <value>classpath:erp/erp-service-error-pop.yml</value>
  49 + <value>classpath:erp/erp-service-error-stock.yml</value>
  50 + <value>classpath:erp/erp-service-error-wms.yml</value>
  51 + <value>classpath:erp/erp-service-error-tickets.yml</value>
  52 + <value>classpath:erp/erp-service-error-invoice.yml</value>
  53 + <value>classpath:erp/erp-service-error-ams.yml</value>
  54 + <value>classpath:erp/erp-service-error-printer.yml</value>
  55 + <value>classpath:erp/erp-service-error-cs.yml</value>
  56 + <!-- ERP END -->
  57 +
  58 + </list>
  59 + </property>
  60 + </bean>
  61 +
  62 +
  63 + <bean id="configLoader" class="com.yoho.error.internel.ConfigLoader" init-method="init">
  64 + <property name="gatewayErrorMap" ref="gatewayErrorMap"/>
  65 + <property name="serviceErrorMap" ref="serviceErrorMap" />
  66 + </bean>
  67 +
  68 +
  69 +</beans>
  1 +200:
  2 + message: "成功"
  3 +
  4 +400:
  5 + message: "不接受此平台"
  6 +
  7 +998:
  8 + message: 操作失败
  9 +
  10 +999:
  11 + message: Service {0} is not available!
  12 +
  13 +1000:
  14 + message: "ID不能为空或者小于等于0"
  1 +# ams code 范围 1100xxxx
  2 +
  3 +11001000:
  4 + message: "succeed"
  5 + gwError: 200:成功
  6 +11001001:
  7 + message: "fail"
  8 + gwError: 500:失败
  9 +11001002:
  10 + message: "smsBo param is not valid"
  11 + gwError: 402:无有效的参数
  12 +11001003:
  13 + message: "account doesn't exists"
  14 + gwError: 201:账号不存在
  15 +11001004:
  16 + message: "account has expired"
  17 + gwError: 201:账号已过期
  18 +11001005:
  19 + message: "account has closed"
  20 + gwError: 201:账号已关闭
  21 +11001006:
  22 + message: "account not authorized"
  23 + gwError: 201:无权登陆此站点
  24 +11001007:
  25 + message: "password not correct"
  26 + gwError: 407:密码错误!
  27 +11001008:
  28 + message: "role doesn't exists or expired or closed"
  29 + gwError: 201:角色不存在、已过期或已关闭
  30 +11001009:
  31 + message: "account has existed"
  32 + gwError: 201:账号已存在
  33 +11001010:
  34 + message: "synchronize ERP profile fail"
  35 + gwError: 501:同步ERP账号失败
  36 +11001011:
  37 + message: "record is not exist"
  38 + gwError: 504:记录不存在
  39 +11001012:
  40 + message: "account has entered black list"
  41 + gwError: 201:黑名单账户无法登录
  42 +11001013:
  43 + message: "no legal account pids"
  44 + gwError: 504:无存在的pids
  1 +# bms code 范围 1000xxxx
  2 +
  3 +10001000:
  4 + message: "succeed"
  5 + gwError: 200:成功
  6 +10001001:
  7 + message: "fail"
  8 + gwError: 500:失败
  9 +10001002:
  10 + message: "smsBo param is not valid"
  11 + gwError: 402:无有效的参数
  12 +10001003:
  13 + message: "account doesn't exists"
  14 + gwError: 201:账号不存在
  15 +10001004:
  16 + message: "account has expired"
  17 + gwError: 201:账号已过期
  18 +10001005:
  19 + message: "account has closed"
  20 + gwError: 201:账号已关闭
  21 +10001006:
  22 + message: "account not authorized"
  23 + gwError: 201:无权登陆此站点
  24 +10001007:
  25 + message: "password not correct"
  26 + gwError: 407:密码错误!
  27 +10001008:
  28 + message: "role doesn't exists or expired or closed"
  29 + gwError: 201:角色不存在、已过期或已关闭
  30 +10001009:
  31 + message: "account has existed"
  32 + gwError: 201:账号已存在
  33 +10001010:
  34 + message: "synchronize ERP profile fail"
  35 + gwError: 501:同步ERP账号失败
  36 +10001011:
  37 + message: "record is not exist"
  38 + gwError: 504:记录不存在
  39 +10001012:
  40 + message: "param is not valid"
  41 + gwError: 402:无有效的参数
  1 +# cs code 范围 2500xxxx
  2 +25001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +25001001:
  6 + message: "fail"
  7 + gwError: 500:"失败"
  8 +25001002:
  9 + message: "service id is null or 0"
  10 + gwError: 1000:"id is null or 0"
  11 +25001003:
  12 + message: "profile_account is not exist"
  13 + gwError: 402:填写的平台端账号不存在!
  14 +25001004:
  15 + message: "profile_account has been bound"
  16 + gwError: 402:填写的平台端账号已经被绑定!
  17 +25001005:
  18 + message: "profile_account has not been bound"
  19 + gwError: 402:填写的平台端账号还没被绑定客服账号!
  20 +25001006:
  21 + message: "customer_service_setting has been exist"
  22 + gwError: 402:插入的客服设置已经存在!
  23 +25001007:
  24 + message: "customer_service_setting is null"
  25 + gwError: 402:客服配置入参为空!
  26 +25001008:
  27 + message: "customer service enterprise setting params is null"
  28 + gwError: 402:客服企业端配置入参为空!
  29 +25001009:
  30 + message: "customer service setting window title is too long"
  31 + gwError: 402:客服配置窗口标题超出长度限制!
  32 +25001010:
  33 + message: "customer service setting pcAdLink is too long"
  34 + gwError: 402:客服配置pc广告位链接超出长度限制!
  35 +25001011:
  36 + message: "customer service setting userQueueTips is too long"
  37 + gwError: 402:客服配置用户队列提示超出长度限制!
  38 +25001012:
  39 + message: "customer service setting receiveTips is too long"
  40 + gwError: 402:客服配置客服接待提示超出长度限制!
  41 +25001013:
  42 + message: "customer service setting offlineTips is too long"
  43 + gwError: 402:客服配置客服离线提示超出长度限制!
  44 +25001014:
  45 + message: "customer service setting breakCountdownTips is too long"
  46 + gwError: 402:客服配置断线倒计时提示超出长度限制!
  47 +25001015:
  48 + message: "customer service setting breakCountdownTime is too long"
  49 + gwError: 402:客服配置断线倒计时时间超出长度限制!
  50 +25001016:
  51 + message: "customer service setting breakTime is too long"
  52 + gwError: 402:客服配置断线时间超出长度限制!
  53 +25001017:
  54 + message: "customer service setting breakTips is too long"
  55 + gwError: 402:客服配置断线提示超出长度限制!
  56 +25001018:
  57 + message: "customer service setting automation params is null"
  58 + gwError: 402:客服机器人端配置入参为空!
  59 +25001019:
  60 + message: "customer service role undefined"
  61 + gwError: 402:未定义的角色!
  62 +25001020:
  63 + message: "customer service setting illegal delete cause this is the last setting of this type"
  64 + gwError: 402:该记录是此类型最后一条设置,不能删除!
  1 +# dashboard code 范围 2000xxxx
  2 +20001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +
  6 +20001001:
  7 + message: "fail"
  8 + gwError: 500:"失败"
  9 +
  10 +20001002:
  11 + message: "service id is null or 0"
  12 + gwError: 1000:"id is null or 0"
  1 +# fms code 范围 3000xxxx
  2 +30001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +30001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +30001002:
  9 + message: "outInStorageBo is null"
  10 + gwError: 402:无有效的出入库记录
  11 +30001003:
  12 + message: "requisitionForm is null"
  13 + gwError: 402:无有效的到货记录
  14 +30001004:
  15 + message: "clauseSettlementBo is null"
  16 + gwError: 402:无有效的结算条款
  17 +30001005:
  18 + message: "agreementClauseBo is null"
  19 + gwError: 402:无有效的合同条款
  20 +30001006:
  21 + message: "baseProduct is null"
  22 + gwError: 402:无有效的基础产品库
  23 +30001007:
  24 + message: "sellType is not sale by proxy"
  25 + gwError: 400:销售类型不是代销
  26 +30001008:
  27 + message: "purchaseDiscount is null"
  28 + gwError: 400:固定折扣时获取折扣值为空
  29 +30001009:
  30 + message: "balance detail insert error"
  31 + gwError: 409:插入对账单明细错误
  32 +30001010:
  33 + message: "finance clearing update error"
  34 + gwError: 410:更新结算数据发生错误
  35 +30001011:
  36 + message: "payinfo insert duplicate key error"
  37 + gwError: 501:支付信息(pay_info)数据已经存在,不能重复插入
  38 +30001012:
  39 + message: "payinfo insert error"
  40 + gwError: 502:支付信息(pay_info)插入失败
  41 +30001013:
  42 + message: "payinfo insert invalid"
  43 + gwError: 503:支付信息(pay_info)插入失败,数据不完整
  44 +30001014:
  45 + message: "user_receivables insert duplicate key error"
  46 + gwError: 504:订单到款信息(user_receivables)数据已经存在,不能重复插入
  47 +30001015:
  48 + message: "user_receivables insert error"
  49 + gwError: 505:订单到款(user_receivables)插入失败
  50 +30001016:
  51 + message: "user_receivables insert invalid"
  52 + gwError: 506:订单到款(user_receivables)插入失败,数据不完整
  53 +30001017:
  54 + message: "user_receivables_split insert duplicate key error"
  55 + gwError: 507:父订单到款(user_receivables_split)数据已经存在,不能重复插入
  56 +30001018:
  57 + message: "user_receivables_split insert error"
  58 + gwError: 508:父订单到款(user_receivables_split)插入失败
  59 +30001019:
  60 + message: "user_receivables_split insert invalid"
  61 + gwError: 509:父订单到款(user_receivables_split)插入失败,数据不完整
  62 +30002000:
  63 + message: "installment_refund_notify insert invalid"
  64 + gwError: 509:退款通知(installment_refund_notify)插入失败
  65 +30002001:
  66 + message: "installment_refund_notify params error"
  67 + gwError: 509:退款通知(installment_refund_notify)参数错误
  68 +30002002:
  69 + message: "InstallmentCrfBillNotify object has existed"
  70 + gwError: 501:订单的打款记录已经存在
  71 +30002003:
  72 + message: "params incorrect"
  73 + gwError: 400:参数不正确
  74 +30002004:
  75 + message: "no installment repay plan record"
  76 + gwError: 510:无还款计划与传入订单编码和分期号对应
  77 +30002006:
  78 + message: "The return amount is greater than the order amount"
  79 + gwError: 511:失败,退款金额超过订单金额
  80 +30002007:
  81 + message: "The current status is not the pending audit"
  82 + gwError: 511:失败,当前状态不是待审核(已提交)
  83 +30002008:
  84 + message: "cost change is not existed"
  85 + gwError: 501:款信息不存在
  86 +30002009:
  87 + message: "cost change has audited"
  88 + gwError: 501:款信息已审核
  89 +30003000:
  90 + message: "no supplier invoice record!"
  91 + gwError: 601:未找到发票信息!
  92 +30003001:
  93 + message: "supplier invoice no enough amount!"
  94 + gwError: 602:发票余额不足!
  95 +30003002:
  96 + message: "no requisition invoice record!"
  97 + gwError: 603:未找到到票信息!
  98 +30003003:
  99 + message: "no requisition invoice list record!"
  100 + gwError: 604:未找到到票详细信息!
  101 +30003004:
  102 + message: "no supplier invoice record!"
  103 + gwError: 605:未找到发票信息!
  104 +30003005:
  105 + message: "ProRequisitionForm's brand and supplier doesn't match with the RequsisitionInvoice's!"
  106 + gwError: 606:供应商|品牌不匹配!
  107 +30003006:
  108 + message: "remain invoice amount of pro_requsition_form is not enough for applying!"
  109 + gwError: 607:请购单到票金额大于未到票余额!
  110 +30003007:
  111 + message: "net remain invoice amount error!"
  112 + gwError: 608:发票不含税金额误差大于0.1!
  113 +30003008:
  114 + message: "no requisition form goods record!"
  115 + gwError: 603:未找到到货单商品信息!
  116 +30003009:
  117 + message: "no pro requisition form goods record!"
  118 + gwError: 603:未找到请购单商品信息!
  119 +30003010:
  120 + message: "supplier invoice exsited, you must submit it before using it!"
  121 + gwError: 603:发票已存在,再次使用之前请提交!
  122 +30003011:
  123 + message: "no pro requisition form record!"
  124 + gwError: 603:未找到请购单记录!
  125 +30003012:
  126 + message: "you can't modify or delete requsition invoice!"
  127 + gwError: 603:到票已提交,不允许修改或者删除!
  128 +30003013:
  129 + message: "no available agreement!"
  130 + gwError: 603:未找到可用的合同!
  131 +30003014:
  132 + message: "no available agreement clauses!"
  133 + gwError: 603:未找到可用的合同条款!
  134 +30003015:
  135 + message: "reason is not empty!"
  136 + gwError: 501:驳回操作,驳回原因不能为空
  137 +30003016:
  138 + message: "requisitionpaymentworkflow is empty!"
  139 + gwError: 501:请款单ID无效,未查询到相应的请款工作流
  140 +30003017:
  141 + message: "no available agreement clauses!"
  142 + gwError: 501:请款单ID无效,未查询到相应的请款单
  143 +30003018:
  144 + message: "creator no permission!"
  145 + gwError: 502:角色ID无效,创建人无审核权限
  146 +30003019:
  147 + message: "current node status not check pending!"
  148 + gwError: 502:角色ID无效,获取到流程节点非待审核状态,可能重复审核或跳级审核!
  149 +30003020:
  150 + message: "pid is invalid!"
  151 + gwError: 503:用户ID无效,与当前流程节点记录的用记ID不匹配!
  152 +30003021:
  153 + message: "role id not found!"
  154 + gwError: 502:角色ID无效,流程节点未匹配到当前角色ID!
  155 +30003022:
  156 + message: "requisitionPayment amount greater than balanceAmount!"
  157 + gwError: 504:请款金额不能大于结余金额!
  158 +30003023:
  159 + message: "audit flag invalid!"
  160 + gwError: 505:审核操作标识无效!
  161 +30003024:
  162 + message: "pid not exist!"
  163 + gwError: 501:用户ID无效,未查询到相应的用户!
  164 +30003025:
  165 + message: "role id not matching pid!"
  166 + gwError: 501:用户ID无效或角色ID无效,用户ID与当前角色ID不匹配!
  1 +# invoice code 范围 1300xxxx
  2 +13001000:
  3 + message: "succeed"
  4 + gwError: 200:成功!
  5 +13001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +13001002:
  9 + message: "mqInvoiceBo parameters invalid"
  10 + gwError: 513:电子发票MQ数据无效
  11 +13001003:
  12 + message: "call server error"
  13 + gwError: 422:服务异常
  14 +13001004:
  15 + message: "order is null"
  16 + gwError: 513:订单不存在
  17 +13001005:
  18 + message: "MQ send failed"
  19 + gwError: 513:发MQ给商城失败
  20 +13001006:
  21 + message: "returned goods have not in storage"
  22 + gwError: 413:仍有退货商品未入库
  23 +13001007:
  24 + message: "red invoice had issued"
  25 + gwError: 513:该订单红票已开过
  26 +13001008:
  27 + message: "returned goods num error"
  28 + gwError: 513:该订单退货商品数大于订单所有商品数
  29 +13001009:
  30 + message: "goodsList is null"
  31 + gwError: 413:goodsList为空
  32 +13001010:
  33 + message: "phone is illegal"
  34 + gwError: 513:手机号不合法
  35 +13001011:
  36 + message: "last blue invoice is null"
  37 + gwError: 513:上一次蓝票的数据不能为空!
  1 +# job code 范围 4000xxxx
  2 +40001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +40001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  1 +# order code 范围 5000xxxx
  2 +50001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +50001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +50001002:
  9 + message: "order of cash on delivery can't update delivery status"
  10 + gwError: 400:货到付款订单不能确认收货
  11 +50001003:
  12 + message: "order can't cancel or had canceled"
  13 + gwError: 400:该订单不能取消或者已经取消
  14 +50001004:
  15 + message: "can't find this order status"
  16 + gwError: 513:找不到该状态码
  17 +50001005:
  18 + message: "can't find this order"
  19 + gwError: 400:没有这个订单
  20 +50001006:
  21 + message: "can't find order code or status"
  22 + gwError: 513:订单号或状态为空
  23 +50001007:
  24 + message: "orderBo parameters invalid"
  25 + gwError: 513:订单到款数据无效
  26 +50001008:
  27 + message: "get parent order failed"
  28 + gwError: 404:获取父订单信息失败
  29 +50001009:
  30 + message: "no parent order"
  31 + gwError: 405:没有这个父订单
  32 +50001010:
  33 + message: "order compare amount with last order amount failed"
  34 + gwError: 406:订单支付金额和应付金额对比时出错
  35 +50001011:
  36 + message: "order update parent payment failed"
  37 + gwError: 407:更新父订单支付数据失败
  38 +50001012:
  39 + message: "update subOrders payinfo by parentOrderCode failed"
  40 + gwError: 408:根据父订单号修改子订单的支付信息失败
  41 +50001013:
  42 + message: "orderCode is not valid"
  43 + gwError: 409:orderCode不合法!
  44 +50001014:
  45 + message: "order is null or orderType is not valid"
  46 + gwError: 410:order不存在或orderType不合法!
  47 +50001120:
  48 + message: "param invalid"
  49 + gwError: 411:缺少字段或字段不合法
  50 +50001130:
  51 + message: "server error"
  52 + gwError: 510:Server异常
  53 +50001140:
  54 + message: "call server error"
  55 + gwError: 600:服务异常
  56 +50001219:
  57 + message: "parent order not exists"
  58 + gwError: 601:父订单不存在
  59 +50001150:
  60 + message: "data error"
  61 + gwError: 700:数据错误
  62 +50001201:
  63 + message: "validate success"
  64 + gwError: 202:验证成功
  65 +50001211:
  66 + message: "change source order not operate"
  67 + gwError: 211:换货订单不处理
  68 +50001212:
  69 + message: "last order amount invalid"
  70 + gwError: 411:实付订单金额无效
  71 +50001213:
  72 + message: "order param invalid"
  73 + gwError: 412:订单参数无效
  74 +50001214:
  75 + message: "orderCode invalid"
  76 + gwError: 420:订单号不正确,不存在此订单
  77 +50001215:
  78 + message: "set payment state faild"
  79 + gwError: 511设置支付状态失败
  80 +50001216:
  81 + message: "order already exists"
  82 + gwError: 711:此订单已存在
  83 +50001217:
  84 + message: "order not exists"
  85 + gwError: 712:此订单不存在
  86 +50001218:
  87 + message: "parent order already exists"
  88 + gwError: 713:父订单已存在
  89 +50001220:
  90 + message: "channels order already exists"
  91 + gwError: 715:此渠道订单已存在
  92 +50001221:
  93 + message: "parent order not payment"
  94 + gwError: 602:未接收到父订单到款数据,延迟处理子订单
  95 +50001222:
  96 + message: "child order goods invalid"
  97 + gwError: 717:子订单商品和父订单商品数据不一致
  98 +50001223:
  99 + message: "insert order coupons error"
  100 + gwError: 718:插入订单优惠券信息失败
  101 +50001224:
  102 + message: "insert order splitInfo error"
  103 + gwError: 719:插入订单拆单信息失败
  104 +50001225:
  105 + message: "insert parent orders error"
  106 + gwError: 720:插入父订单错误
  107 +50001226:
  108 + message: "insert orders error"
  109 + gwError: 721:订单入库错误
  110 +50001227:
  111 + message: "insert orders goods promo error"
  112 + gwError: 718:插入订单促销信息错误
  113 +50001228:
  114 + message: "this order has existed,and it is parent"
  115 + gwError: 722:该订单号已作为父订单号在订单表中存在
  116 +50001229:
  117 + message: "insert order goods error"
  118 + gwError: 723:插入订单商品失败
  119 +50001230:
  120 + message: "create order faild"
  121 + gwError: 511:创建订单失败
  122 +50001231:
  123 + message: "order goods is null"
  124 + gwError: 421:订单商品不能为空
  125 +50001232:
  126 + message: "insert UserReceivables error, invalidate bo"
  127 + gwError: 724:到款数据不完整,保存失败
  128 +50001233:
  129 + message: "insert UserReceivables error, invalidate bo"
  130 + gwError: 725:到款拆分数据不完整,保存失败
  131 +50001234:
  132 + message: "insert UserPayment error"
  133 + gwError: 726:取消订单,插入退款失败
  134 +50001235:
  135 + message: "cancel order failed"
  136 + gwError: 727:取消订单失败
  137 +50001236:
  138 + message: "cancel order refund failed"
  139 + gwError: 728:取消订单退款失败
  140 +50001237:
  141 + message: "invalid return order goods number"
  142 + gwError: 729:退货商品数量错误
  143 +50001238:
  144 + message: "calculate refund money failed"
  145 + gwError: 730:计算退款数据失败,可能是该商品已退,无法匹配退货商品
  146 +50001239:
  147 + message: "cannot match refund goods"
  148 + gwError: 731:该商品已退,无法匹配退货商品
  149 +50001240:
  150 + message: "insert pay_info failed"
  151 + gwError: 401:插入支付信息失败
  152 +50001241:
  153 + message: "insert user_receivables failed"
  154 + gwError: 402:插入用户到款信息失败
  155 +50001242:
  156 + message: "insert user_receivables_split failed"
  157 + gwError: 403:插入父订单用户到款信息失败
  158 +50001243:
  159 + message: "this is a cheat order"
  160 + gwError: 601:作弊订单
  161 +50001244:
  162 + message: "order status error"
  163 + gwError: 601:订单状态信息异常,不能插入到款信息
  164 +50001245:
  165 + message: "call server error"
  166 + gwError: 422:服务异常
  167 +50001246:
  168 + message: "insert order invoice service error"
  169 + gwError: 732:订单发票信息插入失败
  170 +50001247:
  171 + message: "order insert duplicate key error"
  172 + gwError: 501:订单相关数据已经存在,不能重复插入
  173 +50001248:
  174 + message: "instalment return order insert UserPayment error"
  175 + gwError: 736:退货,插入退款失败
  176 +50001249:
  177 + message: "instalment return CRF response is null"
  178 + gwError: 737:退货,信而富返回为空
  179 +50001250:
  180 + message: "instalment has been returned"
  181 + gwError: 738:已经成功退货
  182 +50001251:
  183 + message: "InstallmentRates is null"
  184 + gwError: 739:查询不到订单分期费率
  185 +50001252:
  186 + message: "Installment cancel order can't find"
  187 + gwError: 605:查不到此分期订单
  188 +50001253:
  189 + message: "instalment cancel CRF response is wrong"
  190 + gwError: 606:取消订单调用信而富接口返回结果不正确,请检查调用日志!
  191 +50001254:
  192 + message: "insert installment_rates error"
  193 + gwError: 514:插入分期利率数据失败
  194 +50001255:
  195 + message: "insert installment_repay_plan error"
  196 + gwError: 515:插入分期还款数据失败
  197 +50001256:
  198 + message: "installment_order_cancel successful!"
  199 + gwError: 200:分期订单取消操作成功!
  200 +50001257:
  201 + message: "installment_order_cancel failed!"
  202 + gwError: 601:分期订单取消操作失败!
  203 +50001258:
  204 + message: "invalid status code!"
  205 + gwError: 501:无效的订单状态码!
  206 +50001259:
  207 + message: "update order address invalid order code!"
  208 + gwError: 602:修改订单地址ordercode有误,未匹配到记录!
  209 +50001260:
  210 + message: "update order address invalid order status!"
  211 + gwError: 503:订单状态未匹配,无需修改订单地址信息!
  212 +50001261:
  213 + message: "update order address invalid order code!"
  214 + gwError: 200:更新订单地址信息完成!
  215 +50001262:
  216 + message: "save check_account_info fail!"
  217 + gwError: 500:保存对账信息失败!
  218 +50001263:
  219 + message: "stock error!"
  220 + gwError: 501:库存不足!
  221 +50001264:
  222 + message: "order type error!"
  223 + gwError: 502:订单类型错误!
  224 +50001265:
  225 + message: "You can not delete the user requested Return Goods!"
  226 + gwError: 602:该退货申请不是客服发起的,不能删除!
  227 +50001266:
  228 + message: "All the goods of the order already returned or exchanged.!"
  229 + gwError: 603:该订单所有商品已退货或已换货!
  230 +50001267:
  231 + message: "This refuse reason already used. You cannot delete it!"
  232 + gwError: 605:该拒绝原因已使用,不能删除!
  233 +50001268:
  234 + message: "update order status by sku can not match any order!"
  235 + gwError: 721:通过SKU未匹配到订单信息,无法更新订单状态!
  236 +50001269:
  237 + message: "emar user empty!"
  238 + gwError: 501:无此用户记录!
  239 +50001270:
  240 + message: "emar user key error!"
  241 + gwError: 502:用户key错误!
  242 +50001271:
  243 + message: "can't find compaignId or feedback!"
  244 + gwError: 503:compaignId|feedback缺失!
  245 +50001272:
  246 + message: "can't find any orders!"
  247 + gwError: 504:找不到任何订单!
  248 +50001273:
  249 + message: "property of order is lost !"
  250 + gwError: 505:属性缺失!
  251 +50001276:
  252 + message: "This goods cannot be returned or exchanged. For more information, you can contact the customer service!"
  253 + gwError: 606:该商品非质量问题不支持退换货,如有疑问,请联系在线客服。
  254 +50001277:
  255 + message: "can't find this order"
  256 + gwError: 600:没有这个订单
  257 +50001278:
  258 + message: "can't find mark order"
  259 + gwError: 600:sku记录太多,请分多次处理
  1 +# pop code 范围 6000xxxx
  2 +60001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +60001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +60001002:
  9 + message: "invalid factory code"
  10 + gwError: 401:厂家编号无效
  11 +60001003:
  12 + message: "empty jit sku"
  13 + gwError: 402:无有效的JIT商品
  14 +60001004:
  15 + message: "empty purchase"
  16 + gwError: 401:未查询到采购单
  17 +60001005:
  18 + message: "empty purchase goods"
  19 + gwError: 402:未查询到采购单商品
  20 +60001006:
  21 + message: "empty brandid"
  22 + gwError: 401:未查询到对应的品牌ID
  23 +60001007:
  24 + message: "invalid brandname"
  25 + gwError: 402:无效的品牌名称
  26 +60001008:
  27 + message: "no out storage record between the time"
  28 + gwError: 407:在传入时间段内无出入库记录
  29 +60001009:
  30 + message: "no requisition form for the vendor"
  31 + gwError: 407:无到货单记录
  32 +60001010:
  33 + message: "no pro requisition form by condition"
  34 + gwError: 408:没有传入的采购单记录
  35 +60001011:
  36 + message: "input factory code don't associate with sku"
  37 + gwError: 409:传入的厂家编号无效
  38 +60001012:
  39 + message: "no pro requisition form goods"
  40 + gwError: 409:请购单下无商品记录
  41 +60001013:
  42 + message: "process saveDefectivenessRequisitionForm has exception"
  43 + gwError: 500:残次品入库异常
  44 +60001014:
  45 + message: "curretn supplier has no sale goods"
  46 + gwError: 201:无上架的商品
  47 +60001015:
  48 + message: "abnormal inventory data"
  49 + gwError: 501:库存数据异常
  50 +60001016:
  51 + message: "abnormal sku data"
  52 + gwError: 502:SkU数据异常
  53 +60001017:
  54 + message: "parameters illegal"
  55 + gwError: 201:参数错误
  56 +60001018:
  57 + message: "no pro requisition form"
  58 + gwError: 504:请购单不存在
  59 +60001019:
  60 + message: "pro requisition form has commited"
  61 + gwError: 501:请购单已提交
  62 +60001020:
  63 + message: "main pro requisition form has not commited"
  64 + gwError: 501:主请购单未提交
  65 +60001021:
  66 + message: "supply pro requisition form can't do this operation"
  67 + gwError: 501:补充请购单不能进行此操作
  68 +60001022:
  69 + message: "requisition form audit status error"
  70 + gwError: 501:当前状态不允许操作到货单
  71 +60001023:
  72 + message: "no goods"
  73 + gwError: 409:无商品或未设置商品数量
  74 +60001024:
  75 + message: "requisition form status is incorrect"
  76 + gwError: 501:到货单状态不允许进行款操作
  77 +60001025:
  78 + message: "pro requisition form is not commited or finished"
  79 + gwError: 501:请购单未提交或已完成
  80 +60001026:
  81 + message: "some supply pro_requisition_form is't committed"
  82 + gwError: 501:存在未提交的补充请购单
  83 +60001027:
  84 + message: "import nums can't greater than 1000"
  85 + gwError: 501:一次最多导入1000条
  86 +60001028:
  87 + message: "sell type doesn't belong to disitribution!"
  88 + gwError: 501:业务类型非经销!
  89 +60001029:
  90 + message: "sync vitual storage error!"
  91 + gwError: 库存同步失败
  92 +60001030:
  93 + message: "pro requisition form has finished"
  94 + gwError: 501:请购单已完成
  95 +60001031:
  96 + message: "duplicate key of express"
  97 + gwError: 500:存在已导入过的物流信息,导入失败!
  98 +60001032:
  99 + message: "invoke service error"
  100 + gwError: 501:调用获取已付款金额服务出错
  101 +60001033:
  102 + message: "invoke service error"
  103 + gwError: 501:调用写入结余微服务异常
  1 +# Printer code 范围 1301xxxx
  2 +13010000:
  3 + message: "request print content is empty"
  4 + gwError: 410:请求打印的内容为空!
  5 +13010001:
  6 + message: "request print printerNo is empty"
  7 + gwError: 415:制定的打印机编码为空!
  8 +13010002:
  9 + message: "request print printerNo is invalid"
  10 + gwError: 420:请求的打印机编码错误!
  1 +# stock code 范围 7000xxxx
  2 +70001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +70001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +70001002:
  9 + message: "order code is empty"
  10 + gwError: 501:订单号不能为空
  11 +70001003:
  12 + message: "channel code is empty"
  13 + gwError: 501:渠道号不能为空
  14 +70001004:
  15 + message: "channel code not in map."
  16 + gwError: 501:渠道号不在渠道列表中
  17 +70001005:
  18 + message: "shift log Not Product SKU."
  19 + gwError: 501:货位转移中没有此SKU
  20 +70001006:
  21 + message: "stock change, sku or skc or skn is null."
  22 + gwError: 501:库存变更,SKU、SKN、SKC不能为空
  23 +70001007:
  24 + message: "productSku is null."
  25 + gwError: 501:库存占用及解锁,productSku不能为空
  26 +70001008:
  27 + message: "shopId is null."
  28 + gwError: 501:本地库存占用及解锁,shopId不能为空
  29 +70001009:
  30 + message: "shoppingKey is null."
  31 + gwError: 501:库存占用及解锁,shoppingKey不能为空
  32 +70001010:
  33 + message: "stock num is null."
  34 + gwError: 501:库存占用及解锁,num不能为空
  35 +70001011:
  36 + message: "cannot get any orders by this code"
  37 + gwError: 401:传入订单号未匹配到任何订单
  38 +70001012:
  39 + message: "changeCause is not correct!"
  40 + gwError: 501:同步库存,changeCause不存在!
  41 +70001013:
  42 + message: "storehouseId is null or wrong."
  43 + gwError: 401:仓库ID为空或不存在
  44 +70001014:
  45 + message: "irregular parameters."
  46 + gwError: 401:传入参数不符合业务规则
  47 +70001015:
  48 + message: "invalid seat code."
  49 + gwError: 401:传入的货位号无效
  1 +# ticket code 范围 1200xxxx
  2 +12001000:
  3 + message: "succeed"
  4 + gwError: 200:验票成功!
  5 +12001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +12001002:
  9 + message: "Request params error"
  10 + gwError: 601:参数错误!
  11 +12001003:
  12 + message: "Ticket has been used!"
  13 + gwError: 602:门票已验过!
  14 +12001004:
  15 + message: "Ticket's show is unfindable! "
  16 + gwError: 603:门票场次错误!
  17 +12001005:
  18 + message: "Ticket invalidate!"
  19 + gwError: 604:非YO'HOOD门票!
  20 +12001006:
  21 + message: "Fail to update!"
  22 + gwError: 510:更新失败!
  23 +12001007:
  24 + message: "Ticket type error!"
  25 + gwError: 603:门票类型错误!
  1 +# webService code 范围 9000xxxx
  2 +90001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +90001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +90001002:
  9 + message: "fail"
  10 + gwError: 400:参数无效
  11 +90001003:
  12 + message: "fail"
  13 + gwError: 503:服务不可用
  1 +# wms code 范围 8000xxxx
  2 +80001000:
  3 + message: "succeed"
  4 + gwError: 200:成功
  5 +80001001:
  6 + message: "fail"
  7 + gwError: 500:失败
  8 +80001002:
  9 + message: "Request params error"
  10 + gwError: 401:参数错误!
  11 +80001003:
  12 + message: "Original sku doesn't exist."
  13 + gwError: 401:原sku错误!
  14 +80001004:
  15 + message: "Skc doesn't exist, searching by original sku "
  16 + gwError: 401:原sku错误,没有查询到对应的skc
  17 +80001005:
  18 + message: "Skn doesn't exist, searching by original sku"
  19 + gwError: 401:原sku错误,没有查询到对应的skn
  20 +80001006:
  21 + message: "Request params error, sku|skn|skc doesn't exist."
  22 + gwError: 401:参数错误,没有查询到对应的sku|skn|skc
  23 +80001007:
  24 + message: "excute outStock action failure"
  25 + gwError: 500:执行出库操作失败
  26 +80001008:
  27 + message: "excute update inStock num action failure"
  28 + gwError: 500:执行更新新入库库存数量操作失败
  29 +80001009:
  30 + message: "excute build instorage order action failure"
  31 + gwError: 500:生成入库单失败
  32 +80001010:
  33 + message: "seatCodeString is not imperfect"
  34 + gwError: 500:不是残次货位
  35 +80001011:
  36 + message: "Original sku is imperfect"
  37 + gwError: 500:原SKU不能为残次品
  38 +80001012:
  39 + message: "Storage not enough"
  40 + gwError: 500:库存不足
  41 +80001013:
  42 + message: "increment offline sn returned error."
  43 + gwError: 500:获取线下店调拨单流水号失败
  44 +80001014:
  45 + message: "no approval goods"
  46 + gwError: 402:无待审核、暂停的商品
  47 +80001015:
  48 + message: "submitted allocation"
  49 + gwError: 500:已经被提交过的调拨单
  50 +80001016:
  51 + message: "no allocation record"
  52 + gwError: 500:没有与传入ID匹配的调拨单
  53 +80001017:
  54 + message: "can not delete auditing allocation"
  55 + gwError: 500:调拨单已进入审核流程,不能再进行此操作
  56 +80001018:
  57 + message: "offshopId is not exist"
  58 + gwError: 402:线下店仓库id不存在
  59 +80001019:
  60 + message: "no goods store can be moved"
  61 + gwError: 405:无可转移的库存
  62 +80001020:
  63 + message: "remained goods store is not enough"
  64 + gwError: 406:剩余库存不足
  65 +80001021:
  66 + message: "get offline instore product error"
  67 + gwError: 500:获取线下店可卖的上架商品失败
  68 +80001022:
  69 + message: "get product stock num error"
  70 + gwError: 500:获取商品库存信息失败
  71 +80001023:
  72 + message: "seat shift parameters error:storehouseId[int]|createBy[int]|goods[List]|outSeatCodeString[null or 01-01-100-01-0001(is must when opType=1,2,3,4)]|opType[1~7]|inSeatCodeString[01-01-100-01-0001]"
  73 + gwError: 401:货位转移入参错误
  74 +80001024:
  75 + message: "get store sale product error"
  76 + gwError: 500:获取商品在门店的可卖状态失败
  77 +80001025:
  78 + message: "sku is not found in picking order"
  79 + gwError: 402:商品未在拣货单中找到
  80 +80001026:
  81 + message: "no goods is found in picking order"
  82 + gwError: 500:捡货单中无商品
  83 +80001027:
  84 + message: "seatCodeString is not existed"
  85 + gwError: 500:货位不存在
  86 +80001028:
  87 + message: "seatCodeString property is not correct"
  88 + gwError: 405:货位属性不正确,不允许调拨
  89 +80001029:
  90 + message: "allocation empty"
  91 + gwError: 401:未查询到需调拨的商品信息
  92 +80001030:
  93 + message: "illegal outStorage type"
  94 + gwError: 402:非法的出库单类型
  95 +80001031:
  96 + message: "query goods by nj has error"
  97 + gwError: 403:调用南京接口获取商品信息失败
  98 +80001032:
  99 + message: "query goods by nj has exception"
  100 + gwError: 501:调用南京查询货架商品,获取异常
  101 +80001033:
  102 + message: "query allocation param is empty"
  103 + gwError: 406:[库房ID]或[出库单类型]不能为空
  104 +80001034:
  105 + message: "query allocation goods param is empty"
  106 + gwError: 407:[拨单ID]或[出库单类型]不能为空
  107 +80001035:
  108 + message: "query shelf goods param is empty"
  109 + gwError: 408:[调拨单ID]或[出库单类型]或[货架编码]不能为空
  110 +80001036:
  111 + message: "create defect allocation param error"
  112 + gwError: 406:创建残次调拨单传入参数错误
  113 +80001037:
  114 + message: "query inStoreHouseId param is empty"
  115 + gwError: 406:[入库门店id]不能为空
  116 +80001038:
  117 + message: "excute build instoreorder action seatshift failure "
  118 + gwError: 500:生成入库单时货位转移失败
  119 +80001039:
  120 + message: "excute build instoreorder action failure "
  121 + gwError: 500:生成入库单保存入库信息失败
  122 +80001040:
  123 + message: "update occupation status error!"
  124 + gwError: 406:货位转移完成更新订单状态时发生异常
  125 +80001041:
  126 + message: "create storeorderlog param error"
  127 + gwError: 406:[操作类型]不在指定范围
  128 +80001042:
  129 + message: "no need to update goods"
  130 + gwError: 406:没有商品信息需要更新
  131 +80001043:
  132 + message: "no allocation by pickingid"
  133 + gwError: 406:通过捡货单id未找到调拨单信息
  134 +80001044:
  135 + message: "fail to virtually out in storage"
  136 + gwError: 500:虚拟出入库失败!
  137 +80001045:
  138 + message: "virtual purchase form not exist"
  139 + gwError: 406:虚拟请购单不存在!
  140 +80001046:
  141 + message: "virtual out in storage status error"
  142 + gwError: 407:虚拟出入库状态错误!
  143 +80001047:
  144 + message: "virtual out in storage can't find any goods"
  145 + gwError: 408:虚拟请购单下无商品信息!
  146 +80001048:
  147 + message: "virtual out in storage can't find any shiftlogs"
  148 + gwError: 409:货位转移异常,无有效货架!
  149 +80001049:
  150 + message: "allocation goods already exist"
  151 + gwError: 400:调拨商品已存在
  152 +80001050:
  153 + message: "total allocation has been closed,can't audit"
  154 + gwError: 405:总调拨单已被关闭,不允许审核
  155 +80001051:
  156 + message: "purchase form not exist"
  157 + gwError: 406:请购单不存在!
  158 +80001052:
  159 + message: "allocation goods isn't exist"
  160 + gwError: 400:该调拨单中不存在此商品信息
  161 +80001053:
  162 + message: "virtual out in storage can't find any goods"
  163 + gwError: 408:虚拟出库请购单下无商品信息!
  164 +80001054:
  165 + message: "virtual out in storage can't find any shiftlogs"
  166 + gwError: 409:虚拟出库货位转移异常,找不到货位!
  167 +80001055:
  168 + message: "purchase form not exist"
  169 + gwError: 406:虚拟出库请购单不存在!
  170 +80001056:
  171 + message: "sku has been locked by other people."
  172 + gwError: 450:当前商品已被锁定,您无法操作!
  173 +80001057:
  174 + message: "allocation don't has any goods"
  175 + gwError: 400:调拨单中不存在任何商品,无法提交
  176 +80001058:
  177 + message: "defect picking param not is null"
  178 + gwError: 400:残次捡货的参数不能为空
  179 +80001059:
  180 + message: "defect picking param houseId not is null"
  181 + gwError: 400:残次捡货的参数中的仓库id不能为空
  182 +80001060:
  183 + message: "defect picking param createby not is null"
  184 + gwError: 400:残次捡货的参数中的创建者不能为空
  185 +80001061:
  186 + message: "defect picking param destShelfCode not is null"
  187 + gwError: 400:残次捡货的参数中的目标货架不能为空
  188 +80001062:
  189 + message: "defect picking param goodslist not is empty"
  190 + gwError: 400:残次捡货的参数中的残次商品列表不能为空
  191 +80001063:
  192 + message: "defect picking param goodslist goodssku not is null"
  193 + gwError: 400:残次捡货的参数中的残次商品列表中的商品SKU不能为空
  194 +80001064:
  195 + message: "defect picking param goodslist num not less 0"
  196 + gwError: 400:残次捡货的参数中的残次商品列表中的商品数量错误,必须大于0
  197 +80001065:
  198 + message: "defect picking param goodslist sourseShelfCode not is null"
  199 + gwError: 400:残次捡货的参数中的残次商品列表中的商品源货架不能为空
  200 +80001066:
  201 + message: "defect picking param goodslist defectSourse not is null"
  202 + gwError: 400:残次捡货的参数中的残次商品列表中的商品的残次原因不能为空
  203 +80001067:
  204 + message: "create defect allocation param not is null"
  205 + gwError: 400:创建残次调拨单的参数不能为空
  206 +80001068:
  207 + message: "create defect allocation param createby not is null"
  208 + gwError: 400:创建残次调拨单的参数中的创建者不能为空
  209 +80001069:
  210 + message: "create defect allocation param shelfcode not is null"
  211 + gwError: 400:创建残次调拨单的参数中的货架号不能为空
  212 +80001070:
  213 + message: "create defect allocation param houseId not is null"
  214 + gwError: 400:创建残次调拨单的参数中的门店仓id不能为空
  215 +80001071:
  216 + message: "create defect allocation param source not is null"
  217 + gwError: 400:创建残次调拨单的参数中的来源不能为空
  218 +80001072:
  219 + message: "create defect allocation param list not is empty"
  220 + gwError: 400:创建残次调拨单的参数中的商品列表不能为空
  221 +80001073:
  222 + message: "create defect allocation param list sku not is null"
  223 + gwError: 400:创建残次调拨单的参数中的商品列表中的商品SKU不能为空
  224 +80001074:
  225 + message: "confirm outstore param not is null"
  226 + gwError: 400:确认出库参数不能为空
  227 +80001075:
  228 + message: "confirm outstore param allocation id and code not is null"
  229 + gwError: 400:确认出库参数中的调拨单id和code不能都为空
  230 +80001076:
  231 + message: "confirm outstore param createby not is null"
  232 + gwError: 400:确认出库参数中的创建人不能为空
  233 +80001077:
  234 + message: "confirm outstore param pickingOrdersId not is null"
  235 + gwError: 400:确认出库参数中的捡货单id不能为空
  236 +80001078:
  237 + message: "confirm outstore param storeId not is null"
  238 + gwError: 400:确认出库参数中的仓库id不能为空
  239 +80001079:
  240 + message: "confirm outstore param type not is null"
  241 + gwError: 400:确认出库参数中的类型不能为空
  242 +80001080:
  243 + message: "confirm outstore param sourceShelfCode not is null"
  244 + gwError: 400:确认出库参数中的源货架不能为空
  245 +80001081:
  246 + message: "confirm outstore param destShelfCode not is null"
  247 + gwError: 400:确认出库参数中的目标货架不能为空
  248 +80001082:
  249 + message: "confirm outstore param outboxList not is null"
  250 + gwError: 400:确认出库参数中的外箱信息列表不能为空
  251 +80001083:
  252 + message: "confirm outstore param outBoxCode not is null"
  253 + gwError: 400:确认出库参数中的外箱编码不能为空
  254 +80001084:
  255 + message: "confirm outstore param goodList not is null"
  256 + gwError: 400:确认出库参数中的外箱商品信息列表不能为空
  257 +80001085:
  258 + message: "confirm outstore param brandId not is null"
  259 + gwError: 400:确认出库参数中的品牌id不能为空
  260 +80001086:
  261 + message: "confirm outstore param goods num less 0"
  262 + gwError: 400:确认出库参数中的商品数错误,必须大于0
  263 +80001087:
  264 + message: "confirm outstore param goods skc not is null"
  265 + gwError: 400:确认出库参数中的商品SKC不能为空
  266 +80001088:
  267 + message: "confirm outstore param goods skn not is null"
  268 + gwError: 400:确认出库参数中的商品SKN不能为空
  269 +80001089:
  270 + message: "confirm outstore param goods sku not is null"
  271 + gwError: 400:确认出库参数中的商品SKU不能为空
  272 +80001090:
  273 + message: "create defect allocation param list num not less 0"
  274 + gwError: 400:创建残次调拨单的参数中的商品列表中的商品数错误,必须大于0
  275 +80001091:
  276 + message: "query outstore order detail param inStoreOrderId not is null"
  277 + gwError: 400:查询出库单详情出库单号不能为空
  278 +80001092:
  279 + message: "query instore order detail param outStoreOrderId not is null"
  280 + gwError: 400:查询入库单详情入库单号不能为空
  281 +80001093:
  282 + message: "outstore order is not existed"
  283 + gwError: 500:出库单不存在
  284 +80001094:
  285 + message: "instore order is not existed"
  286 + gwError: 500:入库单不存在
  287 +80001095:
  288 + message: "confirm outstore param goods num not less 0"
  289 + gwError: 400:确认出库参数中的商品数错误,必须大于0
  290 +80001096:
  291 + message: "pickingOrders is not existed"
  292 + gwError: 404:拣货单不存在
  293 +80001097:
  294 + message: "pickingOrders has finished or has outed"
  295 + gwError: 402:拣货单已完成拣货或者已经出库
  296 +80001098:
  297 + message: "pickingNum can't greater than allocationNum"
  298 + gwError: 402:拣货数量不能大于应拣数量
  299 +80001099:
  300 + message: "follow gifts create batch no error!"
  301 + gwError: 500:随机赠品创建批次号发生错误
  302 +80001100:
  303 + message: "picking order is emtpy"
  304 + gwError: 402:捡货单生成失败,返回结果为空
  305 +80001101:
  306 + message: "follow gifts update status error"
  307 + gwError: 402:随机赠品状态不能被操作
  308 +80001102:
  309 + message: "seatCodeString's storehouseId is not equals storehouseId"
  310 + gwError: 402:货位对应的仓库id与当前仓库id不相同
  311 +80001103:
  312 + message: "The outStoreOrder has been completed "
  313 + gwError: 405:此出库单已经完成入库,不能进行再入库
  314 +80001104:
  315 + message: "Query NJ interface process shift shelf error"
  316 + gwError: 405:线下店出入库调用南京接口进行货架转移时出错
  317 +80001105:
  318 + message: "The allocation has finished or has outed"
  319 + gwError: 405:调拨单已完成拣货或者已经出库
  320 +80001106:
  321 + message: "The pickingId is not null"
  322 + gwError: 401:拣货单id不能为空
  323 +80001107:
  324 + message: "The allocationId is not null"
  325 + gwError: 402:调拨id不能为空
  326 +80001108:
  327 + message: "OutStoreNum greater than allocationNum"
  328 + gwError: 402:出库数量不能大于调拨数量
  329 +80001109:
  330 + message: "OutStoreNum greater than pickingNum"
  331 + gwError: 402:出库数量不能大于拣货数量
  332 +80001110:
  333 + message: "InStoreNum greater than OutStoreNum"
  334 + gwError: 402:入库数量不能大于出库数量
  335 +80001111:
  336 + message: "query goods by shelfCode is empty"
  337 + gwError: 406:残次货架编号无效,未查询到对应的已拣商品
  338 +80001112:
  339 + message: "invalid type of offline allocation"
  340 + gwError: 400:传入线下店调拨单类型无效
  341 +80001113:
  342 + message: "Query NJ interface process query goods error"
  343 + gwError: 405:调用南京接口获取上架的并且线下店可卖商品查询为空
  344 +80001114:
  345 + message: "Query NJ interface process shelfCode to seatCode error"
  346 + gwError: 405:调用南京接口货架转货位出错
  347 +80001115:
  348 + message: "Query stock:erp_stock.getStock interface process error"
  349 + gwError: 405:根据仓库id和商品sku查本地仓库库存数结果为空
  350 +80001116:
  351 + message: "Call NJ interface process updateProductReplenishSwitches error"
  352 + gwError: 405:调用南京接口关闭自动补货开关失败
  353 +80001117:
  354 + message: "No goods would be shift"
  355 + gwError: 201:无需要进行货位转移的商品
  356 +80001118:
  357 + message: "call NJ interface from audited allocation goods failure"
  358 + gwError: 405:调用南京同步审核通过商品的接口失败
  359 +80001119:
  360 + message: "allocation-num[%d] must <greater than> zero."
  361 + gwError: 400:调拨数量应该大于零
  362 +80001120:
  363 + message: "allocation-num[%d] must <less than or equal to> stock-num[%d]"
  364 + gwError: 400:调拨数量应该小于或等于库存数量
  365 +80001121:
  366 + message: "goods[skn:%d] is not salable for shop[storehouse:%d]"
  367 + gwError: 400:商品在门店不可卖或未上架
  368 +80001122:
  369 + message: "confirm outstore param outBoxCode is same"
  370 + gwError: 400:确认出库参数中的外箱编码不能有相同值
  371 +80001123:
  372 + message: "brand is not binding shelf"
  373 + gwError: 400:商品对应的品牌未绑定货架
  374 +80001124:
  375 + message: "no brand auth"
  376 + gwError: 400:无品牌操作权限
  377 +80001125:
  378 + message: "no new pick goods"
  379 + gwError: 411:拣货日志及上一次调拨单未查询到任何商品
  380 +80001126:
  381 + message: "scan shelf code error"
  382 + gwError: 410:请扫描调拨返仓货架
  383 +80001127:
  384 + message: "scan shelf code error"
  385 + gwError: 410:请扫描销售返仓货架
  1 +100200300:
  2 + message: "user %s not find"
  3 +
  4 +100200301:
  5 + message: "user is not validate"
  1 +200:
  2 + message: "成功"
  3 +
  4 +500:
  5 + message: "不接受此平台"
  6 +
  7 +501:
  8 + message: "Open ID Is Null."
  9 +
  10 +502:
  11 + message: "Source Type Is Null or is error."
  12 +
  13 +503:
  14 + message: "登录失败"
  15 +
  16 +412:
  17 + message: "%s"
  18 +
  19 +
  20 +
  21 +
  22 +
  23 +201:
  24 + message: "未绑定"
  25 +
  26 +421:
  27 + message: "账号不能为空."
  28 +
  29 +422:
  30 + message: "密码不能为空."
  31 +
  32 +423:
  33 + message: "密码不符合规则."
  34 +
  35 +425:
  36 + message: "发送失败"
  37 +
  38 +400:
  39 + message: "请输入手机号"
  40 +
  41 +402:
  42 + message: "手机号码格式错误"
  43 +
  44 +401:
  45 + message: "不存在的第三方"
  46 +
  47 +403:
  48 + message: "绑定失败,该帐号已经注册过,请更换"
  49 +
  50 +411:
  51 + message: "更新手机号失败"
  52 +
  53 +420:
  54 + message: "更新密码失败"
  55 +
  56 +413:
  57 + message: "请输入密码"
  58 +
  59 +424:
  60 + message: "绑定失败"
  61 +
  62 +414:
  63 + message: "注册失败"
  64 +
  65 +
  66 +10001:
  67 + message: "账户必须是手机号或者邮箱"
  68 +
  69 +10012:
  70 + message: "用户名或者密码错误"
  71 +
  72 +10010:
  73 + message: "用户名或者密码错误"
  74 +
  75 +404:
  76 + message: "该手机号已经绑定过账号,请更换手机号码!"
  77 +
  78 +
  79 +450:
  80 + message: "请使用第三方登录"
  81 +
  82 +451:
  83 + message: "请选择登录方式"
  84 +
  85 +452:
  86 + message: "要修改的地址ID不正确."
  87 +
  88 +453:
  89 + message: "用户ID不正确."
  90 +
  91 +454:
  92 + message: "收货人姓名不正确."
  93 +
  94 +455:
  95 + message: "请填写详细地址."
  96 +
  97 +456:
  98 + message: "省市必须选择."
  99 +
  100 +457:
  101 + message: "手机或者电话必须填写一个."
  102 +
  103 +458:
  104 + message: "添加失败."
  105 +
  106 +459:
  107 + message: "要修改的地址ID或者用户ID为空."
  108 +
  109 +460:
  110 + message: "删除失败."
  111 +
  112 +461:
  113 + message: "id 不存在!"
  114 +
  115 +462:
  116 + message: "设置失败!"
  117 +
  118 +463:
  119 + message: "请输入验证码!"
  120 +
  121 +464:
  122 + message: "修改手机号失败!"
  123 +
  124 +465:
  125 + message: "手机号码错误"
  126 +
  127 +601:
  128 + message: "获取SSO用户信息错误."
  129 +
  130 +602:
  131 + message: "SSO用户登录信息为空."
  132 +
  133 +603:
  134 + message: "用户UID、邮件、手机号不能为空."
  135 +
  136 +604:
  137 + message: "获取SSO用户信息错误."
  138 +
  139 +605:
  140 + message: "SSO更新错误"
  141 +
  142 +
  143 +
  144 +
  145 +
  146 +
  147 +
  148 +
  149 +
  150 +998:
  151 + message: 操作失败
  152 +
  153 +999:
  154 + message: Service {0} is not available!
  1 +100000000:
  2 + message: "成功"
  3 + gwError: 200:成功
  4 +
  5 +100000010:
  6 + message: "out of range"
  7 + gwError: 500:out of range
  1 +16001001:
  2 + message: "uid is null"
  3 + gwError: 400:请传入uid
  4 +
  5 +16001002:
  6 + message: "username is null"
  7 + gwError: 400:用户名不可为空
  8 +
  9 +16001003:
  10 + message: "mobile is invalid"
  11 + gwError: 400:手机号格式不正确
  12 +
  13 +16001004:
  14 + message: "address is null"
  15 + gwError: 400:地址信息不可为空
  16 +
  17 +16001005:
  18 + message: "idcard is invalid"
  19 + gwError: 400:请填写正确的身份证号码
  1 +600001001:
  2 + message: "Request parameter is null"
  3 + gwError: 500:sms parameter is null
  4 +
  5 +600001002:
  6 + message: "IP request over 1000 times in an hour"
  7 + gwError: 500:IP request over 1000 times in an hour
  8 +
  9 +600001003:
  10 + message: "Mobile request over 100 times in a minuter"
  11 + gwError: 500:Mobile request over 100 times in a minuter
  12 +
  13 +600001004:
  14 + message: "Redis error, please check and send message continue."
  15 + gwError: 500:Redis error
  16 +
  17 +600001005:
  18 + message: "SMS template id is null"
  19 + gwError: 500:null template
  20 +
  21 +600001006:
  22 + message: "SMS template not exist"
  23 + gwError: 500:template error
  24 +
  25 +600001007:
  26 + message: "SMS template has no fit user"
  27 + gwError: 500:template user error
  28 +
  29 +600001008:
  30 + message: "SMS template fit user not exist"
  31 + gwError: 500:template user error
  32 +
  33 +600001009:
  34 + message: "Send message failed"
  35 + gwError: 500:Send message failed
  36 +
  37 +600001010:
  38 + message: "uid is null"
  39 + gwError: 500:uid is null
  40 +
  41 +600001011:
  42 + message: "mobile is in black list"
  43 + gwError: 500:mobile is in black list
  44 +
  45 +600001012:
  46 + message: "IP is in black list"
  47 + gwError: 500:IP is in black list
  48 +
  49 +600001013:
  50 + message: "send message num is out of limit"
  51 + gwError: 500:send message num is out of limit
  52 +
  53 +600001014:
  54 + message: "SMS template project is null"
  55 + gwError: 201:项目参数不能为空!
  56 +
  57 +600001015:
  58 + message: "SMS template message is null"
  59 + gwError: 204:消息不能为空!
  60 +
  61 +600001016:
  62 + message: "SMS template token is null"
  63 + gwError: 207:token不能为空!
  64 +
  65 +600001017:
  66 + message: "SMS template token is error"
  67 + gwError: 208:签名错误
  68 +
  69 +600002001:
  70 + message: "param task_key can not be empty"
  71 + gwError: 400:请传入task_key
  72 +
  73 +600002002:
  74 + message: "recycle_task_define not exist"
  75 + gwError: 500:recycle_task_define不存在
  76 +
  77 +600002003:
  78 + message: "param user_id can not be empty"
  79 + gwError: 400:请传入user_id