package com.ydd.app.controller; import com.ydd.app.dto.FeedbackDto; import com.ydd.app.service.ApiExplainService; import com.ydd.app.service.ApiFeedbackService; import com.ydd.common.annotation.AccessToken; import com.ydd.common.annotation.NoSign; import com.ydd.common.core.controller.BaseController; import com.ydd.common.core.domain.BaseResult; import com.ydd.common.oss.cloud.CloudStorageConfig; import com.ydd.common.oss.cloud.OSSFactory; import com.ydd.module.domain.Help; import com.ydd.module.domain.Version; import com.ydd.module.dto.HelpDetailDto; import com.ydd.module.dto.HelpDto; import com.ydd.module.service.IHelpColumnService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.apache.commons.io.FilenameUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.ydd.module.enums.ExceptionEnum.FILE_UPLOAD_ERROR; /** * 通用接口 * @author douya */ @Api(value = "通用接口", tags = {"通用接口"}) @RestController @RequestMapping("/app/common") @RequiredArgsConstructor(onConstructor_ = @Autowired) @NoSign public class CommonApi extends BaseController { private final CloudStorageConfig cloudStorageConfig; private final ApiFeedbackService apiFeedbackService; private final ApiExplainService apiExplainService; private final IHelpColumnService iHelpColumnService; /** * 通用上传请求 */ @ApiOperation("通用上传请求") @PostMapping("/upload") public BaseResult> uploadFile(MultipartFile file) { try { String suffix = FilenameUtils.getExtension(file.getOriginalFilename()); String url = OSSFactory.build(cloudStorageConfig).uploadSuffix(file.getInputStream(), "." + suffix); Map result = new HashMap<>(); result.put("fileName", file.getOriginalFilename()); result.put("url", url); return BaseResult.success(result); } catch (Exception e) { logger.error("上传异常",e); return BaseResult.error(FILE_UPLOAD_ERROR.MSG); } } /** * 意见反馈 */ @ApiOperation("意见反馈") @RequestMapping(value = "/feedback", method = RequestMethod.POST) @AccessToken public BaseResult feedback(FeedbackDto feedbackDto) { apiFeedbackService.feedback(getLoginId(), feedbackDto); return BaseResult.success(); } /** * 系统设置说明 */ @ApiOperation("系统设置说明") @ApiImplicitParams({ @ApiImplicitParam(required = true, paramType = "query", name = "type", value = "类型【1 招商合作配置(富文本)】【2 客服企业微信(图片上传)】【3 客服电话(文本框)】【4 《用户协议》】【5 《隐私政策》】【6 《充值协议》】") }) @RequestMapping(value = "/explain", method = RequestMethod.GET) public BaseResult explain(@RequestParam("type") Integer type) { return BaseResult.success("OK",apiExplainService.explain(type)); } @ApiOperation("版本控制") @ApiImplicitParams({ @ApiImplicitParam(required = true, paramType = "query", name = "type", value = "类型【1 Android】【2 ios】") }) @RequestMapping(value = "/version", method = RequestMethod.GET) public BaseResult version(@RequestParam("type") Integer type) { return BaseResult.success("ok", apiExplainService.selectVersion(type)); } /** * 帮助中心 */ @ApiOperation("帮助中心栏目") @RequestMapping(value = "/help", method = RequestMethod.GET) public BaseResult> help(@RequestParam("type") Integer type) { return BaseResult.success("OK",iHelpColumnService.getAll(type)); } /** * 帮助中心 */ @ApiOperation("帮助中心") @RequestMapping(value = "/help_detail", method = RequestMethod.GET) @ApiImplicitParams({ @ApiImplicitParam(required = true, paramType = "query", name = "secondColumnId", value = "二级栏目id"), @ApiImplicitParam(required = false, paramType = "query", name = "'platformType", value = "PC/APP") }) public BaseResult> helpDetail(@RequestParam("secondColumnId")Integer secondColumnId, @RequestHeader(name = "platformType",required = false)String platformType) { return BaseResult.success("OK",iHelpColumnService.getHelpDetail(secondColumnId,platformType)); } }