CommonApi.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package com.ydd.app.controller;
  2. import com.ydd.app.dto.FeedbackDto;
  3. import com.ydd.app.service.ApiExplainService;
  4. import com.ydd.app.service.ApiFeedbackService;
  5. import com.ydd.common.annotation.AccessToken;
  6. import com.ydd.common.annotation.NoSign;
  7. import com.ydd.common.core.controller.BaseController;
  8. import com.ydd.common.core.domain.BaseResult;
  9. import com.ydd.common.oss.cloud.CloudStorageConfig;
  10. import com.ydd.common.oss.cloud.OSSFactory;
  11. import com.ydd.module.domain.DeviceConfig;
  12. import com.ydd.module.domain.Help;
  13. import com.ydd.module.domain.Version;
  14. import com.ydd.module.dto.HelpDetailDto;
  15. import com.ydd.module.dto.HelpDto;
  16. import com.ydd.module.dto.MemberConfigDto;
  17. import com.ydd.module.service.IDeliveryConfigService;
  18. import com.ydd.module.service.IDeviceConfigService;
  19. import com.ydd.module.service.IHelpColumnService;
  20. import com.ydd.module.service.IMemberConfigService;
  21. import io.swagger.annotations.Api;
  22. import io.swagger.annotations.ApiImplicitParam;
  23. import io.swagger.annotations.ApiImplicitParams;
  24. import io.swagger.annotations.ApiOperation;
  25. import lombok.RequiredArgsConstructor;
  26. import org.apache.commons.io.FilenameUtils;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.web.bind.annotation.*;
  29. import org.springframework.web.multipart.MultipartFile;
  30. import java.util.HashMap;
  31. import java.util.List;
  32. import java.util.Map;
  33. import static com.ydd.module.enums.ExceptionEnum.FILE_UPLOAD_ERROR;
  34. /**
  35. * 通用接口
  36. *
  37. * @author douya
  38. */
  39. @Api(value = "通用接口", tags = {"通用接口"})
  40. @RestController
  41. @RequestMapping("/app/common")
  42. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  43. @NoSign
  44. public class CommonApi extends BaseController {
  45. private final CloudStorageConfig cloudStorageConfig;
  46. private final ApiFeedbackService apiFeedbackService;
  47. private final ApiExplainService apiExplainService;
  48. private final IHelpColumnService iHelpColumnService;
  49. private final IMemberConfigService iMemberConfigService;
  50. private final IDeviceConfigService iDeviceConfigService;
  51. /**
  52. * 通用上传请求
  53. */
  54. @ApiOperation("通用上传请求")
  55. @PostMapping("/upload")
  56. public BaseResult<Map<String, Object>> uploadFile(MultipartFile file) {
  57. try {
  58. String suffix = FilenameUtils.getExtension(file.getOriginalFilename());
  59. String url = OSSFactory.build(cloudStorageConfig).uploadSuffix(file.getInputStream(), "." + suffix);
  60. Map<String, Object> result = new HashMap<>();
  61. result.put("fileName", file.getOriginalFilename());
  62. result.put("url", url);
  63. return BaseResult.success(result);
  64. } catch (Exception e) {
  65. logger.error("上传异常", e);
  66. e.printStackTrace();
  67. return BaseResult.error(FILE_UPLOAD_ERROR.MSG);
  68. }
  69. }
  70. /**
  71. * 意见反馈
  72. */
  73. @ApiOperation("意见反馈")
  74. @RequestMapping(value = "/feedback", method = RequestMethod.POST)
  75. @AccessToken
  76. public BaseResult feedback(FeedbackDto feedbackDto) {
  77. apiFeedbackService.feedback(getLoginId(), feedbackDto);
  78. return BaseResult.success();
  79. }
  80. /**
  81. * 系统设置说明
  82. */
  83. @ApiOperation("系统设置说明")
  84. @ApiImplicitParams({
  85. @ApiImplicitParam(required = true, paramType = "query", name = "type", value = "类型【1 招商合作配置(富文本)】【2 客服企业微信(图片上传)】【3 客服电话(文本框)】【4 《用户协议》】【5 《隐私政策》】【6 《充值协议》】")
  86. })
  87. @RequestMapping(value = "/explain", method = RequestMethod.GET)
  88. public BaseResult<String> explain(@RequestParam("type") Integer type) {
  89. return BaseResult.success("OK", apiExplainService.explain(type));
  90. }
  91. @ApiOperation("版本控制")
  92. @ApiImplicitParams({
  93. @ApiImplicitParam(required = true, paramType = "query", name = "type", value = "类型【1 Android】【2 ios】")
  94. })
  95. @RequestMapping(value = "/version", method = RequestMethod.GET)
  96. public BaseResult<Version> version(@RequestParam("type") Integer type) {
  97. return BaseResult.success("ok", apiExplainService.selectVersion(type));
  98. }
  99. /**
  100. * 帮助中心
  101. */
  102. @ApiOperation("帮助中心栏目")
  103. @ApiImplicitParams({
  104. @ApiImplicitParam(required = true, paramType = "query", name = "type", value = "类型0 app 1 pc")
  105. })
  106. @RequestMapping(value = "/help", method = RequestMethod.GET)
  107. public BaseResult<List<HelpDto>> help(@RequestParam(name = "type",required = false)Integer type) {
  108. if(type==null){
  109. type = 1;
  110. }
  111. return BaseResult.success("OK", iHelpColumnService.getAll(type));
  112. }
  113. /**
  114. * 帮助中心
  115. */
  116. @ApiOperation("帮助中心")
  117. @RequestMapping(value = "/help_detail", method = RequestMethod.GET)
  118. @ApiImplicitParams({
  119. @ApiImplicitParam(required = true, paramType = "query", name = "secondColumnId", value = "二级栏目id"),
  120. @ApiImplicitParam(required = false, paramType = "query", name = "'platformType", value = "PC/APP")
  121. })
  122. public BaseResult<List<HelpDetailDto>> helpDetail(@RequestParam("secondColumnId") Integer secondColumnId,
  123. @RequestHeader(name = "platformType", required = false) String platformType) {
  124. return BaseResult.success("OK", iHelpColumnService.getHelpDetail(secondColumnId, platformType));
  125. }
  126. @ApiOperation("用户是否允许静默更新")
  127. @RequestMapping(value = "/userUpgrade", method = RequestMethod.GET)
  128. @AccessToken
  129. public BaseResult<MemberConfigDto> userUpgrade() {
  130. MemberConfigDto dto = iMemberConfigService.findDetail(getLoginId());
  131. return BaseResult.success("ok", dto);
  132. }
  133. /**
  134. * 打印机绑定说明
  135. */
  136. @ApiOperation("打印机绑定说明")
  137. @RequestMapping(value = "/deviceConfig", method = RequestMethod.GET)
  138. @AccessToken
  139. public BaseResult<List<DeviceConfig>> deviceConfig() {
  140. return BaseResult.success("ok", iDeviceConfigService.getDeviceConfig());
  141. }
  142. }