package com.yami.trading.api.controller; import com.yami.trading.bean.model.C2cPaymentMethodConfig; import com.yami.trading.bean.model.C2cTranslate; import com.yami.trading.common.constants.PayTemplateParamEnum; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.BusinessException; import com.yami.trading.common.util.StringUtils; import com.yami.trading.service.AwsS3OSSFileService; import com.yami.trading.service.c2c.C2cPaymentMethodConfigService; import com.yami.trading.service.c2c.C2cTranslateService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; /** * C2C支付方式模板 */ @RestController @CrossOrigin @Slf4j public class ApiC2cPaymentMethodConfigController { @Autowired C2cPaymentMethodConfigService c2cPaymentMethodConfigService; @Autowired C2cTranslateService c2cTranslateService; @Autowired AwsS3OSSFileService awsS3OSSFileService; /** * 获取 支付方式模板 列表 */ @RequestMapping("/api/c2cPaymentMethodConfig!list.action") public Object list(HttpServletRequest request) { String language = request.getParameter("language"); log.info("c2cPaymentMethodConfig:{}", language); Map methodConfigMap = this.c2cPaymentMethodConfigService.getC2cPMethodConfigMap(); // 多语言 Map retPayMap = new HashMap<>(); for (String id : methodConfigMap.keySet()) { C2cPaymentMethodConfig configEntity = methodConfigMap.get(id); String payParamLangKeyPrefix = "pay.param."; String payMethodNameLangKey = payParamLangKeyPrefix + PayTemplateParamEnum.METHOD_NAME.getCode() + "." + configEntity.getUuid(); C2cTranslate trans = this.c2cTranslateService.get(id, payMethodNameLangKey, language); if (null != trans) { retPayMap.put(id, trans.getTranslate()); } } return Result.succeed(retPayMap); } /** * 获取 支付方式模板 详情 */ @RequestMapping("/api/c2cPaymentMethodConfig!get.action") public Object get(HttpServletRequest request) { String id = request.getParameter("id"); String language = request.getParameter("language"); C2cPaymentMethodConfig config = this.c2cPaymentMethodConfigService.getById(id); if (null == config) { throw new BusinessException("支付方式模板不存在"); } if (StringUtils.isNotEmpty(config.getMethodImg())) { String path = awsS3OSSFileService.getUrl(config.getMethodImg()); config.setMethodImg(path); } C2cPaymentMethodConfig payConfig = this.c2cTranslateService.translatePmc(config, language); return Result.succeed(payConfig); } }