CommonController.java 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762
  1. package com.zhongzheng.controller.common;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.lang.Validator;
  4. import cn.hutool.core.util.StrUtil;
  5. import com.alibaba.fastjson.JSON;
  6. import com.alibaba.fastjson.JSONObject;
  7. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  8. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  9. import com.zhongzheng.common.annotation.Log;
  10. import com.zhongzheng.common.config.RuoYiConfig;
  11. import com.zhongzheng.common.constant.Constants;
  12. import com.zhongzheng.common.core.controller.BaseController;
  13. import com.zhongzheng.common.core.domain.AjaxResult;
  14. import com.zhongzheng.common.core.page.TableDataInfo;
  15. import com.zhongzheng.common.enums.BusinessType;
  16. import com.zhongzheng.common.exception.CustomException;
  17. import com.zhongzheng.common.type.EncryptHandler;
  18. import com.zhongzheng.common.utils.ServletUtils;
  19. import com.zhongzheng.common.utils.ToolsUtils;
  20. import com.zhongzheng.common.utils.file.FileUploadUtils;
  21. import com.zhongzheng.common.utils.file.FileUtils;
  22. import com.zhongzheng.common.utils.poi.ExcelUtil;
  23. import com.zhongzheng.framework.config.ServerConfig;
  24. import com.zhongzheng.framework.web.service.WxLoginService;
  25. import com.zhongzheng.modules.activity.vo.ActivityGoodsPriceVo;
  26. import com.zhongzheng.modules.alioss.bo.OssRequest;
  27. import com.zhongzheng.modules.alioss.service.OssService;
  28. import com.zhongzheng.modules.bank.bo.QuestionQueryBo;
  29. import com.zhongzheng.modules.bank.service.IExamService;
  30. import com.zhongzheng.modules.bank.service.IQuestionOtherService;
  31. import com.zhongzheng.modules.bank.service.IQuestionService;
  32. import com.zhongzheng.modules.bank.vo.QuestionVo;
  33. import com.zhongzheng.modules.base.bo.ConfigQueryBo;
  34. import com.zhongzheng.modules.course.bo.ExternalQuestionBo;
  35. import com.zhongzheng.modules.course.bo.ReplenishExamBo;
  36. import com.zhongzheng.modules.course.vo.ExternalQuestionVo;
  37. import com.zhongzheng.modules.course.vo.ReplenishExamVo;
  38. import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
  39. import com.zhongzheng.modules.distribution.bo.DistributionCashWithdrawalPayBo;
  40. import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
  41. import com.zhongzheng.modules.distribution.service.IDistributionCashWithdrawalService;
  42. import com.zhongzheng.modules.distribution.service.IDistributionSellerService;
  43. import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
  44. import com.zhongzheng.modules.exam.bo.ExamApplyDetailBo;
  45. import com.zhongzheng.modules.exam.bo.ExamApplyResultBo;
  46. import com.zhongzheng.modules.exam.bo.ExamApplySubscribeBo;
  47. import com.zhongzheng.modules.exam.bo.UpdateStudentImageBo;
  48. import com.zhongzheng.modules.exam.service.IExamApplyService;
  49. import com.zhongzheng.modules.exam.vo.ExamApplyDetailVo;
  50. import com.zhongzheng.modules.goods.bo.AlikeGoodsBo;
  51. import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
  52. import com.zhongzheng.modules.goods.bo.GoodsStudyUrlBo;
  53. import com.zhongzheng.modules.goods.bo.UserGoodsListBo;
  54. import com.zhongzheng.modules.goods.service.IGoodsService;
  55. import com.zhongzheng.modules.goods.vo.GoodsJzsVo;
  56. import com.zhongzheng.modules.goods.vo.GoodsVo;
  57. import com.zhongzheng.modules.goods.vo.UserGoodsListVo;
  58. import com.zhongzheng.modules.goods.vo.UserOrderGoodsListVo;
  59. import com.zhongzheng.modules.grade.bo.*;
  60. import com.zhongzheng.modules.grade.service.IClassGradeService;
  61. import com.zhongzheng.modules.grade.service.IClassGradeUserService;
  62. import com.zhongzheng.modules.grade.service.IUserPeriodService;
  63. import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
  64. import com.zhongzheng.modules.grade.vo.SyncGoodsExport;
  65. import com.zhongzheng.modules.order.bo.TopOldOrderRefundBo;
  66. import com.zhongzheng.modules.order.domain.Order;
  67. import com.zhongzheng.modules.order.domain.OrderGoods;
  68. import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
  69. import com.zhongzheng.modules.order.service.IOrderGoodsService;
  70. import com.zhongzheng.modules.order.service.IOrderService;
  71. import com.zhongzheng.modules.order.vo.OrderGoodsVo;
  72. import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
  73. import com.zhongzheng.modules.system.bo.SysTenantAdminOldBo;
  74. import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
  75. import com.zhongzheng.modules.system.domain.SysTenant;
  76. import com.zhongzheng.modules.system.service.ISysConfigService;
  77. import com.zhongzheng.modules.system.service.ISysTenantService;
  78. import com.zhongzheng.modules.system.service.ISysWebService;
  79. import com.zhongzheng.modules.system.vo.SysTenantVo;
  80. import com.zhongzheng.modules.top.user.bo.TopSysTenantRegisterAddBo;
  81. import com.zhongzheng.modules.top.user.service.ITopSysTenantRegisterService;
  82. import com.zhongzheng.modules.user.service.IUserService;
  83. import com.zhongzheng.modules.user.service.IUserSubscribeService;
  84. import com.zhongzheng.modules.wx.bo.WxShareGoodsBo;
  85. import com.zhongzheng.modules.wx.service.IWxPayService;
  86. import io.swagger.annotations.ApiOperation;
  87. import org.slf4j.Logger;
  88. import org.slf4j.LoggerFactory;
  89. import org.springframework.beans.factory.annotation.Autowired;
  90. import org.springframework.http.MediaType;
  91. import org.springframework.security.access.prepost.PreAuthorize;
  92. import org.springframework.web.bind.annotation.GetMapping;
  93. import org.springframework.web.bind.annotation.PostMapping;
  94. import org.springframework.web.bind.annotation.RequestBody;
  95. import org.springframework.web.bind.annotation.RestController;
  96. import org.springframework.web.multipart.MultipartFile;
  97. import javax.servlet.http.HttpServletRequest;
  98. import javax.servlet.http.HttpServletResponse;
  99. import java.util.ArrayList;
  100. import java.util.HashMap;
  101. import java.util.List;
  102. import java.util.Map;
  103. import java.util.stream.Collectors;
  104. /**
  105. * 通用请求处理
  106. *
  107. * @author zhongzheng
  108. */
  109. @RestController
  110. public class CommonController extends BaseController {
  111. private static final Logger log = LoggerFactory.getLogger(CommonController.class);
  112. @Autowired
  113. private ServerConfig serverConfig;
  114. @Autowired
  115. private IGoodsService iGoodsService;
  116. @Autowired
  117. private IUserPeriodService iUserPeriodService;
  118. @Autowired
  119. private IOrderService iOrderService;
  120. @Autowired
  121. private WxLoginService wxLoginService;
  122. @Autowired
  123. private IOrderGoodsService iOrderGoodsService;
  124. @Autowired
  125. private IWxPayService iWxPayService;
  126. @Autowired
  127. private IClassGradeService iClassGradeService;
  128. @Autowired
  129. private ISysTenantService iSysTenantService;
  130. @Autowired
  131. private IUserService iUserService;
  132. @Autowired
  133. private ITopSysTenantRegisterService iTopSysTenantRegisterService;
  134. @Autowired
  135. private ISysWebService webService;
  136. @Autowired
  137. private ISysConfigService configService;
  138. @Autowired
  139. private IDistributionCashWithdrawalService iDistributionCashWithdrawalService;
  140. @Autowired
  141. private IDistributionSellerService iDistributionSellerService;
  142. @Autowired
  143. private IDistributionActivityGoodsService iDistributionActivityGoodsService;
  144. @Autowired
  145. private IOrderGoodsRefundService iOrderGoodsRefundService;
  146. @Autowired
  147. private IExamApplyService iExamApplyService;
  148. @Autowired
  149. private IUserSubscribeService iUserSubscribeService;
  150. @Autowired
  151. private IClassGradeUserService iClassGradeUserService;
  152. @Autowired
  153. private IExamService iExamService;
  154. @Autowired
  155. private IQuestionOtherService iQuestionOtherService;
  156. @Autowired
  157. private OssService ossService;
  158. /**
  159. * 通用下载请求
  160. *
  161. * @param fileName 文件名称
  162. * @param delete 是否删除
  163. */
  164. @GetMapping("common/download")
  165. public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
  166. try {
  167. if (!FileUtils.checkAllowDownload(fileName)) {
  168. throw new Exception(StrUtil.format("文件名称({})非法,不允许下载。 ", fileName));
  169. }
  170. String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
  171. String filePath = RuoYiConfig.getDownloadPath() + fileName;
  172. response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
  173. FileUtils.setAttachmentResponseHeader(response, realFileName);
  174. FileUtils.writeBytes(filePath, response.getOutputStream());
  175. if (delete)
  176. {
  177. FileUtils.deleteFile(filePath);
  178. }
  179. } catch (Exception e) {
  180. log.error("下载文件失败", e);
  181. }
  182. }
  183. /**
  184. * 通用上传请求
  185. */
  186. @PostMapping("/common/upload")
  187. public AjaxResult uploadFile(MultipartFile file) throws Exception {
  188. try {
  189. // 上传文件路径
  190. String filePath = RuoYiConfig.getUploadPath();
  191. // 上传并返回新文件名称
  192. String fileName = FileUploadUtils.upload(filePath, file);
  193. String url = serverConfig.getUrl() + fileName;
  194. AjaxResult ajax = AjaxResult.success();
  195. ajax.put("fileName", fileName);
  196. ajax.put("url", url);
  197. return ajax;
  198. } catch (Exception e) {
  199. return AjaxResult.error(e.getMessage());
  200. }
  201. }
  202. /**
  203. * 本地资源通用下载
  204. */
  205. @GetMapping("/common/download/resource")
  206. public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
  207. throws Exception {
  208. try {
  209. if (!FileUtils.checkAllowDownload(resource)) {
  210. throw new Exception(StrUtil.format("资源文件({})非法,不允许下载。 ", resource));
  211. }
  212. // 本地资源路径
  213. String localPath = RuoYiConfig.getProfile();
  214. // 数据库资源地址
  215. String downloadPath = localPath + StrUtil.subAfter(resource, Constants.RESOURCE_PREFIX, false);
  216. // 下载名称
  217. String downloadName = StrUtil.subAfter(downloadPath, "/", true);
  218. response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
  219. FileUtils.setAttachmentResponseHeader(response, downloadName);
  220. FileUtils.writeBytes(downloadPath, response.getOutputStream());
  221. } catch (Exception e) {
  222. log.error("下载文件失败", e);
  223. }
  224. }
  225. @ApiOperation("获取继教二建的商品结构列表")
  226. @GetMapping("common/jzs/goodsList")
  227. public AjaxResult<GoodsJzsVo> goodsList() {
  228. GoodsQueryBo queryBo = new GoodsQueryBo();
  229. List<SyncGoodsExport> goodsJzsVoList = iGoodsService.selectRjJzsList(queryBo);
  230. ExcelUtil<SyncGoodsExport> util = new ExcelUtil<SyncGoodsExport>(SyncGoodsExport.class);
  231. // ExcelUtil<SyncGoodsExport> util = new ExcelUtil<>(SyncGoodsExport.class);
  232. return util.exportEasyExcel(util.exportEasyData(goodsJzsVoList), "继建商品");
  233. }
  234. @ApiOperation("测试列表")
  235. @PostMapping("common/jzs/test")
  236. public AjaxResult<Void> testList(@RequestBody UserPeriodEditBo bo) {
  237. UserPeriodEditBo queryBo = new UserPeriodEditBo();
  238. queryBo.setGoodsId(1085L);
  239. queryBo.setGradeId(978L);
  240. queryBo.setUserId(114L);
  241. iUserPeriodService.syncStudyLogToOld(bo);
  242. return AjaxResult.success();
  243. }
  244. @ApiOperation("旧系统打回重审")
  245. @PostMapping("common/rollback/period")
  246. public AjaxResult<Void> rollbackPeriod(@RequestBody RollBackPeriodBo bo) {
  247. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  248. return AjaxResult.error("签名错误");
  249. }
  250. UserPeriodEditBo queryBo = new UserPeriodEditBo();
  251. queryBo.setRollBackPlat(2);
  252. queryBo.setOrderGoodsId(bo.getOrderGoodsId());
  253. iUserPeriodService.confirmRollbackPeriod(queryBo);
  254. return AjaxResult.success();
  255. }
  256. @ApiOperation("旧系统获取用户商品信息")
  257. @PostMapping("common/get/goods")
  258. public AjaxResult getUserGoodsList(@RequestBody UserGoodsListBo bo) {
  259. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  260. return AjaxResult.error("签名错误");
  261. }
  262. List<UserGoodsListVo> voList = iGoodsService.getUserGoodsList(bo);
  263. return AjaxResult.success(voList);
  264. }
  265. @ApiOperation("旧系统获取用户订单商品信息")
  266. @PostMapping("common/get/orderGoods")
  267. public AjaxResult getUserOrderGoods(@RequestBody UserGoodsListBo bo) {
  268. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  269. return AjaxResult.error("签名错误");
  270. }
  271. List<UserOrderGoodsListVo> voList = iGoodsService.getUserOrderGoods(bo);
  272. return AjaxResult.success(voList);
  273. }
  274. @ApiOperation("校验用户是否有账号")
  275. @PostMapping("common/check/account")
  276. public AjaxResult checkUserAccount(@RequestBody UserGoodsListBo bo) {
  277. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  278. return AjaxResult.error("签名错误");
  279. }
  280. Map<String,String> url = iGoodsService.checkUserAccount(bo);
  281. return AjaxResult.success(url);
  282. }
  283. @ApiOperation("七大员学员资料批量变更")
  284. @PostMapping("common/apply/user/profile")
  285. public AjaxResult updateExamUserProfile(MultipartFile file) {
  286. iExamApplyService.updateExamUserProfile(file);
  287. return AjaxResult.success();
  288. }
  289. @ApiOperation("七大员新考结果")
  290. @PostMapping("common/apply/result")
  291. public AjaxResult examApplyResult(@RequestBody ExamApplyResultBo bo) {
  292. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  293. return AjaxResult.error("签名错误");
  294. }
  295. iExamApplyService.examApplyResult(bo);
  296. return AjaxResult.success();
  297. }
  298. @ApiOperation("七大员考试预约")
  299. @PostMapping("common/apply/subscribe")
  300. public AjaxResult examApplySubscribe(@RequestBody ExamApplySubscribeBo bo) {
  301. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  302. return AjaxResult.error("签名错误");
  303. }
  304. ServletUtils.getResponse().setHeader("TenantId",bo.getTenantId().toString());
  305. iUserSubscribeService.examApplySubscribe(bo);
  306. return AjaxResult.success();
  307. }
  308. @ApiOperation("七大员考试预约取消")
  309. @PostMapping("common/apply/subscribe/cancel")
  310. public AjaxResult examApplySubscribeCancel(@RequestBody ExamApplySubscribeBo bo) {
  311. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  312. return AjaxResult.error("签名错误");
  313. }
  314. ServletUtils.getResponse().setHeader("TenantId",bo.getTenantId().toString());
  315. iUserSubscribeService.examApplySubscribeCancel(bo);
  316. return AjaxResult.success();
  317. }
  318. @ApiOperation("学员学时图片修改")
  319. @PostMapping("common/student/image/update")
  320. public AjaxResult updateStudentImage(@RequestBody UpdateStudentImageBo bo) {
  321. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  322. return AjaxResult.error("签名错误");
  323. }
  324. String base = iUserSubscribeService.updateStudentImage(bo);
  325. return AjaxResult.success(base);
  326. }
  327. @ApiOperation("获取外部题库商品(山东题库)")
  328. @PostMapping("common/external/question")
  329. public AjaxResult getExternalQuestion(@RequestBody ExternalQuestionBo bo) {
  330. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  331. return AjaxResult.error("签名错误");
  332. }
  333. List<ExternalQuestionVo> questionVos = iGoodsService.getExternalQuestion(bo);
  334. return AjaxResult.success(questionVos);
  335. }
  336. @ApiOperation("获取补考商品")
  337. @PostMapping("common/replenish/exam")
  338. public AjaxResult getReplenishExam(@RequestBody ReplenishExamBo bo) {
  339. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  340. return AjaxResult.error("签名错误");
  341. }
  342. List<ReplenishExamVo> questionVos = iGoodsService.getReplenishExam(bo);
  343. return AjaxResult.success(questionVos);
  344. }
  345. @ApiOperation("获取某场考试信息")
  346. @PostMapping("common/apply/detail")
  347. public AjaxResult examApplyDetail(@RequestBody ExamApplyDetailBo bo) {
  348. ExamApplyDetailVo voList = iExamApplyService.examApplyDetail(bo);
  349. return AjaxResult.success(voList);
  350. }
  351. @ApiOperation("旧系统获取商品学习中心路径")
  352. @PostMapping("common/get/goods/studyUrl")
  353. public AjaxResult getGoodsStudyUrl(@RequestBody GoodsStudyUrlBo bo) {
  354. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  355. return AjaxResult.error("签名错误");
  356. }
  357. String studyUrl = iGoodsService.getGoodsStudyUrl(bo);
  358. return AjaxResult.success(studyUrl);
  359. }
  360. @ApiOperation("批量查询官方班级人数")
  361. @PostMapping("common/free/batch/officialGradeCount")
  362. public AjaxResult batchOfficialGradeCount(@RequestBody ClassGradeBatchQueryBo bo) {
  363. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  364. return AjaxResult.error("签名错误");
  365. }
  366. String[] list = bo.getOfficialNameStr().split(",");
  367. List<Map<String, Object>> numList = new ArrayList<>();
  368. for (String officialName : list) {
  369. Map<String, Object> map = new HashMap<>();
  370. ClassGradeQueryBo queryBo = new ClassGradeQueryBo();
  371. queryBo.setOfficialName(officialName);
  372. map.put("officialName", officialName);
  373. Integer num = iClassGradeService.queryOfficialGradeCount(queryBo);
  374. map.put("num", num);
  375. numList.add(map);
  376. }
  377. return AjaxResult.success(numList);
  378. }
  379. @ApiOperation("查询官方班级详情")
  380. @PostMapping("common/free/officialGradeDetail")
  381. public AjaxResult officialGradeDetail(@RequestBody ClassNpUserInfoBo bo) {
  382. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  383. return AjaxResult.error("签名错误");
  384. }
  385. return AjaxResult.success(iClassGradeService.officialGradeDetail(bo));
  386. }
  387. @ApiOperation("查询预开班官方班级编号")
  388. @PostMapping("common/free/officialGrade/num")
  389. public AjaxResult getOfficialGradeNum(@RequestBody ClassOfficialNumBo bo) {
  390. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  391. return AjaxResult.error("签名错误");
  392. }
  393. return AjaxResult.success(iClassGradeService.getOfficialGradeNum(bo));
  394. }
  395. @ApiOperation("预报名班级开班")
  396. @PostMapping("common/free/open/class")
  397. public AjaxResult openOfficialGrade(@RequestBody ClassGradeOpenBo bo) {
  398. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  399. return AjaxResult.error("签名错误");
  400. }
  401. iClassGradeService.openOfficialGrade(bo);
  402. return AjaxResult.success();
  403. }
  404. @ApiOperation("测试分班")
  405. @GetMapping("common/jzs/grade")
  406. public AjaxResult<Void> testGrade() {
  407. // iClassGradeService.checkEjjjPeopleNumLimit(195L,984L);
  408. // iUserService.batchUpdateTelId();
  409. return AjaxResult.success();
  410. }
  411. @ApiOperation("获取商品分享码")
  412. @PostMapping("/shareGoodsCode")
  413. public AjaxResult getWxSmallAccessToken(@RequestBody WxShareGoodsBo bo) {
  414. String token = wxLoginService.shareGoodsCode(bo);
  415. return AjaxResult.success(token);
  416. }
  417. @ApiOperation("获取同价格商品")
  418. @PostMapping("/common/alike/goods")
  419. public AjaxResult getAlikeGoods(@RequestBody AlikeGoodsBo bo) {
  420. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  421. return AjaxResult.error("签名错误");
  422. }
  423. List<GoodsVo> voList = iGoodsService.getAlikeGoods(bo);
  424. return AjaxResult.success(voList);
  425. }
  426. @ApiOperation("推送分销商品")
  427. @PostMapping("/toshareGoods")
  428. public AjaxResult toshareGoods(@RequestBody WxShareGoodsBo bo) {
  429. String out_trade_no = "22110210122554298238";
  430. Map<String, Object> map = new HashMap<>();
  431. map.put("order_sn", out_trade_no);
  432. List<OrderGoods> goodsList = iOrderGoodsService.listByMap(map);
  433. Order order = iOrderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, out_trade_no));
  434. iWxPayService.shareToOldSys(order, goodsList);
  435. return AjaxResult.success();
  436. }
  437. @ApiOperation("创建新机构后台")
  438. @PostMapping("common/create/tenant/admin")
  439. public AjaxResult createTenantAdmin(@RequestBody SysTenantAdminBo bo) {
  440. iSysTenantService.createTenantAdmin(bo);
  441. return AjaxResult.success();
  442. }
  443. @ApiOperation("创建新机构后台(旧系统)")
  444. @PostMapping("common/create/tenant/admin/old")
  445. public AjaxResult createTenantAdminOld(@RequestBody SysTenantAdminOldBo bo) {
  446. iSysTenantService.createTenantAdminOld(bo);
  447. return AjaxResult.success();
  448. }
  449. @ApiOperation("同步其他机构角色菜单")
  450. @PostMapping("common/update/role")
  451. public AjaxResult updateRoleTenant(@RequestBody List<Long> tenantIds) {
  452. iSysTenantService.updateRoleTenant(tenantIds);
  453. return AjaxResult.success();
  454. }
  455. @ApiOperation("同步其他机构字典")
  456. @PostMapping("common/update/dict")
  457. public AjaxResult updateDictTenant(@RequestBody List<Long> tenantIds) {
  458. iSysTenantService.updateDictTenant(tenantIds);
  459. return AjaxResult.success();
  460. }
  461. /**
  462. * 总平台退款支付
  463. */
  464. @ApiOperation("总平台退款支付")
  465. @PostMapping("/common/platform/pay")
  466. public AjaxResult<Void> platformRefundPay(@RequestBody List<TopOldOrderRefundBo> bo) {
  467. return toAjax(iOrderGoodsRefundService.platformRefundPay(bo) ? 1 : 0);
  468. }
  469. /**
  470. * 总平台退款支付订单处理
  471. */
  472. @ApiOperation("总平台退款支付订单处理")
  473. @PostMapping("/common/platform/pay/handle")
  474. public AjaxResult<Void> platformRefundPayHandle(@RequestBody List<OrderGoodsVo> orderGoodsVos) {
  475. return toAjax(iOrderGoodsRefundService.handleRefundOrder(orderGoodsVos) ? 1 : 0);
  476. }
  477. @ApiOperation("获取企业列表")
  478. @GetMapping("common/tenant/list")
  479. public AjaxResult<List<SysTenantVo>> getTenantList() {
  480. String tenant = ServletUtils.getRequest().getHeader("TenantId");
  481. List<SysTenant> list = iSysTenantService.list();
  482. if (CollectionUtils.isEmpty(list)) {
  483. return AjaxResult.success(new ArrayList<>());
  484. }
  485. List<SysTenantVo> collect = list.stream().filter(x -> !x.getTenantId().equals(Long.valueOf(tenant)))
  486. .map(item -> BeanUtil.toBean(item, SysTenantVo.class)).collect(Collectors.toList());
  487. return AjaxResult.success(collect);
  488. }
  489. @ApiOperation("机构注册开通")
  490. @PostMapping("common/free/tenant/register")
  491. public AjaxResult tenantRegister(@RequestBody TopSysTenantRegisterAddBo bo) {
  492. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  493. return AjaxResult.error("签名错误");
  494. }
  495. return AjaxResult.success("成功", iTopSysTenantRegisterService.insertByAddBo(bo) ? 1 : 0);
  496. }
  497. @ApiOperation("重启服务restart")
  498. @PostMapping("common/free/webRestart")
  499. public AjaxResult<Void> webRestart(@RequestBody ConfigQueryBo bo) {
  500. if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
  501. return AjaxResult.error("签名错误");
  502. }
  503. webService.restartWebService();
  504. return AjaxResult.success();
  505. }
  506. /* @ApiOperation("nginx配置")
  507. @PostMapping("common/free/configNginxFile")
  508. public AjaxResult<Void> configNginxFile(@RequestBody SysNginxConfigAddBo bo) {
  509. iTopSysTenantRegisterService.test(new TopSysTenantRegisterAddBo());
  510. return AjaxResult.success();
  511. }*/
  512. @ApiOperation("登录双重验证")
  513. @GetMapping("common/free/dual_auth")
  514. public AjaxResult<String> dual_auth() {
  515. String dualAuth = configService.selectConfigByKey("login.dual.auth");
  516. return AjaxResult.success("成功", dualAuth);
  517. }
  518. @ApiOperation("decodeTel加密")
  519. @GetMapping("common/free/decodeTel")
  520. public AjaxResult<String> decodeTel(String key) {
  521. return AjaxResult.success("成功", EncryptHandler.decrypt(key));
  522. }
  523. @ApiOperation("分销打款结果回调")
  524. @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
  525. @Log(title = "打款", businessType = BusinessType.INSERT)
  526. @PostMapping("/common/free/payCashCallBack")
  527. public AjaxResult payCashCallBack(@RequestBody DistributionCashWithdrawalPayBo bo) {
  528. if (!ToolsUtils.checkSignCwSnFromOldSys(bo.getCwSn(), bo.getStamp().toString(), bo.getSign())) {
  529. return AjaxResult.error("签名错误");
  530. }
  531. return AjaxResult.success("成功", iDistributionCashWithdrawalService.payCashCallBack(bo) ? 1 : 0);
  532. }
  533. /**
  534. * 获取企业ID
  535. */
  536. @ApiOperation("获取企业ID")
  537. @GetMapping("common/free/findTenantId")
  538. public AjaxResult<String> findTenantId(SysTenantQueryBo bo) {
  539. Long tenantId = iSysTenantService.findTenantId(bo);
  540. if (Validator.isNotEmpty(tenantId)) {
  541. return AjaxResult.success("成功", tenantId.toString());
  542. } else {
  543. if (Validator.isNotEmpty(bo.getHostH5()) && bo.getHostH5().equals("120.79.166.78:19012")) {
  544. return AjaxResult.success("成功", "867735392558919680");
  545. }
  546. if (Validator.isNotEmpty(bo.getHostLive()) && bo.getHostLive().equals("120.79.166.78:19012")) {
  547. return AjaxResult.success("成功", "867735392558919680");
  548. }
  549. if (Validator.isNotEmpty(bo.getHostPc()) && bo.getHostPc().equals("120.79.166.78:19012")) {
  550. return AjaxResult.success("成功", "867735392558919680");
  551. }
  552. if (Validator.isNotEmpty(bo.getHostAdmin()) && bo.getHostAdmin().equals("120.79.166.78:19012")) {
  553. return AjaxResult.success("成功", "867735392558919680");
  554. }
  555. if (Validator.isNotEmpty(bo.getHostH5Seller()) && bo.getHostH5Seller().equals("120.79.166.78:19012")) {
  556. return AjaxResult.success("成功", "867735392558919680");
  557. }
  558. return AjaxResult.error(511, "失败", null);
  559. }
  560. }
  561. /**
  562. * 获取企业ID
  563. */
  564. @ApiOperation("获取系统配置")
  565. @GetMapping("common/free/config")
  566. public AjaxResult<Map<String, Object>> findConfig(SysTenantQueryBo bo) {
  567. Map<String, Object> map = new HashMap<>();
  568. String jsonStr = configService.selectConfigByKey("home.header");
  569. JSONObject objectJson = JSON.parseObject(jsonStr);
  570. if(Validator.isEmpty(objectJson)){
  571. throw new CustomException("数据错误");
  572. }
  573. map.put("companyName", String.valueOf(objectJson.get("companyName")));
  574. return AjaxResult.success(map);
  575. }
  576. @ApiOperation("获取微信参数")
  577. @GetMapping("app/common/wx/config")
  578. public AjaxResult<Map<String, Object>> wxConfig() {
  579. Map<String, Object> map = new HashMap<>();
  580. String smallAppId = configService.selectConfigByKey("wx.small.appid");
  581. String gzhAppId = configService.selectConfigByKey("wx.gzh.appid");
  582. map.put("smallAppId", smallAppId);
  583. map.put("gzhAppId", gzhAppId);
  584. return AjaxResult.success(map);
  585. }
  586. @ApiOperation("移动端配置参数")
  587. @GetMapping("app/common/mobileConfig")
  588. public AjaxResult<Map<String, Object>> mobileConfig(ConfigQueryBo bo) {
  589. Map<String, Object> map = new HashMap<>();
  590. String json = configService.selectConfigByKey("home.mobile");
  591. map.put("mobileConfig", json);
  592. return AjaxResult.success(map);
  593. }
  594. @ApiOperation("通过分享code查询业务员用户信息")
  595. @GetMapping("app/common/distribution/getInfoByShareCode")
  596. public AjaxResult<DistributionSellerVo> getInfoByShareCode(String shareCode) {
  597. DistributionSellerVo vo = iDistributionSellerService.queryByShareCode(shareCode);
  598. vo.setNull();
  599. String jsonStr = configService.selectConfigByKey("home.header");
  600. JSONObject objectJson = JSON.parseObject(jsonStr);
  601. vo.setTenantName(String.valueOf(objectJson.get("companyName")));
  602. return AjaxResult.success(vo);
  603. }
  604. @ApiOperation("获取分销活动商品列表")
  605. @GetMapping("app/common/distribution/getGoodsList")
  606. public TableDataInfo<ActivityGoodsPriceVo> distributionGoodsList(DistributionActivityGoodsQueryBo bo) {
  607. startPage();
  608. List<ActivityGoodsPriceVo> list = iDistributionActivityGoodsService.getGoodsList(bo);
  609. return getDataTable(list);
  610. }
  611. @ApiOperation("学时抽查")
  612. @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
  613. @Log(title = "学时抽查", businessType = BusinessType.INSERT)
  614. @PostMapping("/common/free/decryptOfficialInfo")
  615. public AjaxResult<ClassPeriodStudentVo> decryptOfficialInfo(@RequestBody ClassGradeDecryptQueryBo bo) {
  616. return AjaxResult.success(iClassGradeUserService.DecryptOfficialInfo(bo));
  617. }
  618. @ApiOperation("七大员学时抽查")
  619. @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
  620. @Log(title = "学时抽查", businessType = BusinessType.INSERT)
  621. @PostMapping("/common/free/decryptSevenOfficialInfo")
  622. public AjaxResult<ClassPeriodStudentVo> decryptSevenOfficialInfo(@RequestBody ClassGradeDecryptQueryBo bo) {
  623. return AjaxResult.success(iClassGradeUserService.DecryptSevenOfficialInfo(bo));
  624. }
  625. @ApiOperation("学时抽查加密")
  626. @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
  627. @PostMapping("/common/free/encryptDes")
  628. public AjaxResult encryptDes(@RequestBody ClassGradeDecryptQueryBo bo) {
  629. try{
  630. byte[] Keys = new byte[]{0x22, 0x34, 0x76, 0x58, (byte) 0x90, (byte) 0xAB, (byte) 0xAD, (byte) 0xBF};
  631. byte[] rgbKey = "83A3C737FC54B575CC2ABDEFDCE090".substring(0, 8).getBytes("UTF-8");
  632. String source = "bh="+bo.getBh()+"&idnum="+bo.getIdnum()+"&datetime=20230821";
  633. System.out.println(source);
  634. return AjaxResult.success(ToolsUtils.encryptDesNew(source,bo.getToken().substring(0, 8)));
  635. }catch (Exception e){
  636. return null;
  637. }
  638. }
  639. @ApiOperation("学时抽查解密")
  640. @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
  641. @PostMapping("/common/free/dncryptDes")
  642. public AjaxResult dncryptDes(@RequestBody ClassGradeDecryptQueryBo bo) {
  643. try{
  644. byte[] Keys = new byte[]{0x22, 0x34, 0x76, 0x58, (byte) 0x90, (byte) 0xAB, (byte) 0xAD, (byte) 0xBF};
  645. byte[] rgbKey = "01b5d9833987efdff54483cdc9720da6".substring(0, 8).getBytes("UTF-8");
  646. System.out.println(ToolsUtils.decryptDesNew(bo.getData(), bo.getToken().substring(0, 8)));
  647. return AjaxResult.success();
  648. }catch (Exception e){
  649. System.out.println(e.getMessage());
  650. return null;
  651. }
  652. }
  653. @ApiOperation("商品列表")
  654. @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
  655. @Log(title = "商品列表", businessType = BusinessType.INSERT)
  656. @GetMapping("/common/free/goods/list")
  657. public TableDataInfo<GoodsVo> goodsList(GoodsQueryBo bo) {
  658. /* bo.setStatus(new ArrayList<Integer>(){{
  659. add(1);
  660. }});*/
  661. startPage();
  662. List<GoodsVo> list = iGoodsService.selectList(bo);
  663. return getDataTable(list);
  664. }
  665. @ApiOperation("批量学时信息推送")
  666. @PreAuthorize("@ss.hasPermi('app:user:edit')")
  667. @PostMapping("/common/free/pushPeriod")
  668. public AjaxResult pushPeriod(@RequestBody List<ClassGradeUserQueryBo> list) {
  669. return AjaxResult.success(iClassGradeUserService.pushOfficialPeriodMore(list));
  670. }
  671. @ApiOperation("测试获取山东题库")
  672. @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
  673. @Log(title = "测试获取山东题库", businessType = BusinessType.INSERT)
  674. @GetMapping("/common/free/getShanDongExam")
  675. public AjaxResult getShanDongExam(GoodsQueryBo bo) {
  676. iQuestionOtherService.queryById(3L);
  677. return AjaxResult.success();
  678. }
  679. @ApiOperation("旧系统post请求")
  680. @PostMapping("/common/free/clientPost")
  681. public AjaxResult<Void> clientPost(@RequestBody ClientPostAddBo bo) {
  682. return AjaxResult.success(iClassGradeUserService.sendClientPost(bo));
  683. }
  684. }