Commit aa45a105 authored by Smile's avatar Smile

会员模块-积分规则-订单V值新增客户方和不区分是否首单规则

parent c0e65d3b
...@@ -2,4 +2,8 @@ ...@@ -2,4 +2,8 @@
INSERT INTO jiedao.system_dict_type (name, `type`, status, remark, creator, create_time, updater, update_time, deleted) VALUES('是否选择', 'yes_or_no_or_all', 0, NULL, '1', '2024-12-06 10:39:28', '1', '2024-12-06 10:39:28', 0); INSERT INTO jiedao.system_dict_type (name, `type`, status, remark, creator, create_time, updater, update_time, deleted) VALUES('是否选择', 'yes_or_no_or_all', 0, NULL, '1', '2024-12-06 10:39:28', '1', '2024-12-06 10:39:28', 0);
INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(0, '是', '0', 'yes_or_no_or_all', 0, 'default', '', NULL, '1', '2024-12-06 10:51:10', '1', '2024-12-06 10:51:10', 0, 'YES', 'YES'); INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(0, '是', '0', 'yes_or_no_or_all', 0, 'default', '', NULL, '1', '2024-12-06 10:51:10', '1', '2024-12-06 10:51:10', 0, 'YES', 'YES');
INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(1, '否', '1', 'yes_or_no_or_all', 0, 'default', '', NULL, '1', '2024-12-06 10:51:42', '1', '2024-12-06 10:51:42', 0, 'NO', 'NO'); INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(1, '否', '1', 'yes_or_no_or_all', 0, 'default', '', NULL, '1', '2024-12-06 10:51:42', '1', '2024-12-06 10:51:42', 0, 'NO', 'NO');
INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(2, '全选', '2', 'yes_or_no_or_all', 0, 'default', '', NULL, '1', '2024-12-06 10:53:29', '1', '2024-12-06 10:53:29', 0, 'ALL', 'ALL'); INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(2, '不限', '2', 'yes_or_no_or_all', 0, 'default', '', NULL, '1', '2024-12-06 10:53:29', '1', '2024-12-06 10:53:29', 0, 'ALL', 'ALL');
\ No newline at end of file --订单V值获取积分,客户方字典添加
INSERT INTO jiedao.system_dict_type (name, `type`, status, remark, creator, create_time, updater, update_time, deleted) VALUES('客户方', 'customer_side', 0, '客户方:1.发货人 2.收货人', '1', '2024-12-07 13:50:41', '1', '2024-12-07 13:50:41', 0);
INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(0, '发货人', '1', 'customer_side', 0, 'default', '', NULL, '1', '2024-12-09 15:53:27', '1', '2024-12-09 15:53:27', 0, 'shipper', 'shipper');
INSERT INTO jiedao.system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, label_en, label_fr) VALUES(0, '收货人', '2', 'customer_side', 0, 'default', '', NULL, '1', '2024-12-09 15:53:48', '1', '2024-12-09 15:53:48', 0, 'consignee', 'consignee');
\ No newline at end of file
package cn.iocoder.yudao.module.member.enums;
import cn.hutool.core.util.ArrayUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author Smile
*/
@AllArgsConstructor
@Getter
public enum CustomerSideEnum {
CONSIGNOR(1, "发货人","shipper"),
CONSIGNEE(2, "收货人", "consignee"),
;
private final Integer value;
private final String name;
private final String nameEn;
public static CustomerSideEnum valueOf(Integer value) {
return ArrayUtil.firstMatch(customerSide-> customerSide.getValue().equals(value) , CustomerSideEnum.values());
}
}
...@@ -70,4 +70,5 @@ public interface ErrorCodeConstants { ...@@ -70,4 +70,5 @@ public interface ErrorCodeConstants {
ErrorCode USER_ADDRESS_NOT_EXISTS = new ErrorCode(1004008026, "user.address.not.exists"); ErrorCode USER_ADDRESS_NOT_EXISTS = new ErrorCode(1004008026, "user.address.not.exists");
ErrorCode USER_ADDRESS_FIELD_ERROR = new ErrorCode(1004008027, "user.address.field.error"); ErrorCode USER_ADDRESS_FIELD_ERROR = new ErrorCode(1004008027, "user.address.field.error");
ErrorCode SCORE_RULE_CUSTOMERSIDE_ERROR = new ErrorCode(1004008028, "score.rule.customer.side.error");
} }
package cn.iocoder.yudao.module.member.enums;
public enum YesOrNoOrAllTypeEnum {
YES,
NO,
ALL;
}
...@@ -13,10 +13,7 @@ import cn.iocoder.yudao.module.customer.service.customerContacts.CustomerContact ...@@ -13,10 +13,7 @@ import cn.iocoder.yudao.module.customer.service.customerContacts.CustomerContact
import cn.iocoder.yudao.module.member.api.score.MemberUserScoreApi; import cn.iocoder.yudao.module.member.api.score.MemberUserScoreApi;
import cn.iocoder.yudao.module.member.api.score.dto.MemberUserScoreOperateReqDTO; import cn.iocoder.yudao.module.member.api.score.dto.MemberUserScoreOperateReqDTO;
import cn.iocoder.yudao.module.member.dal.dataobject.scoreRule.ScoreRuleDO; import cn.iocoder.yudao.module.member.dal.dataobject.scoreRule.ScoreRuleDO;
import cn.iocoder.yudao.module.member.enums.PlatformTypeEnum; import cn.iocoder.yudao.module.member.enums.*;
import cn.iocoder.yudao.module.member.enums.ScoreRuleTypeEnum;
import cn.iocoder.yudao.module.member.enums.ScoreSourceTypeEnum;
import cn.iocoder.yudao.module.member.enums.TransportTypeEnum;
import cn.iocoder.yudao.module.member.mq.message.ScoreMessage; import cn.iocoder.yudao.module.member.mq.message.ScoreMessage;
import cn.iocoder.yudao.module.member.service.scoreLog.MemberUserScoreLogService; import cn.iocoder.yudao.module.member.service.scoreLog.MemberUserScoreLogService;
import cn.iocoder.yudao.module.member.service.scoreRule.ScoreRuleService; import cn.iocoder.yudao.module.member.service.scoreRule.ScoreRuleService;
...@@ -207,6 +204,13 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy { ...@@ -207,6 +204,13 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy {
*/ */
private List<Long> getAddScoreUser(Long userId, Long consignorId, Long consigneeId, ScoreRuleDO scoreRuleDO, StringBuilder logNote) { private List<Long> getAddScoreUser(Long userId, Long consignorId, Long consigneeId, ScoreRuleDO scoreRuleDO, StringBuilder logNote) {
ArrayList<Long> users = new ArrayList<>(); ArrayList<Long> users = new ArrayList<>();
ScoreRuleOrderVExtraVO extraInfo = JSONUtil.toBean(scoreRuleDO.getExtra(), ScoreRuleOrderVExtraVO.class);
String customerSide = extraInfo.getCustomerSide();
String[] customerSideArray = customerSide.split(",");
//校验客户方是否存在且是否有收货人
boolean hasConsignee =ArrayUtil.contains(customerSideArray, String.valueOf(CustomerSideEnum.CONSIGNEE.getValue()));
//校验客户方是否存在且是否有发货人
boolean hasConsignor =ArrayUtil.contains(customerSideArray, String.valueOf(CustomerSideEnum.CONSIGNOR.getValue()));
// 发货人和收货人都要判断给分 // 发货人和收货人都要判断给分
boolean isBackendOrder = userId <= 0; boolean isBackendOrder = userId <= 0;
logNote.append("此订单为").append(isBackendOrder ? "后台" : "客户端").append("下单;"); logNote.append("此订单为").append(isBackendOrder ? "后台" : "客户端").append("下单;");
...@@ -217,8 +221,15 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy { ...@@ -217,8 +221,15 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy {
userId = 0L; userId = 0L;
logNote.append("发货人未绑定会员;"); logNote.append("发货人未绑定会员;");
} else { } else {
userId = contactsDO.getUserid(); if (!hasConsignor&&customerSideArray.length!=0){
logNote.append("发货人绑定会员:").append(contactsDO.getUsername()).append(",会员ID:").append(userId).append(";"); logNote.append("发货人绑定会员:").append(contactsDO.getUsername()).append(",会员ID:").append(userId).append(";");
userId = 0L;
logNote.append("积分规则客户方不包含发货人");
}
if (hasConsignor||customerSideArray.length==0){
userId = contactsDO.getUserid();
logNote.append("发货人绑定会员:").append(contactsDO.getUsername()).append(",会员ID:").append(userId).append(";");
}
} }
} }
// 校验积分上限,添加加分用户列表 // 校验积分上限,添加加分用户列表
...@@ -247,7 +258,12 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy { ...@@ -247,7 +258,12 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy {
logNote.append("收货人").append(scoreRuleDO.getCode()).append("规则积分已到上限;"); logNote.append("收货人").append(scoreRuleDO.getCode()).append("规则积分已到上限;");
log.info("Order in shipping listener: The consignee has reached the maximum score, userId:{}, scoreRuleId:{}", consigneeMemberId, scoreRuleDO.getId()); log.info("Order in shipping listener: The consignee has reached the maximum score, userId:{}, scoreRuleId:{}", consigneeMemberId, scoreRuleDO.getId());
} else { } else {
users.add(consigneeMemberId); if (!hasConsignee&&customerSideArray.length!=0){
logNote.append("积分规则客户方不包含收货人");
}
if (hasConsignee||customerSideArray.length==0){
users.add(consigneeMemberId);
}
} }
} }
return users; return users;
...@@ -301,7 +317,7 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy { ...@@ -301,7 +317,7 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy {
if (!transportId.equals(extraInfo.getTransportType())) { if (!transportId.equals(extraInfo.getTransportType())) {
return false; return false;
} }
if (!isFirstOrder.equals(extraInfo.getFirstOrder())) { if (extraInfo.getFirstOrder()!=2&&!isFirstOrder.equals(extraInfo.getFirstOrder())) {
return false; return false;
} }
String[] warehouseIds = extraInfo.getReceiveAddr().split(","); String[] warehouseIds = extraInfo.getReceiveAddr().split(",");
......
...@@ -19,10 +19,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.scoreRule.ScoreRuleDO; ...@@ -19,10 +19,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.scoreRule.ScoreRuleDO;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.dal.mysql.scoreRule.ScoreRuleMapper; import cn.iocoder.yudao.module.member.dal.mysql.scoreRule.ScoreRuleMapper;
import cn.iocoder.yudao.module.member.dal.redis.scoreRule.ScoreRuleRedisDao; import cn.iocoder.yudao.module.member.dal.redis.scoreRule.ScoreRuleRedisDao;
import cn.iocoder.yudao.module.member.enums.ScoreRuleStatusEnum; import cn.iocoder.yudao.module.member.enums.*;
import cn.iocoder.yudao.module.member.enums.ScoreRuleTypeEnum;
import cn.iocoder.yudao.module.member.enums.TransportTypeEnum;
import cn.iocoder.yudao.module.member.enums.YesOrNoTypeEnum;
import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.member.service.user.MemberUserService;
import cn.iocoder.yudao.module.member.util.ScoreRuleGenCodeUtils; import cn.iocoder.yudao.module.member.util.ScoreRuleGenCodeUtils;
import cn.iocoder.yudao.module.member.vo.scoreRule.*; import cn.iocoder.yudao.module.member.vo.scoreRule.*;
...@@ -301,7 +298,7 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score ...@@ -301,7 +298,7 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score
if (extraOrderV == null) { if (extraOrderV == null) {
throw exception(SCORE_RULE_EXTRA_ERROR); throw exception(SCORE_RULE_EXTRA_ERROR);
} }
if (extraOrderV.getFirstOrder() != YesOrNoTypeEnum.YES.ordinal() && extraOrderV.getFirstOrder() != YesOrNoTypeEnum.NO.ordinal()) { if (extraOrderV.getFirstOrder() != YesOrNoOrAllTypeEnum.YES.ordinal() && extraOrderV.getFirstOrder() != YesOrNoOrAllTypeEnum.NO.ordinal() && extraOrderV.getFirstOrder() != YesOrNoOrAllTypeEnum.ALL.ordinal()) {
throw exception(SCORE_RULE_FIRST_ORDER_ERROR); throw exception(SCORE_RULE_FIRST_ORDER_ERROR);
} }
if (extraOrderV.getTransportType() != OCEAN_LCL.getValue() && extraOrderV.getTransportType() != SPECIAL_LINE_AIR_FREIGHT.getValue()) { if (extraOrderV.getTransportType() != OCEAN_LCL.getValue() && extraOrderV.getTransportType() != SPECIAL_LINE_AIR_FREIGHT.getValue()) {
...@@ -331,6 +328,9 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score ...@@ -331,6 +328,9 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score
if (StringUtils.isBlank(extraOrderV.getOrderEntry())) { if (StringUtils.isBlank(extraOrderV.getOrderEntry())) {
throw exception(SCORE_RULE_ORDERENTRY_ERROR); throw exception(SCORE_RULE_ORDERENTRY_ERROR);
} }
if (StringUtils.isBlank(extraOrderV.getCustomerSide())) {
throw exception(SCORE_RULE_CUSTOMERSIDE_ERROR);
}
verifyOrderVRule(extraOrderV.getOrderVRule()); verifyOrderVRule(extraOrderV.getOrderVRule());
scoreRule.setExtra(JSONUtil.toJsonStr(extraOrderV)); scoreRule.setExtra(JSONUtil.toJsonStr(extraOrderV));
} else if (scoreRuleType == ScoreRuleTypeEnum.REGISTER.getValue()) { } else if (scoreRuleType == ScoreRuleTypeEnum.REGISTER.getValue()) {
......
...@@ -31,6 +31,10 @@ public class ScoreRuleBaseVO { ...@@ -31,6 +31,10 @@ public class ScoreRuleBaseVO {
@NotNull(message = "规则标题英文不能为空") @NotNull(message = "规则标题英文不能为空")
private String titleEn; private String titleEn;
@ApiModelProperty(value = "规则标题法文", required = true)
@NotNull(message = "规则标题法文不能为空")
private String titleFr;
@ApiModelProperty(value = "规则说明中文", required = true) @ApiModelProperty(value = "规则说明中文", required = true)
@NotNull(message = "规则说明中文不能为空") @NotNull(message = "规则说明中文不能为空")
private String descZh; private String descZh;
...@@ -39,12 +43,19 @@ public class ScoreRuleBaseVO { ...@@ -39,12 +43,19 @@ public class ScoreRuleBaseVO {
@NotNull(message = "规则说明英文不能为空") @NotNull(message = "规则说明英文不能为空")
private String descEn; private String descEn;
@ApiModelProperty(value = "规则说明法文", required = true)
@NotNull(message = "规则说明法文不能为空")
private String descFr;
@ApiModelProperty(value = "封面图中文") @ApiModelProperty(value = "封面图中文")
private String coverImageZh; private String coverImageZh;
@ApiModelProperty(value = "封面图英文") @ApiModelProperty(value = "封面图英文")
private String coverImageEn; private String coverImageEn;
@ApiModelProperty(value = "封面图法文")
private String coverImageFr;
@ApiModelProperty(value = "单次获取积分数(订单V值不传)", required = true) @ApiModelProperty(value = "单次获取积分数(订单V值不传)", required = true)
@Min(value = 0,message = "单次获取积分数不能小于0") @Min(value = 0,message = "单次获取积分数不能小于0")
private Integer getScoreOnce = 0; private Integer getScoreOnce = 0;
......
...@@ -9,7 +9,7 @@ import java.util.List; ...@@ -9,7 +9,7 @@ import java.util.List;
@Data @Data
@ApiModel("管理后台 - 订单V值额外字段 VO") @ApiModel("管理后台 - 订单V值额外字段 VO")
public class ScoreRuleOrderVExtraVO { public class ScoreRuleOrderVExtraVO {
@ApiModelProperty(value = "是否首单(0是,1否)默认否", required = true) @ApiModelProperty(value = "是否首单(0是,1否,2不限)默认否", required = true)
private Integer firstOrder = 1; private Integer firstOrder = 1;
@ApiModelProperty(value = "运输方式(1海运拼柜,3专线空运)字典有", required = true) @ApiModelProperty(value = "运输方式(1海运拼柜,3专线空运)字典有", required = true)
private Integer transportType; private Integer transportType;
...@@ -27,6 +27,8 @@ public class ScoreRuleOrderVExtraVO { ...@@ -27,6 +27,8 @@ public class ScoreRuleOrderVExtraVO {
private List<OrderVRule> orderVRule; private List<OrderVRule> orderVRule;
@ApiModelProperty(value = "订单入口(1后台,2APP,3WEB)可多选,逗号拼", required = true) @ApiModelProperty(value = "订单入口(1后台,2APP,3WEB)可多选,逗号拼", required = true)
private String orderEntry; private String orderEntry;
@ApiModelProperty(value = "客户方(1发货人,2收货人)可多选,逗号拼", required = true)
private String customerSide;
@Data @Data
public static class OrderVRule { public static class OrderVRule {
......
...@@ -1075,7 +1075,8 @@ score.rule.share.status.error = score rule share status error ...@@ -1075,7 +1075,8 @@ score.rule.share.status.error = score rule share status error
score.rule.extra.error = score rule extra error score.rule.extra.error = score rule extra error
score.rule.receive.address.error = score rule receive address error score.rule.receive.address.error = score rule receive address error
score.rule.orderentry.error = order entry must not null score.rule.orderentry.error = order entry must not null
score.rule.first.order.error = firstOrder must 0 or 1 score.rule.customer.side.error = \u5BA2\u6237\u65B9\u4E0D\u80FD\u4E3A\u7A7A
score.rule.first.order.error = firstOrder must 0 or 1 or 2
user.address.not.exists = user address not exists user.address.not.exists = user address not exists
user.address.field.error = user address field error:{} user.address.field.error = user address field error:{}
......
...@@ -1073,7 +1073,8 @@ score.rule.share.status.error=Erreur dans l'\u00E9tat du partage ...@@ -1073,7 +1073,8 @@ score.rule.share.status.error=Erreur dans l'\u00E9tat du partage
score.rule.extra.error=Erreur dans les champs suppl\u00E9mentaires des r\u00E8gles de points score.rule.extra.error=Erreur dans les champs suppl\u00E9mentaires des r\u00E8gles de points
score.rule.receive.address.error=Erreur dans la liste des points de collecte pour la r\u00E8gle V de la commande score.rule.receive.address.error=Erreur dans la liste des points de collecte pour la r\u00E8gle V de la commande
score.rule.orderentry.error=L'entr\u00E9e de la commande ne peut \u00EAtre vide score.rule.orderentry.error=L'entr\u00E9e de la commande ne peut \u00EAtre vide
score.rule.first.order.error=Le champ "Premi\u00E8re commande" doit \u00EAtre "Oui (0)" ou "Non (1)" score.rule.customer.side.error = \u5BA2\u6237\u65B9\u4E0D\u80FD\u4E3A\u7A7A
score.rule.first.order.error=Le champ "Premi\u00E8re commande" doit \u00EAtre "Oui (0)", "Non (1)" ou "Tout s\u00E9lectionner (2)".
user.address.not.exists=L'adresse utilisateur n'existe pas user.address.not.exists=L'adresse utilisateur n'existe pas
user.address.field.error=Erreur dans le champ d'adresse utilisateur : {} user.address.field.error=Erreur dans le champ d'adresse utilisateur : {}
......
...@@ -672,7 +672,7 @@ already.picked.up=\u8BE5\u8BA2\u5355\u5DF2\u63D0\u8D27 ...@@ -672,7 +672,7 @@ already.picked.up=\u8BE5\u8BA2\u5355\u5DF2\u63D0\u8D27
lading.not.make=\u63D0\u5355\u672A\u5236\u4F5C lading.not.make=\u63D0\u5355\u672A\u5236\u4F5C
modify.approval.not.add.prod=\u4FEE\u6539\u5BA1\u6279\u4E0D\u80FD\u6DFB\u52A0\u65B0\u7684\u5546\u54C1 modify.approval.not.add.prod=\u4FEE\u6539\u5BA1\u6279\u4E0D\u80FD\u6DFB\u52A0\u65B0\u7684\u5546\u54C1
modify.approval.not.update.warehouse.in=\u5165\u4ED3\u4FEE\u6539\u5BA1\u6279\u4E2D\u4E0D\u80FD\u4FEE\u6539\u6216\u5220\u9664\u5165\u4ED3\u7EAA\u5F55 modify.approval.not.update.warehouse.in=\u5165\u4ED3\u4FEE\u6539\u5BA1\u6279\u4E2D\u4E0D\u80FD\u4FEE\u6539\u6216\u5220\u9664\u5165\u4ED3\u7EAA\u5F55
consignee.phone.is.external=\u6536\u8d27\u4eba\u624b\u673a\u53f7\u7801\u5fc5\u987b\u662f\u56fd\u5916\u7684 consignee.phone.is.external=\u6536\u8D27\u4EBA\u624B\u673A\u53F7\u7801\u5FC5\u987B\u662F\u56FD\u5916\u7684
file.not.upload=\u8BE5\u6587\u4EF6\u672A\u4E0A\u4F20 file.not.upload=\u8BE5\u6587\u4EF6\u672A\u4E0A\u4F20
your.customer.information.is.incomplete=\u60A8\u7684\u5BA2\u6237\u4FE1\u606F\u672A\u5B8C\u5584\uFF01\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\uFF01 your.customer.information.is.incomplete=\u60A8\u7684\u5BA2\u6237\u4FE1\u606F\u672A\u5B8C\u5584\uFF01\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\uFF01
open.sea.customer.cannot.set.air=\u5BA2\u6237\u3010{}\u3011\u5728\u516C\u6D77\u4E2D\u4E0D\u53EF\u8BBE\u7F6E\u662F\u5426\u7A7A\u8FD0\u5BA2\u6237 open.sea.customer.cannot.set.air=\u5BA2\u6237\u3010{}\u3011\u5728\u516C\u6D77\u4E2D\u4E0D\u53EF\u8BBE\u7F6E\u662F\u5426\u7A7A\u8FD0\u5BA2\u6237
...@@ -1076,7 +1076,8 @@ score.rule.share.status.error = \u5206\u4EAB\u72B6\u6001\u9519\u8BEF ...@@ -1076,7 +1076,8 @@ score.rule.share.status.error = \u5206\u4EAB\u72B6\u6001\u9519\u8BEF
score.rule.extra.error = \u79EF\u5206\u89C4\u5219\u989D\u5916\u5B57\u6BB5\u9519\u8BEF score.rule.extra.error = \u79EF\u5206\u89C4\u5219\u989D\u5916\u5B57\u6BB5\u9519\u8BEF
score.rule.receive.address.error = \u8BA2\u5355V\u503C\u89C4\u5219\u63D0\u8D27\u70B9\u5217\u8868\u9519\u8BEF score.rule.receive.address.error = \u8BA2\u5355V\u503C\u89C4\u5219\u63D0\u8D27\u70B9\u5217\u8868\u9519\u8BEF
score.rule.orderentry.error = \u8BA2\u5355\u5165\u53E3\u4E0D\u80FD\u4E3A\u7A7A score.rule.orderentry.error = \u8BA2\u5355\u5165\u53E3\u4E0D\u80FD\u4E3A\u7A7A
score.rule.first.order.error = \u662F\u5426\u9996\u5355\u5FC5\u987B\u4E3A\u662F\uFF080\uFF09\u6216\u5426\uFF081\uFF09 score.rule.customer.side.error = \u5BA2\u6237\u65B9\u4E0D\u80FD\u4E3A\u7A7A
score.rule.first.order.error = \u662F\u5426\u9996\u5355\u5FC5\u987B\u4E3A\u662F\uFF080\uFF09,\u5426\uFF081\uFF09\u6216\u5168\u9009\uFF082\uFF09
user.address.not.exists = \u7528\u6237\u5730\u5740\u4E0D\u5B58\u5728 user.address.not.exists = \u7528\u6237\u5730\u5740\u4E0D\u5B58\u5728
user.address.field.error = \u7528\u6237\u5730\u5740\u5B57\u6BB5\u9519\u8BEF\uFF1A{} user.address.field.error = \u7528\u6237\u5730\u5740\u5B57\u6BB5\u9519\u8BEF\uFF1A{}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment