From 83e2fd1bb391a440c65304ce3cb9d2e9ca66bdf7 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 9 Aug 2019 18:06:11 +0800 Subject: [PATCH] =?UTF-8?q?[POS][=E4=BF=AE=E6=94=B9]:=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81POS?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/impl/PosServiceImpl.java | 59 +++++++++++-------- .../java/com/iformall/common/ErrorCode.java | 5 ++ 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index d9f0e71c8..20089defb 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -179,42 +179,51 @@ public class PosServiceImpl implements PosService { throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR); } - // Level, 折扣 - List levelList = levelConfigService.getByTenantId(tenantId); - - String level = WxLevelConfigService.DEFAULT_LEVEL; - Long levelId = 0L; - for (WxLevelConfig levelConfig : levelList) { - if (user.getScore() >= levelConfig.getPoints()) { - if (levelConfig.getDiscountEnable().equals(EnumLevelConfigDiscountStatus.ENABLE.getCode())) - levelId = levelConfig.getId(); - level = levelConfig.getLevel(); - } + PosMallConfig config = posMallConfigService.getByTenantId(tenantId); + if (config == null) { + logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); + throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); } + Integer discount = 100; - WxLevelMerchant levelMerchant = new WxLevelMerchant(); - levelMerchant.setTenantId(tenantId); - levelMerchant.setLevelId(levelId); - levelMerchant.setMerchantId(merchantId); - List levelMerchantList = levelConfigService.findListCVo(levelMerchant); - if (levelMerchantList.size() >= 1) { - WxLevelMerchantCVo levelMerchantCVo = levelMerchantList.get(0); - if (levelMerchantCVo != null) { - discount = levelMerchantCVo.getDiscount(); - retMap.put(WxPayConstant.MEM_DISCOUNT, discount.toString()); - // retMap.put("levelMerchant", levelMerchantCVo.toString()); + if (config.getDiscount().equals(EnumEnableType.Enable.getCode())) { + + // Level, 折扣 + List levelList = levelConfigService.getByTenantId(tenantId); + + String level = WxLevelConfigService.DEFAULT_LEVEL; + Long levelId = 0L; + for (WxLevelConfig levelConfig : levelList) { + if (user.getScore() >= levelConfig.getPoints()) { + if (levelConfig.getDiscountEnable().equals(EnumLevelConfigDiscountStatus.ENABLE.getCode())) + levelId = levelConfig.getId(); + level = levelConfig.getLevel(); + } } - } else { - retMap.put(WxPayConstant.MEM_DISCOUNT, "100"); + + WxLevelMerchant levelMerchant = new WxLevelMerchant(); + levelMerchant.setTenantId(tenantId); + levelMerchant.setLevelId(levelId); + levelMerchant.setMerchantId(merchantId); + List levelMerchantList = levelConfigService.findListCVo(levelMerchant); + if (levelMerchantList.size() >= 1) { + WxLevelMerchantCVo levelMerchantCVo = levelMerchantList.get(0); + if (levelMerchantCVo != null) { + discount = levelMerchantCVo.getDiscount(); + } + } + + retMap.put(WxPayConstant.MEM_LEVEL, level); } + retMap.put(WxPayConstant.MEM_DISCOUNT, discount.toString()); + Double remainAmountD = posAmount * 1.0D * discount / 100; long remainAmount = Math.round(remainAmountD); retMap.put(WxPayConstant.MEM_ID, user.getId().toString()); retMap.put(WxPayConstant.MEM_PHONE, user.getPhone()); - retMap.put(WxPayConstant.MEM_LEVEL, level); retMap.put(WxPayConstant.ORG_AMOUNT, posAmountStr); retMap.put(WxPayConstant.REMAIN_AMOUNT, String.valueOf(remainAmount)); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index d68f50dc9..366ce4a6f 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -229,6 +229,11 @@ public enum ErrorCode{ UNIFORM_SEND_FAILED(11010, "小程序统一消息发送失败"), USER_LOGIN_FAILED(11011, "微信用户未登录或登录有问题"), + /** + * POS + */ + POS_CONFIG_NOT_FOUND(11100, "POS会员相关未设置"), + /** * 支付