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.DeviceConfig; 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.dto.MemberConfigDto; import com.ydd.module.service.IDeliveryConfigService; import com.ydd.module.service.IDeviceConfigService; import com.ydd.module.service.IHelpColumnService; import com.ydd.module.service.IMemberConfigService; 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; private final IMemberConfigService iMemberConfigService; private final IDeviceConfigService iDeviceConfigService; /** * 通用上传请求 */ @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); e.printStackTrace(); 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("帮助中心栏目") @ApiImplicitParams({ @ApiImplicitParam(required = true, paramType = "query", name = "type", value = "类型0 app 1 pc") }) @RequestMapping(value = "/help", method = RequestMethod.GET) public BaseResult> help(@RequestParam(name = "type",required = false)Integer type) { if(type==null){ type = 1; } 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)); } @ApiOperation("用户是否允许静默更新") @RequestMapping(value = "/userUpgrade", method = RequestMethod.GET) @AccessToken public BaseResult userUpgrade() { MemberConfigDto dto = iMemberConfigService.findDetail(getLoginId()); return BaseResult.success("ok", dto); } /** * 打印机绑定说明 */ @ApiOperation("打印机绑定说明") @RequestMapping(value = "/deviceConfig", method = RequestMethod.GET) @AccessToken public BaseResult> deviceConfig() { return BaseResult.success("ok", iDeviceConfigService.getDeviceConfig()); } }