CommonController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. package com.zhongzheng.controller.common;
  2. import cn.hutool.core.lang.Validator;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.zhongzheng.common.annotation.Log;
  7. import com.zhongzheng.common.config.RuoYiConfig;
  8. import com.zhongzheng.common.core.controller.BaseController;
  9. import com.zhongzheng.common.core.domain.AjaxResult;
  10. import com.zhongzheng.common.core.domain.model.TopLoginUser;
  11. import com.zhongzheng.common.core.page.TableDataInfo;
  12. import com.zhongzheng.common.core.redis.RedisCache;
  13. import com.zhongzheng.common.enums.BusinessType;
  14. import com.zhongzheng.common.exception.CustomException;
  15. import com.zhongzheng.common.utils.DateUtils;
  16. import com.zhongzheng.common.utils.ServletUtils;
  17. import com.zhongzheng.common.utils.ToolsUtils;
  18. import com.zhongzheng.common.utils.file.FileUtils;
  19. import com.zhongzheng.framework.web.service.WxLoginService;
  20. import com.zhongzheng.modules.activity.vo.ActivityGoodsPriceVo;
  21. import com.zhongzheng.modules.base.bo.ConfigQueryBo;
  22. import com.zhongzheng.modules.course.bo.CourseQueryBo;
  23. import com.zhongzheng.modules.course.bo.CourseTopicGoodsQueryBo;
  24. import com.zhongzheng.modules.course.service.ICourseService;
  25. import com.zhongzheng.modules.course.service.ICourseTopicService;
  26. import com.zhongzheng.modules.course.vo.CourseTopicGoodsVo;
  27. import com.zhongzheng.modules.course.vo.CourseTopicVo;
  28. import com.zhongzheng.modules.course.vo.CourseUserVo;
  29. import com.zhongzheng.modules.data.domain.DataWxTpClick;
  30. import com.zhongzheng.modules.data.service.IDataWxTpClickService;
  31. import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
  32. import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
  33. import com.zhongzheng.modules.distribution.service.IDistributionSellerService;
  34. import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
  35. import com.zhongzheng.modules.goods.bo.DistributionGoodsBo;
  36. import com.zhongzheng.modules.goods.service.IGoodsSpecTemplateService;
  37. import com.zhongzheng.modules.goods.vo.GoodsSpecTemplateVo;
  38. import com.zhongzheng.modules.goods.vo.GoodsUserVo;
  39. import com.zhongzheng.modules.goods.vo.GoodsVo;
  40. import com.zhongzheng.modules.order.domain.Printer;
  41. import com.zhongzheng.modules.sdk.bo.TopNuoMplatformLogAddBo;
  42. import com.zhongzheng.modules.sdk.service.ITopNuoMplatformLogService;
  43. import com.zhongzheng.modules.sdk.service.NuonuoService;
  44. import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
  45. import com.zhongzheng.modules.system.service.ISysConfigService;
  46. import com.zhongzheng.modules.system.service.ISysTenantService;
  47. import com.zhongzheng.modules.top.financial.bo.*;
  48. import com.zhongzheng.modules.top.financial.vo.TopOrderRevocationVo;
  49. import com.zhongzheng.modules.top.financial.vo.TopSellerDiscountVo;
  50. import com.zhongzheng.modules.top.goods.bo.*;
  51. import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
  52. import com.zhongzheng.modules.top.order.bo.PayOrderCallBackBo;
  53. import com.zhongzheng.modules.wx.bo.WxInfoBo;
  54. import com.zhongzheng.modules.wx.bo.WxInfoQuery;
  55. import com.zhongzheng.modules.wx.bo.WxServerBody;
  56. import com.zhongzheng.modules.wx.domain.*;
  57. import io.swagger.annotations.Api;
  58. import io.swagger.annotations.ApiOperation;
  59. import lombok.RequiredArgsConstructor;
  60. import org.slf4j.Logger;
  61. import org.slf4j.LoggerFactory;
  62. import org.springframework.beans.factory.annotation.Autowired;
  63. import org.springframework.http.MediaType;
  64. import org.springframework.security.access.prepost.PreAuthorize;
  65. import org.springframework.web.bind.annotation.*;
  66. import javax.servlet.http.HttpServletRequest;
  67. import javax.servlet.http.HttpServletResponse;
  68. import java.text.ParseException;
  69. import java.util.HashMap;
  70. import java.util.List;
  71. import java.util.Map;
  72. /**
  73. * 课程Controller
  74. *
  75. * @author hjl
  76. * @date 2021-10-09
  77. */
  78. @Api(value = "游客访问接口", tags = {"游客访问接口"})
  79. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  80. @RestController
  81. @RequestMapping("/sys/common/")
  82. public class CommonController extends BaseController {
  83. private static final Logger log = LoggerFactory.getLogger(CommonController.class);
  84. private final ITopNuoMplatformLogService iTopNuoMplatformLogService;
  85. private final ITopOldOrderService iTopOldOrderService;
  86. /**
  87. * 通用下载请求
  88. *
  89. * @param fileName 文件名称
  90. * @param delete 是否删除
  91. */
  92. @GetMapping("/download")
  93. public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
  94. try {
  95. if (!FileUtils.checkAllowDownload(fileName)) {
  96. throw new Exception(StrUtil.format("文件名称({})非法,不允许下载。 ", fileName));
  97. }
  98. String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
  99. String filePath = RuoYiConfig.getDownloadPath() + fileName;
  100. response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
  101. FileUtils.setAttachmentResponseHeader(response, realFileName);
  102. FileUtils.writeBytes(filePath, response.getOutputStream());
  103. /* if (delete)
  104. {
  105. FileUtils.deleteFile(filePath);
  106. }*/
  107. FileUtils.deleteFile(filePath);
  108. } catch (Exception e) {
  109. log.error("下载文件失败", e);
  110. }
  111. }
  112. /**
  113. * 新增诺税通开单记录
  114. */
  115. @ApiOperation("新增诺税通开单记录")
  116. @PreAuthorize("@ss.hasPermi('system:log:add')")
  117. @Log(title = "诺税通开单记录", businessType = BusinessType.INSERT)
  118. @PostMapping("/openMplatform/log")
  119. public AjaxResult<Map<String, String>> add(@RequestBody TopNuoMplatformLogAddBo bo) {
  120. if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
  121. throw new CustomException("签名错误");
  122. }
  123. return AjaxResult.success(iTopNuoMplatformLogService.insertByAddBo(bo));
  124. }
  125. /**
  126. * B端订单退款申请
  127. */
  128. @ApiOperation("B端订单退款申请")
  129. @PostMapping("/refund/apply")
  130. public AjaxResult<Void> orderRefundApply(@RequestBody TopOrderRefundApplyBo bo) {
  131. if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
  132. throw new CustomException("签名错误");
  133. }
  134. return toAjax(iTopOldOrderService.orderRefundApply(bo) ? 1 : 0);
  135. }
  136. /**
  137. * B端订单新增订单
  138. */
  139. @ApiOperation("新增订单")
  140. @PostMapping("/save/order")
  141. public AjaxResult<Void> saveOrder(@RequestBody TopOldOrderAddBo bo) {
  142. if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
  143. throw new CustomException("签名错误");
  144. }
  145. return toAjax(iTopOldOrderService.insertByAddBo(bo) ? 1 : 0);
  146. }
  147. /**
  148. * B端订单回款
  149. */
  150. @ApiOperation("B端订单回款")
  151. @PostMapping("/proceeds")
  152. public AjaxResult<Void> orderProceeds(@RequestBody TopOrderProceedsBo bo) {
  153. if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
  154. throw new CustomException("签名错误");
  155. }
  156. return toAjax(iTopOldOrderService.orderProceeds(bo) ? 1 : 0);
  157. }
  158. /**
  159. * 新增诺税通开单记录
  160. */
  161. @ApiOperation("付款企业网银")
  162. @PreAuthorize("@ss.hasPermi('system:log:add')")
  163. @Log(title = "付款企业网银", businessType = BusinessType.INSERT)
  164. @PostMapping("/payToCompany")
  165. public AjaxResult<Void> payToCompany(@RequestBody TopOldOrderQueryBo bo) {
  166. return toAjax(iTopOldOrderService.payToCompany(bo) ? 1 : 0);
  167. }
  168. @ApiOperation("付款企业网银支付回调")
  169. @PreAuthorize("@ss.hasPermi('system:log:add')")
  170. @Log(title = "付款企业网银支付回调", businessType = BusinessType.INSERT)
  171. @PostMapping("/payToCompanyCallBack")
  172. public AjaxResult<Void> payToCompanyCallBack(@RequestBody PayOrderCallBackBo bo) {
  173. if(!ToolsUtils.checkSignCwSnFromOldSys(bo.getMainUniqueId(),bo.getStamp().toString(),bo.getSign())){
  174. throw new CustomException("签名错误");
  175. }
  176. return toAjax(iTopOldOrderService.payToCompanyCallBack(bo) ? 1 : 0);
  177. }
  178. /**
  179. * B端订单修改
  180. */
  181. @ApiOperation("B端订单修改")
  182. @PostMapping("/edit/order")
  183. public AjaxResult<Void> editOrder(@RequestBody TopOldOrderAddBo bo) {
  184. if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
  185. throw new CustomException("签名错误");
  186. }
  187. return toAjax(iTopOldOrderService.editOrder(bo) ? 1 : 0);
  188. }
  189. /**
  190. * B端订单审核修改
  191. */
  192. @ApiOperation("B端订单审核修改")
  193. @PostMapping("/edit/order/check")
  194. public AjaxResult<Void> editOrderCheck(@RequestBody TopOldOrderAddBo bo) {
  195. if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
  196. throw new CustomException("签名错误");
  197. }
  198. return toAjax(iTopOldOrderService.editOrderCheck(bo) ? 1 : 0);
  199. }
  200. /**
  201. * 批量修改订单备注
  202. */
  203. @ApiOperation("批量修改订单备注")
  204. @PostMapping("/update/order/remark")
  205. public AjaxResult<Void> updateRemark(@RequestBody TopUpdateRemarkBo bo) {
  206. if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
  207. throw new CustomException("签名错误");
  208. }
  209. return toAjax(iTopOldOrderService.updateRemark(bo) ? 1 : 0);
  210. }
  211. /**
  212. * 订单修改(不审核)
  213. */
  214. @ApiOperation("订单修改(不审核)")
  215. @PostMapping("/update/order/info")
  216. public AjaxResult<Void> updateOrderInfo(@RequestBody TopOldOrderAddBo bo) {
  217. if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
  218. throw new CustomException("签名错误");
  219. }
  220. return toAjax(iTopOldOrderService.updateOrderInfo(bo) ? 1 : 0);
  221. }
  222. /**
  223. * B端订单审核修改通知
  224. */
  225. @ApiOperation("B端订单审核修改通知")
  226. @PostMapping("/edit/order/remind")
  227. public AjaxResult<Void> editOrderRemind(@RequestBody TopOrderRemindBo bo) {
  228. if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
  229. throw new CustomException("签名错误");
  230. }
  231. return toAjax(iTopOldOrderService.editOrderRemind(bo) ? 1 : 0);
  232. }
  233. /**
  234. * B端订单批量完单
  235. */
  236. @ApiOperation("B端订单批量完单")
  237. @PostMapping("/order/finish")
  238. public AjaxResult<Void> finishOrder(@RequestBody TopFinishOrderBo bo) {
  239. if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
  240. throw new CustomException("签名错误");
  241. }
  242. return toAjax(iTopOldOrderService.finishOrder(bo) ? 1 : 0);
  243. }
  244. /**
  245. * B端订单获取业务员优惠额度
  246. */
  247. @ApiOperation("B端订单获取业务员优惠额度")
  248. @PostMapping("/seller/discount")
  249. public AjaxResult<TopSellerDiscountVo> getSellerDiscount(@RequestBody TopSellerDiscountBo bo) {
  250. if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
  251. throw new CustomException("签名错误");
  252. }
  253. return AjaxResult.success(iTopOldOrderService.getSellerDiscount(bo));
  254. }
  255. /**
  256. * B端订单撤销
  257. */
  258. @ApiOperation("B端订单撤销")
  259. @PostMapping("/order/revocation")
  260. public AjaxResult<TopOrderRevocationVo> orderRevocation(@RequestBody TopOrderRevocationBo bo) {
  261. if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
  262. throw new CustomException("签名错误");
  263. }
  264. return AjaxResult.success(iTopOldOrderService.orderRevocation(bo));
  265. }
  266. }