package com.zhongzheng.controller.bank; import com.zhongzheng.common.core.controller.BaseController; import com.zhongzheng.common.core.domain.AjaxResult; import com.zhongzheng.common.core.page.TableDataInfo; import com.zhongzheng.common.utils.ServletUtils; import com.zhongzheng.framework.web.service.WxTokenService; import com.zhongzheng.modules.bank.service.IQuestionBusinessService; import com.zhongzheng.modules.bank.service.IQuestionService; import com.zhongzheng.modules.exam.service.IExamPaperService; import com.zhongzheng.modules.exam.vo.ExamPaperVo; import com.zhongzheng.modules.goods.bo.*; import com.zhongzheng.modules.goods.service.IGoodsService; import com.zhongzheng.modules.goods.vo.GoodsExamTimeVo; import com.zhongzheng.modules.goods.vo.GoodsUserQuestionVo; import com.zhongzheng.modules.goods.vo.SpecialExamRecordVo; import com.zhongzheng.modules.user.bo.UserExamRecordQueryBo; import com.zhongzheng.modules.user.entity.ClientLoginUser; import com.zhongzheng.modules.user.service.IUserExamRecordService; import com.zhongzheng.modules.user.service.IUserExamSubscriptionService; import com.zhongzheng.modules.user.service.IUserSpecialExamRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 题库题目Controller * * @author hjl * @date 2021-10-21 */ @Api(value = "题库题目控制器", tags = {"题库题目管理"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/bank/question") public class QuestionController extends BaseController { private final IQuestionService iQuestionService; private final IQuestionBusinessService iQuestionBusinessService; private final WxTokenService wxTokenService; private final IGoodsService iGoodsService; private final IUserExamRecordService iUserExamRecordService; private final IUserSpecialExamRecordService iUserSpecialExamRecordService; private final IExamPaperService iExamPaperService; private final IUserExamSubscriptionService iUserExamSubscriptionService; /** * 查询商品列表 */ @ApiOperation("查询用户拥有题库商品") @GetMapping("/listGoodsUserQuestion") public TableDataInfo listGoodsUserQuestionVo(GoodsQueryBo bo) { startPage(); ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); List list = iQuestionService.listGoodsUserQuestionVo(bo); for (GoodsUserQuestionVo g : list) { UserExamRecordQueryBo userExamRecordQueryBo = new UserExamRecordQueryBo(); userExamRecordQueryBo.setOrderGoodsId(g.getOrderGoodsId()); userExamRecordQueryBo.setUserId(loginUser.getUser().getUserId()); Long doNum = iUserExamRecordService.selectDoNum(userExamRecordQueryBo); Long totalNum = iGoodsService.getQuestionNum(g.getGoodsId()); g.setDoNum(doNum); g.setTotalNum(totalNum); } return getDataTable(list); } /** * 查询用户拥有免费题库商品 */ @ApiOperation("查询用户拥有免费题库商品") @GetMapping("/listFreeGoodsList") public TableDataInfo listFreeGoodsList(GoodsQueryBo bo) { startPage(); ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); List list = iQuestionService.listUserFreeGoodsList(bo); for (GoodsUserQuestionVo g : list) { UserExamRecordQueryBo userExamRecordQueryBo = new UserExamRecordQueryBo(); userExamRecordQueryBo.setOrderGoodsId(g.getOrderGoodsId()); userExamRecordQueryBo.setUserId(loginUser.getUser().getUserId()); Long doNum = iUserExamRecordService.selectDoNum(userExamRecordQueryBo); Long totalNum = iGoodsService.getQuestionNum(g.getGoodsId()); g.setDoNum(doNum); g.setTotalNum(totalNum); } return getDataTable(list); } /** * 查询用户拥有免费+自购题库商品 */ @ApiOperation("查询用户拥有免费+自购题库商品") @GetMapping("/listUserFreeUnionBuyGoodsList") public TableDataInfo listUserFreeUnionBuyGoodsList(GoodsQueryBo bo) { startPage(); ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); List list = iQuestionService.listUserFreeUnionBuyGoodsList(bo); for (GoodsUserQuestionVo g : list) { UserExamRecordQueryBo userExamRecordQueryBo = new UserExamRecordQueryBo(); userExamRecordQueryBo.setOrderGoodsId(g.getOrderGoodsId()); userExamRecordQueryBo.setUserId(loginUser.getUser().getUserId()); Long doNum = iUserExamRecordService.selectDoNum(userExamRecordQueryBo); Long totalNum = iGoodsService.getQuestionNum(g.getGoodsId()); g.setDoNum(doNum); g.setTotalNum(totalNum); //试卷类型 List paperVos = iExamPaperService.getGoodsExamPaper(g.getGoodsId()); g.setPaperVos(paperVos); } return getDataTable(list); } /** * 获取每日一练当天的试卷信息 */ @ApiOperation("获取每日一练当天的试卷信息") @GetMapping("/getToDayExam/{goodsId}") public AjaxResult getToDayExam(@PathVariable("goodsId") Long goodsId) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); return AjaxResult.success(iQuestionService.getToDayExam(goodsId,loginUser.getUser().getUserId())); } /** * 每日一练试卷打卡 */ @ApiOperation("每日一练试卷打卡") @PostMapping("/special/exam/record") public AjaxResult specialExamRecord(@RequestBody SpecialExamRecordAddBo addBo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); addBo.setUserId(loginUser.getUser().getUserId()); return toAjax(iUserSpecialExamRecordService.specialExamRecord(addBo)? 1 : 0); } /** * 获取每日一练试卷打卡记录 */ @ApiOperation("获取每日一练试卷打卡记录") @GetMapping("/get/special/record") public AjaxResult> getSpecialRecord(SpecialExamRecordQuery query) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); query.setUserId(loginUser.getUser().getUserId()); return AjaxResult.success(iUserSpecialExamRecordService.getSpecialRecord(query)); } /** * 每日一练消息提醒订阅 */ @ApiOperation("每日一练消息提醒订阅") @PostMapping("/today/exam/subscription") public AjaxResult todayExamSubscription(@RequestBody TodayExamSubscriptionBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); return toAjax(iUserExamSubscriptionService.todayExamSubscription(bo)? 1 : 0); } /** * 每日一练打卡排行榜 */ @ApiOperation("每日一练打卡排行榜") @GetMapping("/todayExam/tob/{goodsId}") public AjaxResult> getTodayExamTob(@PathVariable("goodsId") Long goodsId) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); return AjaxResult.success(iQuestionService.getTodayExamTob(goodsId,loginUser.getUser().getUserId())); } }