瀏覽代碼

fixed系统配置功能优化

fushengqian 1 年之前
父節點
當前提交
e6a1a516dc

+ 4 - 2
fuint-application/src/main/java/com/fuint/common/service/SettingService.java

@@ -18,10 +18,11 @@ public interface SettingService extends IService<MtSetting> {
      * 删除配置
      *
      * @param  merchantId 商户ID
+     * @param  type 类型
      * @param  name 配置名称
      * @throws BusinessCheckException
      */
-    void removeSetting(Integer merchantId, String name) throws BusinessCheckException;
+    void removeSetting(Integer merchantId, String type, String name) throws BusinessCheckException;
 
     /**
      * 保存配置
@@ -43,10 +44,11 @@ public interface SettingService extends IService<MtSetting> {
      * 根据配置名称获取配置信息
      *
      * @param  merchantId 商户ID
+     * @param  type 类型
      * @param  name 配置名称
      * @throws BusinessCheckException
      */
-    MtSetting querySettingByName(Integer merchantId, String name) throws BusinessCheckException;
+    MtSetting querySettingByName(Integer merchantId, String type, String name) throws BusinessCheckException;
 
     /**
      * 获取系统上传文件的根路径

+ 1 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/MemberServiceImpl.java

@@ -628,7 +628,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
 
         // 需要手机号登录
         if (StringUtil.isEmpty(mobile) && user == null) {
-            MtSetting mtSetting = settingService.querySettingByName(merchantId, UserSettingEnum.LOGIN_NEED_PHONE.getKey());
+            MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.USER.getKey(), UserSettingEnum.LOGIN_NEED_PHONE.getKey());
             if (mtSetting != null) {
                 if (mtSetting.getValue().equals(YesOrNoEnum.TRUE.getKey())) {
                     MtUser tempUser = new MtUser();

+ 8 - 8
fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java

@@ -687,7 +687,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
             }
         }
 
-        MtSetting config = settingService.querySettingByName(merchantId, OrderSettingEnum.IS_CLOSE.getKey());
+        MtSetting config = settingService.querySettingByName(merchantId, SettingTypeEnum.ORDER.getKey(), OrderSettingEnum.IS_CLOSE.getKey());
         if (config != null && config.getValue().equals(YesOrNoEnum.TRUE.getKey())) {
             throw new BusinessCheckException("系统已关闭交易功能,请稍后再试!");
         }
@@ -747,7 +747,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
         orderDto.setIsVisitor(isVisitor);
         orderDto.setPlatform(platform);
 
-        MtSetting pointSetting = settingService.querySettingByName(merchantId, PointSettingEnum.CAN_USE_AS_MONEY.getKey());
+        MtSetting pointSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.POINT.getKey(), PointSettingEnum.CAN_USE_AS_MONEY.getKey());
         // 使用积分数量
         if (pointSetting != null && pointSetting.getValue().equals(YesOrNoEnum.TRUE.getKey())) {
             orderDto.setUsePoint(usePoint);
@@ -814,7 +814,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
 
         // 商品订单且配送要加上配送费用
         if (orderDto.getType().equals(OrderTypeEnum.GOOGS.getKey()) && orderDto.getOrderMode().equals(OrderModeEnum.EXPRESS.getKey())) {
-            MtSetting mtSetting = settingService.querySettingByName(merchantId, OrderSettingEnum.DELIVERY_FEE.getKey());
+            MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.ORDER.getKey(), OrderSettingEnum.DELIVERY_FEE.getKey());
             if (mtSetting != null && StringUtil.isNotEmpty(mtSetting.getValue())) {
                 BigDecimal deliveryFee = new BigDecimal(mtSetting.getValue());
                 if (deliveryFee.compareTo(new BigDecimal("0")) > 0) {
@@ -950,7 +950,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
             }
         }
 
-        MtSetting delivery = settingService.querySettingByName(merchantId, OrderSettingEnum.DELIVERY_MIN_AMOUNT.getKey());
+        MtSetting delivery = settingService.querySettingByName(merchantId, SettingTypeEnum.ORDER.getKey(),OrderSettingEnum.DELIVERY_MIN_AMOUNT.getKey());
         if (delivery != null && orderInfo.getOrderMode().equals(OrderModeEnum.EXPRESS.getKey())) {
             BigDecimal deliveryMinAmount = new BigDecimal(delivery.getValue());
             if (deliveryMinAmount.compareTo(new BigDecimal("0")) > 0 && deliveryMinAmount.compareTo(orderInfo.getAmount()) > 0) {
@@ -1370,7 +1370,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
         }
 
         // 处理消费返积分,查询返1积分所需消费金额
-        MtSetting setting = settingService.querySettingByName(mtOrder.getMerchantId(), PointSettingEnum.POINT_NEED_CONSUME.getKey());
+        MtSetting setting = settingService.querySettingByName(mtOrder.getMerchantId(), SettingTypeEnum.POINT.getKey(), PointSettingEnum.POINT_NEED_CONSUME.getKey());
         if (setting != null && !orderInfo.getPayType().equals(PayTypeEnum.BALANCE.getKey()) && orderInfo.getIsVisitor().equals(YesOrNoEnum.NO.getKey())) {
             String needPayAmount = setting.getValue();
             Integer needPayAmountInt = Math.round(Integer.parseInt(needPayAmount));
@@ -1842,7 +1842,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
         MtUser userInfo = memberService.queryMemberById(userId);
 
         // 设置是否不能用积分抵扣
-        MtSetting pointSetting = settingService.querySettingByName(merchantId, PointSettingEnum.CAN_USE_AS_MONEY.getKey());
+        MtSetting pointSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.POINT.getKey(), PointSettingEnum.CAN_USE_AS_MONEY.getKey());
         if (pointSetting != null && !pointSetting.getValue().equals(YesOrNoEnum.TRUE.getKey())) {
             isUsePoint = false;
         }
@@ -2031,7 +2031,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
         Integer myPoint = userInfo.getPoint() == null ? 0 : userInfo.getPoint();
         Integer usePoint = 0;
         BigDecimal usePointAmount = new BigDecimal("0");
-        MtSetting setting = settingService.querySettingByName(merchantId, PointSettingEnum.EXCHANGE_NEED_POINT.getKey());
+        MtSetting setting = settingService.querySettingByName(merchantId, SettingTypeEnum.POINT.getKey(), PointSettingEnum.EXCHANGE_NEED_POINT.getKey());
         if (myPoint > 0 && setting != null && isUsePoint) {
             if (StringUtil.isNotEmpty(setting.getValue()) && !setting.getValue().equals("0")) {
                 BigDecimal usePoints = new BigDecimal(myPoint);
@@ -2059,7 +2059,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
 
         // 配送费用
         BigDecimal deliveryFee = new BigDecimal("0");
-        MtSetting mtSetting = settingService.querySettingByName(merchantId, OrderSettingEnum.DELIVERY_FEE.getKey());
+        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.ORDER.getKey(), OrderSettingEnum.DELIVERY_FEE.getKey());
         if (mtSetting != null && StringUtil.isNotEmpty(mtSetting.getValue()) && orderMode.equals(OrderModeEnum.EXPRESS.getKey())) {
             deliveryFee = new BigDecimal(mtSetting.getValue());
         }

+ 31 - 2
fuint-application/src/main/java/com/fuint/common/service/impl/SendSmsServiceImpl.java

@@ -3,14 +3,19 @@ package com.fuint.common.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fuint.common.dto.MessageResDto;
+import com.fuint.common.enums.SettingTypeEnum;
+import com.fuint.common.enums.SmsSettingEnum;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.service.SendSmsService;
+import com.fuint.common.service.SettingService;
 import com.fuint.common.service.SmsTemplateService;
 import com.fuint.common.util.CommonUtil;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
 import com.fuint.repository.mapper.MtSmsSendedLogMapper;
+import com.fuint.repository.model.MtMerchant;
+import com.fuint.repository.model.MtSetting;
 import com.fuint.repository.model.MtSmsSendedLog;
 import com.fuint.repository.model.MtSmsTemplate;
 import com.fuint.utils.StringUtil;
@@ -61,6 +66,11 @@ public class SendSmsServiceImpl implements SendSmsService {
      * */
     private SmsTemplateService smsTemplateService;
 
+    /**
+     * 配置服务接口
+     * */
+    private SettingService settingService;
+
     /**
      * 发送短信
      *
@@ -71,10 +81,14 @@ public class SendSmsServiceImpl implements SendSmsService {
      * @return
      * */
     @Override
-    public Map<Boolean,List<String>> sendSms(Integer merchantId, String templateUname, List<String> phones, Map<String, String> contentParams) {
+    public Map<Boolean,List<String>> sendSms(Integer merchantId, String templateUname, List<String> phones, Map<String, String> contentParams) throws BusinessCheckException {
         logger.info("使用短信平台发送短信.....");
         Map<Boolean, List<String>> result = new HashMap<>();
         Integer mode = Integer.parseInt(env.getProperty("aliyun.sms.mode"));
+        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.SMS_CONFIG.getKey(), SmsSettingEnum.IS_CLOSE.getKey());
+        if (mtSetting != null && StringUtil.isNotEmpty(mtSetting.getValue())) {
+            mode = Integer.parseInt(mtSetting.getValue());
+        }
         if (mode.intValue() != 1) {
             logger.info("短信平台未开启 mode = {}", mode);
             return result;
@@ -108,7 +122,7 @@ public class SendSmsServiceImpl implements SendSmsService {
      * @param templateUname   短信模板英文名称
      * @return
      */
-    public MessageResDto sendMessage(Integer merchantId, String phoneNo, String templateUname, Map<String, String> contentParams) {
+    public MessageResDto sendMessage(Integer merchantId, String phoneNo, String templateUname, Map<String, String> contentParams) throws BusinessCheckException {
         MessageResDto resInfo = new MessageResDto();
         logger.info("sendMessage inParams:phoneNo={}, message={}", phoneNo, templateUname);
         if (StringUtil.isBlank(phoneNo) || phoneNo.split(",").length > 200) {
@@ -121,6 +135,21 @@ public class SendSmsServiceImpl implements SendSmsService {
         String secret = env.getProperty("aliyun.sms.accessKeySecret");
         String signName = env.getProperty("aliyun.sms.signName");
 
+        List<MtSetting> settings = settingService.getSettingList(merchantId, SettingTypeEnum.SMS_CONFIG.getKey());
+        if (settings != null && settings.size() > 0) {
+            for (MtSetting mtSetting : settings) {
+                 if (mtSetting.getName().equals(SmsSettingEnum.ACCESS_KEY_ID.getKey()) && StringUtil.isNotEmpty(mtSetting.getValue())) {
+                     accessKeyId = mtSetting.getValue();
+                 }
+                 if (mtSetting.getName().equals(SmsSettingEnum.ACCESS_KEY_SECRET.getKey()) && StringUtil.isNotEmpty(mtSetting.getValue())) {
+                     secret = mtSetting.getValue();
+                 }
+                 if (mtSetting.getName().equals(SmsSettingEnum.SIGN_NAME.getKey()) && StringUtil.isNotEmpty(mtSetting.getValue())) {
+                     signName = mtSetting.getValue();
+                 }
+            }
+        }
+
         MtSmsTemplate templateInfo = new MtSmsTemplate();
         try {
             Map<String, Object> params = new HashMap<>();

+ 7 - 5
fuint-application/src/main/java/com/fuint/common/service/impl/SettingServiceImpl.java

@@ -40,14 +40,15 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
      * 删除配置
      *
      * @param  merchantId 商户ID
+     * @param  type 类型
      * @param  name 配置名称
      * @throws BusinessCheckException
      * @return
      */
     @Override
     @OperationServiceLog(description = "删除配置信息")
-    public void removeSetting(Integer merchantId, String name) {
-        MtSetting info = querySettingByName(merchantId, name);
+    public void removeSetting(Integer merchantId, String type, String name) {
+        MtSetting info = querySettingByName(merchantId, type, name);
         if (info != null) {
             mtSettingMapper.deleteById(info.getId());
         }
@@ -65,7 +66,7 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
     @Transactional(rollbackFor = Exception.class)
     @OperationServiceLog(description = "保存配置信息")
     public MtSetting saveSetting(MtSetting mtSetting) {
-        MtSetting settingInfo = querySettingByName(mtSetting.getMerchantId(), mtSetting.getName());
+        MtSetting settingInfo = querySettingByName(mtSetting.getMerchantId(), mtSetting.getType(), mtSetting.getName());
         if (null != settingInfo) {
             if (mtSetting.getValue() != null) {
                 settingInfo.setValue(mtSetting.getValue());
@@ -115,13 +116,14 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
      * 根据ID获取配置信息
      *
      * @param  merchantId 商户ID
+     * @param  type 类型
      * @param  name 配置名称
      * @throws BusinessCheckException
      * @return
      */
     @Override
-    public MtSetting querySettingByName(Integer merchantId, String name) {
-        return mtSettingMapper.querySettingByName(merchantId, name);
+    public MtSetting querySettingByName(Integer merchantId, String type, String name) {
+        return mtSettingMapper.querySettingByName(merchantId, type, name);
     }
 
     /**

+ 2 - 2
fuint-application/src/main/java/com/fuint/common/service/impl/WeixinServiceImpl.java

@@ -447,7 +447,7 @@ public class WeixinServiceImpl implements WeixinService {
             return false;
         }
 
-        MtSetting mtSetting = settingService.querySettingByName(merchantId, key);
+        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.SUB_MESSAGE.getKey(), key);
         if (mtSetting == null) {
             return false;
         }
@@ -698,7 +698,7 @@ public class WeixinServiceImpl implements WeixinService {
     public String createWxCard(Integer merchantId, String wxCardId) throws BusinessCheckException {
         String cardId = "";
         try {
-            MtSetting mtSetting = settingService.querySettingByName(merchantId, UserSettingEnum.WX_MEMBER_CARD.getKey());
+            MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD.getKey());
             if (mtSetting == null) {
                 return cardId;
             }

+ 3 - 3
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberController.java

@@ -469,9 +469,9 @@ public class BackendMemberController extends BaseController {
             settingService.saveSetting(mtSetting);
         }
 
-        MtSetting openCardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), UserSettingEnum.OPEN_WX_CARD.getKey());
-        MtSetting cardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), UserSettingEnum.WX_MEMBER_CARD.getKey());
-        MtSetting cardIdSetting = settingService.querySettingByName(accountInfo.getMerchantId(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
+        MtSetting openCardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.OPEN_WX_CARD.getKey());
+        MtSetting cardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD.getKey());
+        MtSetting cardIdSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
         if (openCardSetting != null && openCardSetting.getValue().equals(YesOrNoEnum.TRUE.getKey()) && cardSetting != null && accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
             String wxCardId = "";
             if (cardIdSetting != null) {

+ 4 - 4
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSmsController.java

@@ -111,10 +111,10 @@ public class BackendSmsController extends BaseController {
 
         List<MtSetting> settingList = settingService.getSettingList(accountInfo.getMerchantId(), SettingTypeEnum.SMS_CONFIG.getKey());
 
-        String isClose = "";
-        String accessKeyId = YesOrNoEnum.FALSE.getKey();
-        String accessKeySecret = YesOrNoEnum.FALSE.getKey();
-        String signName = YesOrNoEnum.FALSE.getKey();
+        String isClose = "0";
+        String accessKeyId = "";
+        String accessKeySecret = "";
+        String signName = "";
         for (MtSetting setting : settingList) {
             if (StringUtil.isNotEmpty(setting.getValue())) {
                 if (setting.getName().equals(SmsSettingEnum.IS_CLOSE.getKey())) {

+ 3 - 3
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSubMessageController.java

@@ -70,7 +70,7 @@ public class BackendSubMessageController extends BaseController {
         List<SubMessageDto> dataList = new ArrayList<>();
         for (WxMessageEnum wxMessageEnum : WxMessageEnum.values()) {
             SubMessageDto e = new SubMessageDto();
-            MtSetting setting = settingService.querySettingByName(accountInfo.getMerchantId(), wxMessageEnum.getKey());
+            MtSetting setting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.SUB_MESSAGE.getKey(), wxMessageEnum.getKey());
             e.setKey(wxMessageEnum.getKey());
             e.setTitle(wxMessageEnum.getValue());
             JSONObject jsonObject = null;
@@ -136,7 +136,7 @@ public class BackendSubMessageController extends BaseController {
 
         String name = WxMessageEnum.getValue(key);
         if (StringUtil.isNotEmpty(name)) {
-            MtSetting mtSetting = settingService.querySettingByName(accountInfo.getMerchantId(), key);
+            MtSetting mtSetting = settingService.querySettingByName(accountInfo.getMerchantId(), SettingTypeEnum.SUB_MESSAGE.getKey(), key);
             JSONObject jsonObject = null;
             try {
                 if (mtSetting != null && mtSetting.getValue().indexOf('}') > 0) {
@@ -257,7 +257,7 @@ public class BackendSubMessageController extends BaseController {
             String json = JSONObject.toJSONString(subMessageDto);
 
             // 保存配置
-            settingService.removeSetting(accountInfo.getMerchantId(), key);
+            settingService.removeSetting(accountInfo.getMerchantId(), SettingTypeEnum.SUB_MESSAGE.getKey(), key);
             MtSetting info = new MtSetting();
             info.setMerchantId(accountInfo.getMerchantId());
             info.setType(SettingTypeEnum.SUB_MESSAGE.getKey());

+ 1 - 1
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientBalanceController.java

@@ -156,7 +156,7 @@ public class ClientBalanceController extends BaseController {
 
         // 充值赠送金额
         String ruleParam = "";
-        MtSetting mtSetting = settingService.querySettingByName(merchantId, BalanceSettingEnum.RECHARGE_RULE.getKey());
+        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.BALANCE.getKey(), BalanceSettingEnum.RECHARGE_RULE.getKey());
         if (StringUtil.isNotEmpty(rechargeAmount) && mtSetting != null) {
             if (mtSetting.getValue() != null && StringUtil.isNotEmpty(mtSetting.getValue())) {
                 String rules[] = mtSetting.getValue().split(",");

+ 3 - 3
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientUserController.java

@@ -149,9 +149,9 @@ public class ClientUserController extends BaseController {
         // 是否开通微信会员卡
         boolean openWxCard = false;
         if (platform.equals(PlatformTypeEnum.H5.getCode()) && isWechat.equals(YesOrNoEnum.YES.getKey()) && mtUser != null && StringUtil.isNotEmpty(mtUser.getOpenId())) {
-            MtSetting cardSetting = settingService.querySettingByName(mtUser.getMerchantId(), UserSettingEnum.OPEN_WX_CARD.getKey());
+            MtSetting cardSetting = settingService.querySettingByName(mtUser.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.OPEN_WX_CARD.getKey());
             if (cardSetting != null && cardSetting.getValue().equals(YesOrNoEnum.TRUE.getKey())) {
-                MtSetting cardIdSetting = settingService.querySettingByName(mtUser.getMerchantId(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
+                MtSetting cardIdSetting = settingService.querySettingByName(mtUser.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
                 if (cardIdSetting != null) {
                     Boolean isOpen = weixinService.isOpenCard(mtUser.getMerchantId(), cardIdSetting.getValue(), mtUser.getOpenId());
                     logger.info("weixinService.isOpenCard userId = {},isOpen = {}", mtUser.getId(), isOpen);
@@ -355,7 +355,7 @@ public class ClientUserController extends BaseController {
 
         // 微信会员卡领取二维码
         String wxCardQrCode = "";
-        MtSetting cardIdSetting = settingService.querySettingByName(mtUser.getMerchantId(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
+        MtSetting cardIdSetting = settingService.querySettingByName(mtUser.getMerchantId(), SettingTypeEnum.USER.getKey(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
         if (cardIdSetting != null) {
             wxCardQrCode = weixinService.createCardQrCode(mtUser.getMerchantId(), cardIdSetting.getValue(), mtUser.getUserNo());
         }

+ 1 - 1
fuint-repository/src/main/java/com/fuint/repository/mapper/MtSettingMapper.java

@@ -15,6 +15,6 @@ public interface MtSettingMapper extends BaseMapper<MtSetting> {
 
     List<MtSetting> querySettingByType(@Param("merchantId") Integer merchantId, @Param("type") String type);
 
-    MtSetting querySettingByName(@Param("merchantId") Integer merchantId, @Param("name") String name);
+    MtSetting querySettingByName(@Param("merchantId") Integer merchantId, @Param("type") String type, @Param("name") String name);
 
 }

+ 1 - 1
fuint-repository/src/main/resources/mapper/MtSettingMapper.xml

@@ -6,6 +6,6 @@
     </select>
 
     <select id="querySettingByName" resultType="com.fuint.repository.model.MtSetting">
-        select * from mt_setting t where t.NAME = #{name} and t.MERCHANT_ID = #{merchantId} limit 1
+        select * from mt_setting t where t.NAME = #{name} and t.TYPE = #{type} and t.MERCHANT_ID = #{merchantId} limit 1
     </select>
 </mapper>