GoodsController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. package com.zhongzheng.controller.goods;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Arrays;
  5. import cn.hutool.core.bean.BeanUtil;
  6. import cn.hutool.core.lang.Validator;
  7. import com.zhongzheng.common.utils.ServletUtils;
  8. import com.zhongzheng.modules.bank.bo.ExamQuestionQueryBo;
  9. import com.zhongzheng.modules.bank.service.IQuestionService;
  10. import com.zhongzheng.modules.bank.vo.ExamQuestionVo;
  11. import com.zhongzheng.modules.bank.vo.ExamVo;
  12. import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
  13. import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
  14. import com.zhongzheng.modules.goods.bo.*;
  15. import com.zhongzheng.modules.goods.domain.Goods;
  16. import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
  17. import com.zhongzheng.modules.goods.service.IGoodsAuditionConfigService;
  18. import com.zhongzheng.modules.goods.service.IGoodsService;
  19. import com.zhongzheng.modules.goods.vo.*;
  20. import com.zhongzheng.modules.grade.vo.StudyAccountStatusExportVo;
  21. import com.zhongzheng.modules.order.vo.OrderVo;
  22. import com.zhongzheng.modules.user.bo.UserExamRecordQueryBo;
  23. import com.zhongzheng.modules.user.entity.ClientLoginUser;
  24. import lombok.RequiredArgsConstructor;
  25. import org.springframework.security.access.prepost.PreAuthorize;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.web.bind.annotation.GetMapping;
  28. import org.springframework.web.bind.annotation.PostMapping;
  29. import org.springframework.web.bind.annotation.PutMapping;
  30. import org.springframework.web.bind.annotation.DeleteMapping;
  31. import org.springframework.web.bind.annotation.PathVariable;
  32. import org.springframework.web.bind.annotation.RequestBody;
  33. import org.springframework.web.bind.annotation.RequestMapping;
  34. import org.springframework.web.bind.annotation.RestController;
  35. import com.zhongzheng.common.annotation.Log;
  36. import com.zhongzheng.common.core.controller.BaseController;
  37. import com.zhongzheng.common.core.domain.AjaxResult;
  38. import com.zhongzheng.common.enums.BusinessType;
  39. import com.zhongzheng.common.utils.poi.ExcelUtil;
  40. import com.zhongzheng.common.core.page.TableDataInfo;
  41. import io.swagger.annotations.Api;
  42. import io.swagger.annotations.ApiOperation;
  43. /**
  44. * 商品Controller
  45. *
  46. * @author hjl
  47. * @date 2021-10-12
  48. */
  49. @Api(value = "商品控制器", tags = {"商品管理"})
  50. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  51. @RestController
  52. @RequestMapping("/goods")
  53. public class GoodsController extends BaseController {
  54. private final IGoodsService iGoodsService;
  55. private final IGoodsAttachedService iGoodsAttachedService;
  56. private final IQuestionService iQuestionService;
  57. /**
  58. * 查询商品列表
  59. */
  60. @ApiOperation("查询商品列表")
  61. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  62. @GetMapping("/list")
  63. public TableDataInfo<GoodsVo> list(GoodsQueryBo bo) {
  64. /* bo.setStatus(new ArrayList<Integer>(){{
  65. add(1);
  66. }});*/
  67. startPage();
  68. List<GoodsVo> list = iGoodsService.selectList(bo);
  69. return getDataTable(list);
  70. }
  71. @ApiOperation("导出直播商品列表")
  72. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  73. @GetMapping("/export_list")
  74. public AjaxResult<ExportLiveGoodsVo> export_list(GoodsQueryBo bo) {
  75. List<GoodsVo> list = iGoodsService.selectList(bo);
  76. List<ExportLiveGoodsVo> list1 = new ArrayList<>();
  77. for(GoodsVo vo : list){
  78. ExportLiveGoodsVo goodsVo = BeanUtil.toBean(vo, ExportLiveGoodsVo.class);
  79. goodsVo.setBusinessName(vo.getEducationName()+"-"+vo.getProjectName()+"-"+vo.getBusinessName());
  80. if(Validator.isEmpty(vo.getPeriod())){
  81. goodsVo.setPeriod(0L);
  82. }
  83. list1.add(goodsVo);
  84. }
  85. ExcelUtil<ExportLiveGoodsVo> util = new ExcelUtil<>(ExportLiveGoodsVo.class);
  86. return util.exportExcel(list1,"直播学习记录");
  87. }
  88. @ApiOperation("查询商品列表To录单")
  89. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  90. @GetMapping("/listToInput")
  91. public TableDataInfo<GoodsVo> listToInput(GoodsQueryBo bo) {
  92. startPage();
  93. List<GoodsVo> list = iGoodsService.selectListToInput(bo);
  94. return getDataTable(list);
  95. }
  96. @ApiOperation("获取商品规格模板列表")
  97. @GetMapping("/spec/list/{goodsId}")
  98. public AjaxResult<List<GoodsSpecTemplateVo>> getSpecTemplateList(@PathVariable("goodsId") Long goodsId) {
  99. List<GoodsSpecTemplateVo> list = iGoodsService.getSpecTemplateList(goodsId);
  100. return AjaxResult.success(list);
  101. }
  102. @ApiOperation("修改商品默认规格模板")
  103. @PostMapping("/update/spec")
  104. public AjaxResult<Void> updateSpecTemplate(@RequestBody GoodsSpecTempEditBo bo) {
  105. return toAjax(iGoodsService.updateSpecTemplate(bo) ? 1 : 0);
  106. }
  107. /**
  108. * 导出商品列表
  109. */
  110. /*selectList*/
  111. /**
  112. * 获取商品详细信息
  113. */
  114. @ApiOperation("获取商品详细信息")
  115. @PreAuthorize("@ss.hasPermi('system:goods:query')")
  116. @GetMapping("/{goodsId}")
  117. public AjaxResult<GoodsVo> getInfo(@PathVariable("goodsId" ) Long goodsId) {
  118. return AjaxResult.success(iGoodsService.selectDetail(goodsId));
  119. }
  120. /**
  121. * 新增课程商品
  122. */
  123. @ApiOperation("新增课程商品")
  124. @PreAuthorize("@ss.hasPermi('system:goods:add')")
  125. @Log(title = "商品", businessType = BusinessType.INSERT)
  126. @PostMapping()
  127. public AjaxResult<Void> add(@RequestBody GoodsAddBo bo) {
  128. return toAjax(iGoodsService.insertByAddBo(bo) ? 1 : 0);
  129. }
  130. /**
  131. * 修改商品
  132. */
  133. @ApiOperation("修改商品")
  134. @PreAuthorize("@ss.hasPermi('system:goods:edit')")
  135. @Log(title = "商品", businessType = BusinessType.UPDATE)
  136. @PostMapping("/edit")
  137. public AjaxResult<Void> edit(@RequestBody GoodsEditBo bo) {
  138. return toAjax(iGoodsService.updateByEditBo(bo) ? 1 : 0);
  139. }
  140. /**
  141. * 商品批量上下架
  142. */
  143. @ApiOperation("商品批量上下架")
  144. @PostMapping("/batch/updateStatus")
  145. public AjaxResult<Void> batchUpdateStatus(@RequestBody GoodsBatchUpdateStatusBo bo) {
  146. return toAjax(iGoodsService.GoodsBatchUpdateStatusBo(bo) ? 1 : 0);
  147. }
  148. /**
  149. * 商品批量删除
  150. */
  151. @ApiOperation("商品批量删除")
  152. @PostMapping("/batch/del")
  153. public AjaxResult<Void> batchDelGoods(@RequestBody GoodsBatchDelBo bo) {
  154. return toAjax(iGoodsService.batchDelGoods(bo) ? 1 : 0);
  155. }
  156. /**
  157. * 删除商品
  158. */
  159. /* @ApiOperation("删除商品")
  160. @PreAuthorize("@ss.hasPermi('system:goods:remove')")
  161. @Log(title = "商品" , businessType = BusinessType.DELETE)
  162. @DeleteMapping("/{goodsIds}")
  163. public AjaxResult<Void> remove(@PathVariable Long[] goodsIds) {
  164. return toAjax(iGoodsService.deleteWithValidByIds(Arrays.asList(goodsIds), true) ? 1 : 0);
  165. }*/
  166. /**
  167. * 新增题库商品
  168. */
  169. @ApiOperation("新增题库商品")
  170. @PreAuthorize("@ss.hasPermi('system:goods:add')")
  171. @Log(title = "商品", businessType = BusinessType.INSERT)
  172. @PostMapping("/bank")
  173. public AjaxResult<Void> addBank(@RequestBody GoodsBankAddBo bo) {
  174. return toAjax(iGoodsService.insertBankByAddBo(bo)>0 ? 1 : 0);
  175. }
  176. /**
  177. * 修改商品
  178. */
  179. @ApiOperation("修改题库商品")
  180. @PreAuthorize("@ss.hasPermi('system:goods:edit')")
  181. @Log(title = "题库商品", businessType = BusinessType.UPDATE)
  182. @PostMapping("/bank/edit")
  183. public AjaxResult<Void> editBank(@RequestBody GoodsBankEditBo bo) {
  184. return toAjax(iGoodsService.updateBankByEditBo(bo) ? 1 : 0);
  185. }
  186. /**
  187. * 查询题目业务层次关系列表
  188. */
  189. @ApiOperation("查询题库商品试卷列表")
  190. @PreAuthorize("@ss.hasPermi('system:business:list')")
  191. @GetMapping("/bank/list")
  192. public AjaxResult<List<GoodsAttachedVo>> bankList(GoodsAttachedQueryBo bo) {
  193. List<GoodsAttachedVo> list = iGoodsAttachedService.getList(bo);
  194. return AjaxResult.success(list);
  195. }
  196. /**
  197. * 新增课程商品
  198. */
  199. @ApiOperation("新增补考商品")
  200. @PreAuthorize("@ss.hasPermi('system:goods:add')")
  201. @Log(title = "商品", businessType = BusinessType.INSERT)
  202. @PostMapping("/make")
  203. public AjaxResult<Void> addMake(@RequestBody GoodsAddBo bo) {
  204. return toAjax(iGoodsService.insertMakeByAddBo(bo) ? 1 : 0);
  205. }
  206. /**
  207. * 修改商品
  208. */
  209. @ApiOperation("修改补考商品")
  210. @PreAuthorize("@ss.hasPermi('system:goods:edit')")
  211. @Log(title = "商品", businessType = BusinessType.UPDATE)
  212. @PostMapping("/make/edit")
  213. public AjaxResult<Void> editMake(@RequestBody GoodsEditBo bo) {
  214. return toAjax(iGoodsService.updateMakeByEditBo(bo) ? 1 : 0);
  215. }
  216. /**
  217. * 新增课程商品
  218. */
  219. @ApiOperation("新增前培商品")
  220. @PreAuthorize("@ss.hasPermi('system:goods:add')")
  221. @Log(title = "商品", businessType = BusinessType.INSERT)
  222. @PostMapping("/front")
  223. public AjaxResult<Void> addFront(@RequestBody GoodsAddBo bo) {
  224. return toAjax(iGoodsService.insertFrontByAddBo(bo) ? 1 : 0);
  225. }
  226. /**
  227. * 修改商品
  228. */
  229. @ApiOperation("修改前培商品")
  230. @PreAuthorize("@ss.hasPermi('system:goods:edit')")
  231. @Log(title = "商品", businessType = BusinessType.UPDATE)
  232. @PostMapping("/front/edit")
  233. public AjaxResult<Void> editFront(@RequestBody GoodsEditBo bo) {
  234. return toAjax(iGoodsService.updateFrontByEditBo(bo) ? 1 : 0);
  235. }
  236. /**
  237. * 查询考试配置绑定商品列表
  238. */
  239. @ApiOperation("查询前培或补考商品列表")
  240. @PreAuthorize("@ss.hasPermi('system:goods:list')")
  241. @GetMapping("/listGoods")
  242. public TableDataInfo<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo) {
  243. startPage();
  244. List<ExamNumberGoodsVo> list = iGoodsService.listGoods(bo);
  245. return getDataTable(list);
  246. }
  247. /**
  248. * 查询免费题库商品列表
  249. */
  250. @ApiOperation("查询免费题库商品列表")
  251. @GetMapping("/listFreeGoodsList")
  252. public TableDataInfo<GoodsUserQuestionVo> listFreeGoodsList(GoodsQueryBo bo) {
  253. startPage();
  254. List<GoodsUserQuestionVo> list = iQuestionService.listFreeGoodsList(bo);
  255. return getDataTable(list);
  256. }
  257. /**
  258. * 查询免费题库商品列表
  259. */
  260. @ApiOperation("查询用户题库商品列表")
  261. @GetMapping("/listBankGoodsList")
  262. public TableDataInfo<GoodsUserQuestionVo> listBankGoodsList(GoodsQueryBo bo) {
  263. startPage();
  264. List<GoodsUserQuestionVo> list = iQuestionService.listBankGoodsList(bo);
  265. return getDataTable(list);
  266. }
  267. /**
  268. * 获取题库商品每日一练试卷列表
  269. */
  270. @ApiOperation("获取题库商品每日一练试卷列表")
  271. @GetMapping("/getBankGoodsExamList/{goodsId}")
  272. public AjaxResult<List<BankGoodsExamVo>> getBankGoodsExamList(@PathVariable("goodsId") Long goodsId) {
  273. List<BankGoodsExamVo> list = iQuestionService.getBankGoodsExamList(goodsId);
  274. return AjaxResult.success(list);
  275. }
  276. /**
  277. * 新增每日一练试卷时间
  278. */
  279. @ApiOperation("新增每日一练试卷时间")
  280. @PostMapping("/addExamTime")
  281. public AjaxResult<Void> addGoodsExamTime(@RequestBody List<BankGoodsExamAddBo> addBo) {
  282. return toAjax(iQuestionService.addGoodsExamTime(addBo) ? 1 : 0);
  283. }
  284. }