GoodsController.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. package com.zhongzheng.controller.goods;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.lang.Validator;
  4. import com.zhongzheng.common.annotation.Log;
  5. import com.zhongzheng.common.core.controller.BaseController;
  6. import com.zhongzheng.common.core.domain.AjaxResult;
  7. import com.zhongzheng.common.core.page.TableDataInfo;
  8. import com.zhongzheng.common.enums.BusinessType;
  9. import com.zhongzheng.common.utils.poi.ExcelUtil;
  10. import com.zhongzheng.modules.bank.service.IQuestionService;
  11. import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
  12. import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
  13. import com.zhongzheng.modules.goods.bo.*;
  14. import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
  15. import com.zhongzheng.modules.goods.service.IGoodsCourseService;
  16. import com.zhongzheng.modules.goods.service.IGoodsService;
  17. import com.zhongzheng.modules.goods.vo.*;
  18. import com.zhongzheng.modules.order.service.IOrderBusinessConfigGoodsService;
  19. import com.zhongzheng.modules.order.vo.CompanyOrderBusinessConfigGoodsVo;
  20. import com.zhongzheng.modules.order.vo.OrderBusinessConfigGoodsVo;
  21. import io.swagger.annotations.Api;
  22. import io.swagger.annotations.ApiOperation;
  23. import lombok.RequiredArgsConstructor;
  24. import org.apache.commons.lang3.StringUtils;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.security.access.prepost.PreAuthorize;
  27. import org.springframework.web.bind.annotation.*;
  28. import java.util.ArrayList;
  29. import java.util.Arrays;
  30. import java.util.List;
  31. import java.util.stream.Collectors;
  32. /**
  33. * 商品Controller
  34. *
  35. * @author hjl
  36. * @date 2021-10-12
  37. */
  38. @Api(value = "商品控制器", tags = {"商品管理"})
  39. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  40. @RestController
  41. @RequestMapping("bs/BsGoods")
  42. public class GoodsController extends BaseController {
  43. private final IGoodsService iGoodsService;
  44. private final IGoodsAttachedService iGoodsAttachedService;
  45. private final IQuestionService iQuestionService;
  46. private final IOrderBusinessConfigGoodsService iOrderBusinessConfigGoodsService;
  47. private final IGoodsCourseService iGoodsCourseService;
  48. /**
  49. * 查询商品列表
  50. */
  51. @ApiOperation("查询商品列表")
  52. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  53. @GetMapping("/goodsList")
  54. public TableDataInfo<CompanyGoodsVo> list( GoodsQueryBo bo) {
  55. startPage();
  56. List<CompanyGoodsVo> list = iGoodsService.selectBsGoodList(bo);
  57. return getDataTable(list);
  58. }
  59. /**
  60. * 查询商品宝列表
  61. */
  62. @ApiOperation("查询商品列表")
  63. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  64. @GetMapping("/getBsGoodlist")
  65. public TableDataInfo<CompanyOrderBusinessConfigGoodsVo> getBsGoodList(GoodsQueryBo bo) {
  66. startPage();
  67. List<CompanyOrderBusinessConfigGoodsVo> bsGoodsList = iGoodsService.getBsGoodsPackageList(bo);
  68. return getDataTable(bsGoodsList);
  69. }
  70. @ApiOperation("查询商品列表To录单")
  71. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  72. @GetMapping("/listToInput")
  73. public TableDataInfo<GoodsVo> listToInput(GoodsQueryBo bo) {
  74. startPage();
  75. List<GoodsVo> list = iGoodsService.selectListToInput(bo);
  76. return getDataTable(list);
  77. }
  78. @ApiOperation("获取商品规格模板列表")
  79. @GetMapping("/spec/list/{goodsId}")
  80. public AjaxResult<List<GoodsSpecTemplateVo>> getSpecTemplateList(@PathVariable("goodsId") Long goodsId) {
  81. List<GoodsSpecTemplateVo> list = iGoodsService.getSpecTemplateList(goodsId);
  82. return AjaxResult.success(list);
  83. }
  84. @ApiOperation("取消商品默认规格模板")
  85. @PostMapping("/cancel/spec")
  86. public AjaxResult<Void> cancelSpecTemplate(@RequestBody GoodsSpecTempEditBo bo) {
  87. return toAjax(iGoodsService.cancelSpecTemplate(bo) ? 1 : 0);
  88. }
  89. /**
  90. * 获取商品详细信息
  91. */
  92. @ApiOperation("获取商品详细信息")
  93. @PreAuthorize("@ss.hasPermi('system:goods:query')")
  94. @GetMapping("/{goodsId}")
  95. public AjaxResult<GoodsVo> getInfo(@PathVariable("goodsId") Long goodsId) {
  96. return AjaxResult.success(iGoodsService.selectDetail(goodsId));
  97. }
  98. @ApiOperation("新增讲义商品")
  99. @PreAuthorize("@ss.hasPermi('system:goods:add')")
  100. @Log(title = "商品", businessType = BusinessType.INSERT)
  101. @PostMapping("/handouts")
  102. public AjaxResult<Void> addHandouts(@RequestBody GoodsAddBo bo) {
  103. return toAjax(iGoodsService.insertHandoutsByAddBo(bo)>0 ? 1 : 0);
  104. }
  105. /**
  106. * 查询题目业务层次关系列表
  107. */
  108. @ApiOperation("查询题库商品试卷列表")
  109. @PreAuthorize("@ss.hasPermi('system:business:list')")
  110. @GetMapping("/bank/list")
  111. public AjaxResult<List<GoodsAttachedVo>> bankList(GoodsAttachedQueryBo bo) {
  112. List<GoodsAttachedVo> list = iGoodsAttachedService.getList(bo);
  113. return AjaxResult.success(list);
  114. }
  115. /**
  116. * 查询考试配置绑定商品列表
  117. */
  118. @ApiOperation("查询前培或补考商品列表")
  119. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  120. @GetMapping("/listGoods")
  121. public TableDataInfo<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo) {
  122. startPage();
  123. List<ExamNumberGoodsVo> list = iGoodsService.listGoods(bo);
  124. return getDataTable(list);
  125. }
  126. /**
  127. * 查询免费题库商品列表
  128. */
  129. @ApiOperation("查询免费题库商品列表")
  130. @GetMapping("/listFreeGoodsList")
  131. public TableDataInfo<GoodsUserQuestionVo> listFreeGoodsList(GoodsQueryBo bo) {
  132. startPage();
  133. List<GoodsUserQuestionVo> list = iQuestionService.listFreeGoodsList(bo);
  134. return getDataTable(list);
  135. }
  136. /**
  137. * 查询免费题库商品列表
  138. */
  139. @ApiOperation("查询用户题库商品列表")
  140. @GetMapping("/listBankGoodsList")
  141. public TableDataInfo<GoodsUserQuestionVo> listBankGoodsList(GoodsQueryBo bo) {
  142. startPage();
  143. List<GoodsUserQuestionVo> list = iQuestionService.listBankGoodsList(bo);
  144. return getDataTable(list);
  145. }
  146. /**
  147. * 获取题库商品每日一练试卷列表
  148. */
  149. @ApiOperation("获取题库商品每日一练试卷列表")
  150. @GetMapping("/getBankGoodsExamList/{goodsId}")
  151. public AjaxResult<List<BankGoodsExamVo>> getBankGoodsExamList(@PathVariable("goodsId") Long goodsId) {
  152. List<BankGoodsExamVo> list = iQuestionService.getBankGoodsExamList(goodsId);
  153. return AjaxResult.success(list);
  154. }
  155. @ApiOperation("查询商品普通列表")
  156. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  157. @GetMapping("/queryList")
  158. public AjaxResult<List<GoodsVo>> queryList(GoodsQueryBo bo) {
  159. bo.setStatus(new ArrayList<Integer>(){{
  160. add(1);
  161. }});
  162. List<GoodsVo> list = iGoodsService.queryList(bo);
  163. return AjaxResult.success(list);
  164. }
  165. }