From 81714ac84eb9cf515c0dbf701b5b87d02bafb6bd Mon Sep 17 00:00:00 2001 From: hjl <1657978663@qq.com> Date: 星期四, 06 六月 2024 14:41:05 +0800 Subject: [PATCH] feat: 修复前后端联调Bug --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyLookService.java | 11 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyInductionServiceImpl.java | 6 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/Recipient.java | 24 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java | 2 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyAnswerMapper.java | 12 ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyMapper.xml | 13 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodQueryDTO.java | 3 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserPersonalCenterVO.java | 26 + ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java | 3 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITOrderService.java | 8 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java | 82 ++++ ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserStudyService.java | 19 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java | 80 ++++ ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TOrderServiceImpl.java | 6 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java | 3 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java | 83 +++- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyAnswerService.java | 11 ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyPairMapper.xml | 14 ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyAnswerMapper.xml | 13 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/PromptVoiceVO.java | 24 + ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ExceptionCodeConstants.java | 26 + ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 22 ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java | 5 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/TOrderMapper.java | 9 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyLookServiceImpl.java | 6 ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml | 72 +++ ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java | 82 +++ ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java | 5 ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java | 63 ++- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyPairServiceImpl.java | 6 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyInductionService.java | 11 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyAnswerServiceImpl.java | 6 ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyInductionMapper.xml | 14 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StudyWeekDTO.java | 2 ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyListenMapper.xml | 11 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteGameDTO.java | 6 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyListenServiceImpl.java | 6 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserStudy.java | 15 ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java | 10 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyListenMapper.java | 12 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyListenService.java | 11 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecord.java | 1 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteStudyDTO.java | 22 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyLookMapper.java | 12 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyInductionMapper.java | 12 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/TOrder.java | 1 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/vo/ExchangeRecordVO.java | 100 +++++ ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyPairMapper.java | 12 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java | 12 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyPairService.java | 11 ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyLookMapper.xml | 10 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 9 52 files changed, 895 insertions(+), 150 deletions(-) diff --git a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java index cf8078c..00184a2 100644 --- a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java @@ -60,6 +60,11 @@ return R.fail("获取分享信息失败"+cause.getMessage()); } + @Override + public R<TSysSet> promptVoice() { + return R.fail("获取提示音效失败"+cause.getMessage()); + } + }; } } diff --git a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java index 4f6a361..9236adf 100644 --- a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java +++ b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java @@ -6,7 +6,6 @@ import com.ruoyi.management.api.factory.TManagementFallbackFactory; import com.ruoyi.management.api.model.*; import com.ruoyi.management.api.query.UseGuideQuery; -import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -39,7 +38,14 @@ * @return 获取分享图片、标题及可获积分数 */ @GetMapping("/tSysSet/shareInfo") - @ApiOperation(value = "获取分享图片、标题及可获积分数", tags = {"获取分享图片、标题及可获积分数"}) R<TSysSet> shareInfo(); + /** + * 获取分享图片、标题及可获积分数 + * + * @return 获取分享图片、标题及可获积分数 + */ + @GetMapping("/tSysSet/promptVoice") + R<TSysSet> promptVoice(); + } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java index 040f572..a97c9c4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java @@ -159,6 +159,73 @@ public static final Integer SIXTY = 60; /** + * 0数字 + */ + public static final Integer ZERO = 0; + + /** + * 1数字 + */ + public static final Integer ONE = 1; + /** + * 字符串 1 + */ + public static final String ONE_STR = "1"; + /** + * 字符串 2 + */ + public static final String TWO_STR = "2"; + /** + * 数字 2 + */ + public static final Integer TWO = 2; + /** + * 字符串 3 + */ + public static final String THREE_STR = "3"; + /** + * 数字 3 + */ + public static final Integer THREE = 3; + /** + * 字符串 4 + */ + public static final String FOUR_STR = "4"; + /** + * 数字 4 + */ + public static final Integer FOUR = 4; + /** + * 字符串5 + */ + public static final String FIVE_STR = "5"; + /** + * 数字 5 + */ + public static final Integer FIVE = 5; + /** + * 字符串6 + */ + public static final String SIX_STR = "6"; + /** + * 数字6 + */ + public static final Integer SIX = 6; + /** + * 字符串7 + */ + public static final String SEVEN_STR = "7"; + /** + * 数字7 + */ + public static final Integer SEVEN = 7; + + /** + * 1数字 + */ + public static final Integer ONE_HUNDRED = 100; + + /** * 1000数字 */ public static final Integer ONE_THOUSAND = 1000; @@ -203,4 +270,19 @@ */ public static final String ERR_CODE = "errcode"; + /** + * 积分来源 - 完成学习 + */ + public static final String COMPLETE_LEARNING = "完成学习"; + + /** + * 积分来源 - 完成游戏 + */ + public static final String COMPLETE_GAME = "完成游戏"; + + /** + * 积分来源 - 完成听故事 + */ + public static final String COMPLETE_STORY= "完成听故事"; + } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ExceptionCodeConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ExceptionCodeConstants.java new file mode 100644 index 0000000..63711d5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ExceptionCodeConstants.java @@ -0,0 +1,26 @@ +package com.ruoyi.common.core.constant; + +/** + * @author HJL + * @version 1.0 + * @since 2024-05-30 10:06 + */ +public class ExceptionCodeConstants { + + /** + * token失效 + */ + public static final Integer TOKEN_EXPIRE = 600; + + /** + * 短信验证码无效或错误 + */ + public static final Integer PHONE_CODE_ERROR_OR_EXPIRE = 503; + + /** + * 账号冻结 + */ + public static final Integer ACCOUNT_FREEZE = 502; + + +} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 661ab20..963d895 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -220,17 +220,17 @@ String userkey = JwtUtils.getUserKeyStudy(token); user = redisService.getCacheObject(getTokenKeyStudy(userkey)); // 再次判断登录状态是否已过期 - if (null == user) { - throw new StudyLoginException("登录信息已过期,请重新登录!", 504); - } - // 优先判断当前账号是否已在其他设备登录 - if (!user.getIsCanLogin()) { - throw new StudyLoginException("当前登录账号在其他设备登录!", 505); - } - // 再次判断登录状态是否已过期 - if (System.currentTimeMillis() > user.getExpireTime()) { - throw new StudyLoginException("登录信息已过期,请重新登录!", 504); - } +// if (null == user) { +// throw new StudyLoginException("登录信息已过期,请重新登录!", 504); +// } +// // 优先判断当前账号是否已在其他设备登录 +// if (!user.getIsCanLogin()) { +// throw new StudyLoginException("当前登录账号在其他设备登录!", 505); +// } +// // 再次判断登录状态是否已过期 +// if (System.currentTimeMillis() > user.getExpireTime()) { +// throw new StudyLoginException("登录信息已过期,请重新登录!", 504); +// } return user; } return user; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index 553c3ec..f54d960 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -76,7 +76,7 @@ @ApiOperation("权限列表查询") @GetMapping("/listPage") - public AjaxResult<PageInfo<SysRoleVO> > listPage(String roleName,int pageNumber,int pageSize) + public AjaxResult<PageInfo<SysRole> > listPage(String roleName,int pageNumber,int pageSize) { PageInfo<SysRole> pageInfo = new PageInfo<>(pageNumber, pageSize); LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>(); diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java index 60caadb..ba86ca7 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; @@ -158,7 +157,6 @@ @PostMapping("/addGoods") @ApiOperation(value = "添加", tags = {"后台-商品管理"}) public R addGoods(@RequestBody TGoods dto) { - dto.setSurplus(dto.getTotal()); goodsService.save(dto); return R.ok("添加成功"); } @@ -201,10 +199,23 @@ * 兑换记录 */ @GetMapping("/exchangeRecord") - @ApiOperation(value = "学习端-兑换记录", tags = {"学习端-兑换记录"}) - public R<List<TOrder>> exchangeRecord() { - return R.ok(orderService.lambdaQuery().eq(TOrder::getUserId, tokenService.getLoginUserStudy().getUserid()) - .orderByDesc(TOrder::getCreateTime).list()); + @ApiOperation(value = "学习端-兑换记录", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 28) + public R<List<ExchangeRecordVO>> exchangeRecord() { + List<ExchangeRecordVO> exchangeRecord = orderService.exchangeRecord(tokenService.getLoginUserStudy().getUserid()); + for (ExchangeRecordVO record : exchangeRecord) { + TGoods goods = goodsService.getById(record.getGoodsId()); + List<String> typeList; + if (null != goods) { + List<TGoodsType> goodsTypes = goodsTypeService.lambdaQuery().in(TGoodsType::getId, Arrays.stream(goods.getTypeIds().split(",")).collect(Collectors.toList())) + .eq(TGoodsType::getIsDelete, 0).list(); + typeList = goodsTypes.stream().map(TGoodsType::getName).collect(Collectors.toList()); + } else { + typeList = new ArrayList<>(); + } + record.setGoodsType(typeList); + } + return R.ok(exchangeRecord); } @GetMapping("/exchangeRecordParent") @@ -241,6 +252,7 @@ */ @GetMapping("/confirm") @ApiOperation(value = "确认收货", tags = {"家长端-兑换记录"}) + @ApiOperationSupport(order = 16) @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "id", dataType = "String", required = true) }) @@ -257,7 +269,8 @@ * 兑换记录 */ @GetMapping("/confirmStudy") - @ApiOperation(value = "确认收货", tags = {"学习端-兑换记录"}) + @ApiOperation(value = "确认收货", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 29) @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "id", dataType = "String", required = true) }) @@ -275,6 +288,7 @@ */ @GetMapping("/shopAddressParent") @ApiOperation(value = "获取用户收货地址", tags = {"家长端-获取用户收货地址"}) + @ApiOperationSupport(order = 17) public R<List<Recipient>> shopAddressParent() { if (tokenService.getLoginUser1() == null) { return R.tokenError("登录失效"); @@ -288,6 +302,7 @@ */ @GetMapping("/setDefault") @ApiOperation(value = "设置默认地址", tags = {"家长端-设置默认地址"}) + @ApiOperationSupport(order = 18) @ApiImplicitParams({ @ApiImplicitParam(value = "地址id", name = "id", dataType = "String", required = true) }) @@ -313,7 +328,8 @@ * 设置默认地址 */ @GetMapping("/setDefaultStudy") - @ApiOperation(value = "设置默认地址", tags = {"学习端-设置默认地址"}) + @ApiOperation(value = "设置默认地址", tags = {"学习端-收货地址"}) + @ApiOperationSupport(order = 30) @ApiImplicitParams({ @ApiImplicitParam(value = "地址id", name = "id", dataType = "String", required = true) }) @@ -342,7 +358,8 @@ * @return */ @GetMapping("/getAddressById") - @ApiOperation(value = "获取地址详情", tags = {"家长端-获取地址详情"}) + @ApiOperation(value = "获取地址详情", tags = {"家长端-收货地址"}) + @ApiOperationSupport(order = 19) @ApiImplicitParams({ @ApiImplicitParam(value = "地址id", name = "id", dataType = "String", required = true) }) @@ -361,7 +378,8 @@ * @return */ @GetMapping("/getAddressByIdStudy") - @ApiOperation(value = "获取地址详情", tags = {"学习端-获取地址详情"}) + @ApiOperation(value = "获取地址详情", tags = {"学习端-收货地址"}) + @ApiOperationSupport(order = 31) @ApiImplicitParams({ @ApiImplicitParam(value = "地址id", name = "id", dataType = "String", required = true) }) @@ -377,7 +395,8 @@ * 获取用户收货地址 */ @GetMapping("/shopAddress") - @ApiOperation(value = "获取用户收货地址", tags = {"学习端-获取用户收货地址"}) + @ApiOperation(value = "获取用户收货地址列表", tags = {"学习端-收货地址"}) + @ApiOperationSupport(order = 32) public R<List<Recipient>> shopAddress() { if (tokenService.getLoginUserStudy() == null) { return R.tokenError("登录失效"); @@ -390,7 +409,8 @@ * 新增收货地址/修改收货地址 */ @PostMapping("/addressSaveOrUpdate") - @ApiOperation(value = "学习端-新增收货地址/修改收货地址", tags = {"学习端-新增收货地址/修改收货地址"}) + @ApiOperation(value = "新增收货地址/修改收货地址", tags = {"学习端-收货地址"}) + @ApiOperationSupport(order = 33) public R<String> addressSave(@RequestBody Recipient recipient) { recipient.setUserId(tokenService.getLoginUserStudy().getUserid()); if (recipient.getIsDefault() == 1){ @@ -411,6 +431,7 @@ */ @PostMapping("/addressSaveOrUpdateParent") @ApiOperation(value = "家长端-新增收货地址/修改收货地址", tags = {"家长端-新增收货地址/修改收货地址"}) + @ApiOperationSupport(order = 20) public R<String> addressSaveOrUpdateParent(@RequestBody Recipient recipient) { if (tokenService.getLoginUser1() == null){ return R.tokenError("登录失效!"); @@ -447,11 +468,12 @@ * 删除收货地址 */ @GetMapping("/addressDelete") - @ApiOperation(value = "学习端-删除收货地址", tags = {"学习端-删除收货地址"}) + @ApiOperation(value = "删除收货地址", tags = {"学习端-收货地址"}) + @ApiOperationSupport(order = 34) @ApiImplicitParams({ - @ApiImplicitParam(value = "地址信息id", name = "id", dataType = "String", required = true) + @ApiImplicitParam(value = "地址信息id", name = "id", dataType = "Integer", required = true) }) - public R<String> addressDelete(@RequestParam String id) { + public R<String> addressDelete(@RequestParam Integer id) { return R.ok(recipientService.removeById(id) ? "删除成功!" : "删除失败!"); } @@ -460,8 +482,9 @@ */ @GetMapping("/addressDeleteParent") @ApiOperation(value = "家长端-删除收货地址", tags = {"家长端-删除收货地址"}) + @ApiOperationSupport(order = 21) @ApiImplicitParams({ - @ApiImplicitParam(value = "地址信息id", name = "id", dataType = "String", required = true) + @ApiImplicitParam(value = "地址信息id", name = "id", dataType = "Integer", required = true) }) public R<String> addressDeleteParent(@RequestParam Integer id) { return R.ok(recipientService.removeById(id) ? "删除成功!" : "删除失败!"); @@ -470,6 +493,7 @@ @GetMapping("/getOrderAddressParent") @ApiOperation(value = "获取修改订单收货地址", tags = {"家长端-获取修改订单收货地址"}) + @ApiOperationSupport(order = 22) public R<List<Recipient>> getOrderAddressParent() { if (tokenService.getLoginUser1() == null) { return R.tokenError("登录失效"); @@ -481,7 +505,8 @@ } @GetMapping("/getOrderAddress") - @ApiOperation(value = "获取修改订单收货地址", tags = {"学习端-获取修改订单收货地址"}) + @ApiOperation(value = "获取修改订单收货地址", tags = {"学习端-收货地址"}) + @ApiOperationSupport(order = 35) public R<List<Recipient>> getOrderAddress() { if (tokenService.getLoginUserStudy() == null) { return R.tokenError("登录失效"); @@ -511,7 +536,8 @@ } @GetMapping("/updateOrderAddress") - @ApiOperation(value = "修改订单收货地址", tags = {"学习端-修改订单收货地址"}) + @ApiOperation(value = "修改订单收货地址", tags = {"学习端-收货地址"}) + @ApiOperationSupport(order = 36) public R updateOrderAddress(@RequestParam Integer orderId, @RequestParam Integer recipientId) { if (tokenService.getLoginUserStudy() == null) { return R.tokenError("登录失效"); @@ -529,7 +555,8 @@ * 收货地址省市区三级联动 */ @GetMapping("/addressTree") - @ApiOperation(value = "学习端-收货地址省市区三级联动", tags = {"学习端-收货地址省市区三级联动"}) + @ApiOperation(value = "收货地址省市区三级联动", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 37) public R<List<Region>> addressTree() { return R.ok(regionService.addressTree()); } @@ -539,7 +566,8 @@ * 远程调用 */ @GetMapping("/goodRecommend") - @ApiOperation(value = "学习端-可兑换商品推荐", tags = {"学习端-可兑换商品推荐"}) + @ApiOperation(value = "可兑换商品推荐", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 38) public R<List<TGoodsVO>> goodRecommend() { return R.ok(goodsService.goodRecommend(tokenService.getLoginUserStudy().getUserid())); } @@ -548,7 +576,8 @@ * 获取所有商品分类 */ @GetMapping("/goodTypeStudy") - @ApiOperation(value = "学习端-商品分类列表", tags = {"学习端-商品分类列表"}) + @ApiOperation(value = "商品分类列表", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 39) public R<List<TGoodsType>> goodTypeStudy() { return R.ok(goodsTypeService.lambdaQuery().eq(TGoodsType::getIsDelete, 0).eq(TGoodsType::getIsDelete, 0).list()); } @@ -559,7 +588,8 @@ * @param goodId 商品id */ @GetMapping("/goodDetail") - @ApiOperation(value = "学习端-商品详情", tags = {"学习端-商城"}) + @ApiOperation(value = "商品详情", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 40) @ApiImplicitParams({ @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true) }) @@ -580,6 +610,7 @@ */ @GetMapping("/goodDetailParent") @ApiOperation(value = "商品详情", tags = {"家长端-商城"}) + @ApiOperationSupport(order = 24) @ApiImplicitParams({ @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true) }) @@ -601,6 +632,7 @@ */ @GetMapping("/redeemNow") @ApiOperation(value = "商城立即兑换", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 41) @ApiImplicitParams({ @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true) }) @@ -633,6 +665,7 @@ */ @GetMapping("/redeemNowParent") @ApiOperation(value = "商城立即兑换", tags = {"家长端-商城"}) + @ApiOperationSupport(order = 25) @ApiImplicitParams({ @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true) }) @@ -683,7 +716,8 @@ } @PostMapping("/goodExchangeStudy") - @ApiOperation(value = "学习端-商品兑换确认", tags = {"学习端-商品兑换确认"}) + @ApiOperation(value = "商品兑换确认", tags = {"学习端-商城"}) + @ApiOperationSupport(order = 42) public R goodExchangeStudy(@RequestBody GoodExchangeDTO goodExchange) { Recipient recipient = recipientService.getById(goodExchange.getRecipientId()); return goodsService.goodExchange(goodExchange, recipient); @@ -695,6 +729,7 @@ @PostMapping("/getOrderInfo/{id}") @ApiOperation(value = "查看详情", tags = {"后台-订单管理"}) + @ApiOperationSupport(order = 11) public R<TOrderVO> getOrderInfo(@PathVariable("id") Integer id) { TOrder byId = orderService.getById(id); TGoods byId2 = goodsService.getById(byId.getGoodsId()); @@ -709,6 +744,7 @@ @PostMapping("/confirm1") @ApiOperation(value = "确认发货", tags = {"后台-订单管理"}) + @ApiOperationSupport(order = 12) public R getGoodsInfo1(@RequestBody OrderDTO dto) { TOrder byId = orderService.getById(dto.getId()); byId.setState(2); @@ -721,6 +757,7 @@ @PostMapping("/listAll1") @ApiOperation(value = "列表查询", tags = {"后台-订单管理"}) + @ApiOperationSupport(order = 13) public R<PageInfo<TOrderVO>> listAll1(@RequestBody OrderQuery query) throws ParseException { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/Recipient.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/Recipient.java index 6420ebb..f64d5bc 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/Recipient.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/Recipient.java @@ -3,12 +3,11 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.extension.activerecord.Model; import com.ruoyi.common.core.web.domain.BaseModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.io.Serializable; +import javax.validation.constraints.NotNull; /** * <p> @@ -73,6 +72,7 @@ * 地址 */ @ApiModelProperty(value = "是否为默认地址0否1是") + @NotNull(message = "请选择:是否为默认收货地址") private Integer isDefault; @@ -151,15 +151,15 @@ @Override public String toString() { return "Recipient{" + - "id=" + id + - ", userId=" + userId + - ", recipient=" + recipient + - ", recipientPhone=" + recipientPhone + - ", province=" + province + - ", provinceCode=" + provinceCode + - ", city=" + city + - ", cityCode=" + cityCode + - ", address=" + address + - "}"; + "id=" + id + + ", userId=" + userId + + ", recipient=" + recipient + + ", recipientPhone=" + recipientPhone + + ", province=" + province + + ", provinceCode=" + provinceCode + + ", city=" + city + + ", cityCode=" + cityCode + + ", address=" + address + + "}"; } } diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/TOrder.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/TOrder.java index 4af4ab4..7511431 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/TOrder.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/TOrder.java @@ -80,6 +80,7 @@ /** * 消耗积分 */ + @ApiModelProperty(value = "消耗积分") private Integer integral; @ApiModelProperty(value = "收货人姓名") private String consigneeName; diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodQueryDTO.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodQueryDTO.java index 2f9f970..ff31f74 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodQueryDTO.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodQueryDTO.java @@ -3,6 +3,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -26,8 +27,10 @@ private String keywords; @ApiModelProperty(value = "页码,首页1", required = true) + @NotNull(message = "请选择:当前页码数!") private Integer pageNumber; @ApiModelProperty(value = "页条数", required = true) + @NotNull(message = "请选择:每页显示条数!") private Integer pageSize; } diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/TOrderMapper.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/TOrderMapper.java index 97c0b26..80a7147 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/TOrderMapper.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/TOrderMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.goods.domain.TOrder; import com.ruoyi.goods.dto.OrderQuery; +import com.ruoyi.goods.vo.ExchangeRecordVO; import com.ruoyi.goods.vo.TOrderVO; import org.apache.ibatis.annotations.Param; @@ -27,4 +28,12 @@ * @return 购买数量 */ Integer getGoodBuyNumber(@Param("goodId") Integer id); + + /** + * 兑换记录 + * + * @param userid 用户id + * @return 兑换记录 + */ + List<ExchangeRecordVO> exchangeRecord(Integer userid); } diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITOrderService.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITOrderService.java index e42ac3b..8c72635 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITOrderService.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITOrderService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.goods.domain.TOrder; import com.ruoyi.goods.dto.OrderQuery; +import com.ruoyi.goods.vo.ExchangeRecordVO; import com.ruoyi.goods.vo.TOrderVO; import java.util.List; @@ -28,4 +29,11 @@ */ Integer getGoodBuyNumber(Integer id); + /** + * 兑换记录 + * + * @param userid 用户id + * @return 兑换记录 + */ + List<ExchangeRecordVO> exchangeRecord(Integer userid); } diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java index 4fcf5a4..4eae5a5 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java @@ -4,7 +4,6 @@ import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.RedisConstants; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.exception.GlobalException; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.goods.domain.Recipient; import com.ruoyi.goods.domain.TGoods; @@ -26,6 +25,7 @@ import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -61,6 +61,7 @@ String key = String.format(RedisConstants.GOOD_STOCK, goods.getId()); RSemaphore semaphore = redissonClient.getSemaphore(key); semaphore.trySetPermits(goods.getSurplus()); + semaphore.expire(Constants.SIXTY, TimeUnit.MINUTES); return new GoodDetailVO(goods, recipient); } diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TOrderServiceImpl.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TOrderServiceImpl.java index 87020ec..f4777aa 100644 --- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TOrderServiceImpl.java @@ -5,6 +5,7 @@ import com.ruoyi.goods.dto.OrderQuery; import com.ruoyi.goods.mapper.TOrderMapper; import com.ruoyi.goods.service.ITOrderService; +import com.ruoyi.goods.vo.ExchangeRecordVO; import com.ruoyi.goods.vo.TOrderVO; import org.springframework.stereotype.Service; @@ -31,4 +32,9 @@ return baseMapper.getGoodBuyNumber(id); } + @Override + public List<ExchangeRecordVO> exchangeRecord(Integer userid) { + return baseMapper.exchangeRecord(userid); + } + } diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/vo/ExchangeRecordVO.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/vo/ExchangeRecordVO.java new file mode 100644 index 0000000..febcd8c --- /dev/null +++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/vo/ExchangeRecordVO.java @@ -0,0 +1,100 @@ +package com.ruoyi.goods.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author HJL + * @version 1.0 + * @since 2024-06-04 9:49 + */ +@Data +public class ExchangeRecordVO { + + /** + * 主键id + */ + @ApiModelProperty(value = "订单id") + private Integer orderId; + /** + * 订单编号 + */ + @ApiModelProperty(value = "订单编号") + private String orderNumber; + /** + * 用户id + */ + @ApiModelProperty(value = "下单用户id") + private Integer userId; + /** + * 下单时间 + */ + @ApiModelProperty(value = "下单时间") + private Date insertTime; + @ApiModelProperty(value = "收货时间") + private Date completeTime; + /** + * 商品id + */ + @ApiModelProperty(value = "商品id") + private Integer goodsId; + /** + * 商品名称 + */ + @ApiModelProperty(value = "商品名称") + private String goodsName; + + /** + * 商品封面图 + */ + @ApiModelProperty(value = "商品封面图") + private String coverImg; + /** + * 商品名称 + */ + @ApiModelProperty(value = "商品类型") + private List<String> goodsType; + /** + * 购买数量 + */ + @ApiModelProperty(value = "购买数量") + private Integer count; + /** + * 订单状态1待发货2已发货3已完成 + */ + @ApiModelProperty(value = "订单状态1待发货2已发货3已完成") + private Integer state; + /** + * 快递名称 + */ + @ApiModelProperty(value = "快递名称") + private String express; + /** + * 快递编号 + */ + @ApiModelProperty(value = "快递编号") + private String expressNumber; + /** + * 发货时间 + */ + @ApiModelProperty(value = "发货时间") + private Date expressTime; + /** + * 消耗积分 + */ + @ApiModelProperty(value = "消耗积分") + private Integer integral; + @ApiModelProperty(value = "收货人姓名") + private String consigneeName; + /** + * 消耗积分 + */ + @ApiModelProperty(value = "收货人电话") + private String consigneePhone; + @ApiModelProperty(value = "收货人地址") + private String consigneeAddress; + +} diff --git a/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml b/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml index f507fcb..35233b7 100644 --- a/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml +++ b/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml @@ -1,31 +1,40 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.goods.mapper.TOrderMapper"> - <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.goods.domain.TOrder"> - <id column="id" property="id" /> - <result column="orderNumber" property="orderNumber" /> - <result column="userId" property="userId" /> - <result column="insertTime" property="insertTime" /> - <result column="goodsId" property="goodsId" /> - <result column="count" property="count" /> - <result column="state" property="state" /> - <result column="express" property="express" /> - <result column="expressNumber" property="expressNumber" /> - <result column="expressTime" property="expressTime" /> - <result column="integral" property="integral" /> + <id column="id" property="id"/> + <result column="orderNumber" property="orderNumber"/> + <result column="userId" property="userId"/> + <result column="insertTime" property="insertTime"/> + <result column="goodsId" property="goodsId"/> + <result column="count" property="count"/> + <result column="state" property="state"/> + <result column="express" property="express"/> + <result column="expressNumber" property="expressNumber"/> + <result column="expressTime" property="expressTime"/> + <result column="integral" property="integral"/> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, orderNumber, userId, insertTime, goodsId, count, state, express, expressNumber, expressTime, integral + id, + orderNumber, + userId, + insertTime, + goodsId, + count, + state, + express, + expressNumber, + expressTime, + integral </sql> <select id="listAll" resultType="com.ruoyi.goods.vo.TOrderVO"> - select t1.*,t2.name as name + select t1.*, t2.name as name from t_order t1 - left join t_goods t2 on t1.goodsId = t2.id - where 1=1 + left join t_goods t2 on t1.goodsId = t2.id + where 1 = 1 <if test="null != req.state"> and t1.state = #{req.state} </if> @@ -40,6 +49,35 @@ </select> <select id="getGoodBuyNumber" resultType="java.lang.Integer"> - SELECT IFNULL(SUM(count), 0) FROM t_order WHERE goodsId = #{goodId} + SELECT IFNULL(SUM(count), 0) + FROM t_order + WHERE goodsId = #{goodId} + </select> + + <resultMap id="exchangRecordMap" type="com.ruoyi.goods.vo.ExchangeRecordVO"> + <id column="id" property="orderId"/> + <result column="orderNumber" property="orderNumber"/> + <result column="userId" property="userId"/> + <result column="completeTime" property="completeTime"/> + <result column="insertTime" property="insertTime"/> + <result column="goodsId" property="goodsId"/> + <result column="count" property="count"/> + <result column="state" property="state"/> + <result column="express" property="express"/> + <result column="expressNumber" property="expressNumber"/> + <result column="expressTime" property="expressTime"/> + <result column="integral" property="integral"/> + <result column="consigneePhone" property="consigneePhone"/> + <result column="consigneeAddress" property="consigneeAddress"/> + <result column="goodsName" property="goodsName"/> + <result column="consigneeName" property="consigneeName"/> + <result column="coverImg" property="coverImg"/> + </resultMap> + + <select id="exchangeRecord" resultMap="exchangRecordMap"> + select o.*, g.id as goodsId, g.name as goodsName,g.coverImg + from t_order o + left join t_goods g on o.goodsId = g.id + where o.userId = #{userid} </select> </mapper> diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java index c2b1ceb..a5360b7 100644 --- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java +++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java @@ -53,30 +53,34 @@ public AjaxResult getSysSet() { TSysSet byId = sysSetService.getById(1); SysSetVO sysSetVO = new SysSetVO(); - BeanUtils.copyProperties(byId,sysSetVO); + BeanUtils.copyProperties(byId, sysSetVO); return AjaxResult.success(sysSetVO); } + @ApiOperation(value = "保存系统设置", tags = {"后台-系统设置"}) @PostMapping(value = "/saveSysSet") public AjaxResult saveSysSet(SysSetVO vo) { TSysSet byId = sysSetService.getById(1); - BeanUtils.copyProperties(vo,byId); + BeanUtils.copyProperties(vo, byId); byId.setId(1); sysSetService.updateById(byId); return AjaxResult.success("保存成功"); } + @ApiOperation(value = "获取启动页", tags = {"后台-启动页管理"}) @PostMapping(value = "/getPage") public AjaxResult getPage() { List<TPage> list = pageService.list(); return AjaxResult.success(list); } + @ApiOperation(value = "获取注意事项、启动页", tags = {"家长端-获取注意事项、启动页"}) @PostMapping(value = "/getPage1") public R<List<TPage>> getPage1() { List<TPage> list = pageService.list(); return R.ok(list); } + @ApiOperation(value = "保存启动页", tags = {"后台-启动页管理"}) @PostMapping(value = "/setPage") public AjaxResult setPage(@RequestBody PageVO vo) { @@ -84,89 +88,92 @@ String page2 = vo.getPage2(); String page3 = vo.getPage3(); String page4 = vo.getPage4(); - if (StringUtils.hasLength(page1)){ + if (StringUtils.hasLength(page1)) { TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 1)); TPage tPage = new TPage(); - if (type == null){ + if (type == null) { tPage.setImg(page1); tPage.setType(1); pageService.save(tPage); - }else{ + } else { type.setImg(page1); pageService.updateById(type); } } - if (StringUtils.hasLength(page2)){ + if (StringUtils.hasLength(page2)) { TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 2)); TPage tPage = new TPage(); - if (type == null){ + if (type == null) { tPage.setImg(page2); tPage.setType(2); pageService.save(tPage); - }else{ + } else { type.setImg(page2); pageService.updateById(type); } } - if (StringUtils.hasLength(page3)){ + if (StringUtils.hasLength(page3)) { TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 3)); TPage tPage = new TPage(); - if (type == null){ + if (type == null) { tPage.setImg(page3); tPage.setType(3); pageService.save(tPage); - }else{ + } else { type.setImg(page3); pageService.updateById(type); } } - if (StringUtils.hasLength(page4)){ + if (StringUtils.hasLength(page4)) { TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 4)); - if (type == null){ + if (type == null) { TPage tPage = new TPage(); tPage.setImg(page4); tPage.setType(4); pageService.save(tPage); - }else{ + } else { type.setImg(page4); pageService.updateById(type); } } return AjaxResult.success("保存成功"); } + @PostMapping("/agreement") @ApiOperation(value = "协议", tags = {"后台-协议管理"}) public AjaxResult agreement(@RequestBody AggrementDTO dto) { TProtocol protocol = protocolService.getById(dto.getType()); - if(StringUtils.hasLength(dto.getContent())){ + if (StringUtils.hasLength(dto.getContent())) { protocol.setContent(dto.getContent()); protocolService.updateById(protocol); return AjaxResult.success("修改成功"); - }else{ + } else { return AjaxResult.success(protocol.getContent()); } } + @PostMapping("/agreement1/{type}") @ApiOperation(value = "协议", tags = {"家长端/学习端-获取协议"}) - public R<String> agreement1(@PathVariable("type") Integer type) { + public R<String> agreement1(@PathVariable("type") Integer type) { TProtocol protocol = protocolService.getOne(new QueryWrapper<TProtocol>() - .eq("type",type)); + .eq("type", type)); return R.ok(protocol.getContent()); } + @PostMapping("/useGuide") @ApiOperation(value = "使用指南-列表查询", tags = {"后台-使用指南"}) public AjaxResult<PageInfo<TUseGuide>> agreement(String title, Integer pageNumber, Integer pageSize) { QueryWrapper<TUseGuide> wrapper = new QueryWrapper<>(); - if (StringUtils.hasLength(title)){ - wrapper.like("title",title); + if (StringUtils.hasLength(title)) { + wrapper.like("title", title); } List<String> strings = new ArrayList<>(); strings.add("insertTime"); @@ -178,13 +185,14 @@ res.setTotal(useGuides.size()); return AjaxResult.success(res); } + @PostMapping("/useGuide1") @ApiOperation(value = "列表查询", tags = {"家长端-使用指南"}) public R<PageInfo<TUseGuide>> useGuide1(@RequestBody UseGuideQuery query) { query.setPageNumber((query.getPageNumber() - 1) * query.getPageSize()); QueryWrapper<TUseGuide> wrapper = new QueryWrapper<>(); - if (StringUtils.hasLength(query.getTitle())){ - wrapper.like("title",query.getTitle()); + if (StringUtils.hasLength(query.getTitle())) { + wrapper.like("title", query.getTitle()); } List<String> strings = new ArrayList<>(); strings.add("insertTime"); @@ -203,7 +211,7 @@ @PostMapping("/updateUseGuide") @ApiOperation(value = "使用指南-添加/编辑/查看详情", tags = {"使用指南"}) public AjaxResult<TUseGuide> updateUseGuide(@RequestBody UseGuidDTO dto) { - switch (dto.getType()){ + switch (dto.getType()) { case 1: TUseGuide useGuide = new TUseGuide(); useGuide.setTitle(dto.getTitle()); @@ -226,9 +234,10 @@ } return AjaxResult.success(new TUseGuide()); } + @DeleteMapping("/delete") @ApiOperation(value = "使用指南-删除", tags = {"使用指南"}) - public AjaxResult updateUseGuide( Integer id) { + public AjaxResult updateUseGuide(Integer id) { // TUseGuide useGuide2 = useGuideService.getById(id); useGuideService.removeById(id); return AjaxResult.success("删除成功"); @@ -240,5 +249,11 @@ return R.ok(sysSetService.lambdaQuery().one()); } + @ApiOperation(value = "获取正确及错误提示音效", tags = {"学习端-首页"}) + @GetMapping(value = "/promptVoice") + public R<TSysSet> promptVoice() { + return R.ok(sysSetService.lambdaQuery().eq(TSysSet::getDisabled, 0).one()); + } + } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java index 842680e..7803bfb 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java @@ -79,6 +79,8 @@ private TokenService tokenService; @Resource private ITSubjectRecordService subjectRecordService; + @Resource + private ManagementClient managementClient; @PostMapping("/storyList") // @ApiOperation(value = "配置学习类型选择故事", tags = {"题目管理"}) @@ -1210,17 +1212,17 @@ @ApiOperation(value = "个人中心-积分明细", tags = {"家长端"}) @ApiImplicitParams({ @ApiImplicitParam(value = "查询时间 格式yyyy-MM", name = "time", dataType = "Integer"), - @ApiImplicitParam(value = "页码", name = "pageNumber", dataType = "Integer", required = true), + @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true), @ApiImplicitParam(value = "每页显示条数", name = "pageSize", dataType = "Integer", required = true) }) public R<IPage<TIntegralRecord>> integralDetailParent(String time, - @RequestParam("pageNumber") Integer pageNumber, + @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) { if(tokenService.getLoginUser1() == null){ return R.tokenError("登录失效"); } - return R.ok(integralRecordService.integralDetail(new Page<>(pageNumber, pageSize), tokenService.getLoginUser1().getUserid(), time)); + return R.ok(integralRecordService.integralDetail(new Page<>(pageNum, pageSize), tokenService.getLoginUser1().getUserid(), time)); } /** @@ -1250,6 +1252,7 @@ integralRecord.setUpdateTime(new Date()); return R.ok(integralRecordService.save(integralRecord)); } + @GetMapping("/addIntegralDetail1") // @ApiOperation(value = "添加-积分明细", tags = {"添加-积分明细"}) @ApiImplicitParams({ @@ -1259,7 +1262,7 @@ public R addIntegralDetail1(@RequestParam("integral") String integral, @RequestParam("method") String method) { // 当前登录用户 LoginUserParent userStudy = tokenService.getLoginUser1(); - if (userStudy == null){ + if (userStudy == null) { return R.tokenError("登录失效"); } // 生成积分明细信息 @@ -1292,6 +1295,7 @@ } return R.ok(userService.updateById(user)); } + @GetMapping("/exchangeIntegral1") // @ApiOperation(value = "用户积分变动", tags = {"用户积分变动"}) public R<Boolean> exchangeIntegral1(@RequestParam("integral") Integer integral, @RequestParam("method") String method) { diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java index b82fcae..2d3f6df 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java @@ -104,6 +104,7 @@ @Autowired private PayMoneyUtil payMoneyUtil; + @PostMapping("/pay") @ApiOperation(value = "购买会员支付操作", tags = {"家长端-个人中心"}) @ApiImplicitParams({ @@ -132,6 +133,7 @@ } return AjaxResult.success(); } + @PostMapping("/order") @ApiOperation(value = "购买会员下单操作", tags = {"家长端-个人中心"}) @ApiImplicitParams({ @@ -661,9 +663,10 @@ */ @GetMapping("/userInfo") @ApiOperation(value = "用户详情", tags = {"学习端-用户详情"}) - public R<TUser> userInfo() { - - return R.ok(userService.lambdaQuery().eq(TUser::getId, tokenService.getLoginUserStudy().getUserid()).one()); + public R<UserPersonalCenterVO> userInfo() { + TUser user = userService.lambdaQuery().eq(TUser::getId, tokenService.getLoginUserStudy().getUserid()).one(); + TUserStudy userStudy = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, user.getId()).eq(TUserStudy::getDisabled, 0).one(); + return R.ok(new UserPersonalCenterVO(user, userStudy)); } @PostMapping("/deleteUser") diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecord.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecord.java index 26dc0db..75a9d06 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecord.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecord.java @@ -58,5 +58,4 @@ @ApiModelProperty(value = "已回答正确的题目id 多个逗号隔开") private String completeSubject; - } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserStudy.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserStudy.java index d23ecc1..6ab9508 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserStudy.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserStudy.java @@ -43,23 +43,28 @@ * 所属周目 */ @ApiModelProperty(value = "所属周目") - private Integer week;/** + private Integer week; + /** * 故事名称 */ @ApiModelProperty(value = "学习进度dayXX") - private Integer day;/** + private Integer day; + /** * 故事名称 */ @ApiModelProperty(value = "总学习时长 单位小时") - private Integer totalStudy;/** + private Integer totalStudy; + /** * 故事名称 */ @ApiModelProperty(value = "今日学习时长 单位小时") - private Integer todayStudy;/** + private Integer todayStudy; + /** * 故事名称 */ @ApiModelProperty(value = "本周学习时长") - private Integer weekStudy;/** + private Integer weekStudy; + /** * 故事名称 */ @ApiModelProperty(value = "本月学习时长") diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteGameDTO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteGameDTO.java index dbee09b..6a09955 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteGameDTO.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteGameDTO.java @@ -47,10 +47,4 @@ @ApiModelProperty("根据正确率计算可获得积分数量") private Integer availableIntegral; - /** - * 完成听故事、完成游戏、完成答题、完成每日学习、商城消费 - */ - @ApiModelProperty("完成听故事、完成游戏、完成答题、完成每日学习、商城消费") - private String method; - } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteStudyDTO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteStudyDTO.java index e04065c..5f17759 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteStudyDTO.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/CompleteStudyDTO.java @@ -3,6 +3,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; +import java.util.List; + /** * @author HJL * @version 1.0 @@ -12,16 +15,16 @@ public class CompleteStudyDTO { /** - * 积分数量 + * 题目id数组 */ - @ApiModelProperty("积分数量") - private Integer integral; + @ApiModelProperty("题目类型(1:听音选图;2:看图选音;3:归纳排除;4:有问有答;5:音图相配)") + private Integer type; /** - * 完成听故事、完成游戏、完成答题、完成每日学习、商城消费 + * 题目id数组 */ - @ApiModelProperty("完成听故事、完成游戏、完成答题、完成每日学习、商城消费、分享") - private String method; + @ApiModelProperty("题目id数组") + private List<Integer> studyIds; /** * 该学习是否完成 @@ -29,4 +32,11 @@ @ApiModelProperty("该学习是否完成(如果已完成再次进入学习并完成学习后,该字段传值 false)") private Boolean isComplete; + /** + * 学习时长 + */ + @ApiModelProperty("完成学习所用时长") + @NotNull(message = "本次学习时长不能为空!") + private Integer studyTime; + } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StudyWeekDTO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StudyWeekDTO.java index 3dd7944..709291f 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StudyWeekDTO.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StudyWeekDTO.java @@ -14,7 +14,7 @@ public class StudyWeekDTO extends StudyDTO { @ApiModelProperty("完成后可获积分数") - private Integer totalIntegral; + private Long totalIntegral; @ApiModelProperty("所属季度") private Integer quarter; diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyAnswerMapper.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyAnswerMapper.java index 7e3b886..2bcc8b6 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyAnswerMapper.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyAnswerMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.study.domain.TStudyAnswer; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +16,13 @@ */ public interface TStudyAnswerMapper extends BaseMapper<TStudyAnswer> { + /** + * 自主学习4-有问有答 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 有问有答 + */ + List<TStudyAnswer> questionsAndAnswers(@Param("quarter") Integer quarter, @Param("week") Integer week, @Param("day") Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyInductionMapper.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyInductionMapper.java index 6664408..ed17820 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyInductionMapper.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyInductionMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.study.domain.TStudyInduction; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +16,13 @@ */ public interface TStudyInductionMapper extends BaseMapper<TStudyInduction> { + /** + * 自主学习3-归纳排除 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 归纳排除 + */ + List<TStudyInduction> induceExclude(@Param("quarter") Integer quarter, @Param("week") Integer week, @Param("day") Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyListenMapper.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyListenMapper.java index 8c193e9..77a426a 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyListenMapper.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyListenMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.study.domain.TStudyListen; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +16,13 @@ */ public interface TStudyListenMapper extends BaseMapper<TStudyListen> { + /** + * 自主学习1-听音选图 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 听音选图 + */ + List<TStudyListen> listenSelectPicture(@Param("quarter") Integer quarter, @Param("week") Integer week, @Param("day") Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyLookMapper.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyLookMapper.java index 24de19b..5c87fb5 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyLookMapper.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyLookMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.study.domain.TStudyLook; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +16,13 @@ */ public interface TStudyLookMapper extends BaseMapper<TStudyLook> { + /** + * 自主学习2-看图选音 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 听音选图 + */ + List<TStudyLook> pictureSelectVoice(@Param("quarter") Integer quarter, @Param("week") Integer week, @Param("day") Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyPairMapper.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyPairMapper.java index e569271..458262c 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyPairMapper.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TStudyPairMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.study.domain.TStudyPair; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +16,13 @@ */ public interface TStudyPairMapper extends BaseMapper<TStudyPair> { + /** + * 自主学习5-音图相配 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 音图相配 + */ + List<TStudyPair> pictureMateVoice(@Param("quarter") Integer quarter, @Param("week") Integer week, @Param("day") Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyAnswerService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyAnswerService.java index c0b843a..b38ccf9 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyAnswerService.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyAnswerService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.study.domain.TStudyAnswer; +import java.util.List; + /** * <p> * 自主游戏 服务类 @@ -13,4 +15,13 @@ */ public interface ITStudyAnswerService extends IService<TStudyAnswer> { + /** + * 自主学习4-有问有答 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 有问有答 + */ + List<TStudyAnswer> questionsAndAnswers(Integer quarter, Integer week, Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyInductionService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyInductionService.java index 60a9ff5..b52d3f3 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyInductionService.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyInductionService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.study.domain.TStudyInduction; +import java.util.List; + /** * <p> * 自主游戏 服务类 @@ -13,4 +15,13 @@ */ public interface ITStudyInductionService extends IService<TStudyInduction> { + /** + * 自主学习3-归纳排除 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 归纳排除 + */ + List<TStudyInduction> induceExclude(Integer quarter, Integer week, Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyListenService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyListenService.java index 49c9482..202733f 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyListenService.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyListenService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.study.domain.TStudyListen; +import java.util.List; + /** * <p> * 自主游戏 服务类 @@ -13,4 +15,13 @@ */ public interface ITStudyListenService extends IService<TStudyListen> { + /** + * 自主学习1-听音选图 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 听音选图 + */ + List<TStudyListen> listenSelectPicture(Integer quarter, Integer week, Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyLookService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyLookService.java index 8562846..392cd76 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyLookService.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyLookService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.study.domain.TStudyLook; +import java.util.List; + /** * <p> * 自主游戏 服务类 @@ -13,4 +15,13 @@ */ public interface ITStudyLookService extends IService<TStudyLook> { + /** + * 自主学习2-看图选音 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 听音选图 + */ + List<TStudyLook> pictureSelectVoice(Integer quarter, Integer week, Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyPairService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyPairService.java index 65cb8c5..1e3e487 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyPairService.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyPairService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.study.domain.TStudyPair; +import java.util.List; + /** * <p> * 自主游戏 服务类 @@ -13,4 +15,13 @@ */ public interface ITStudyPairService extends IService<TStudyPair> { + /** + * 自主学习5-音图相配 + * + * @param quarter 季度 + * @param week 周目 + * @param day 所属day + * @return 音图相配 + */ + List<TStudyPair> pictureMateVoice(Integer quarter, Integer week, Integer day); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java index 512b46c..ea1713a 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java @@ -31,10 +31,9 @@ * * @param userId 用户id * @param week 周目 - * @param day 所属day * @return 学习信息 */ - TUserStudy studySchedule(String userId, Integer week, Integer day); + TUserStudy studySchedule(String userId, Integer week); /** * 自主学习1-听音选图 @@ -93,6 +92,6 @@ * @param pair 音图相配 * @return 题目信息 */ - StudyPairResultVO pictureMateVoice(Integer week, Integer day, TStudyPair pair); + StudyPairResultVO pictureMateVoice(Integer week, Integer day, List<TStudyPair> pair); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserStudyService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserStudyService.java index edfba55..7998709 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserStudyService.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserStudyService.java @@ -1,7 +1,11 @@ package com.ruoyi.study.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.study.domain.TStudy; import com.ruoyi.study.domain.TUserStudy; +import com.ruoyi.study.dto.CompleteStudyDTO; + +import java.util.List; /** * <p> @@ -18,15 +22,24 @@ * * @param userId 用户id * @param week 周目 - * @param day 所属day * @return 学习信息 */ - TUserStudy studySchedule(String userId, Integer week, Integer day); + TUserStudy studySchedule(String userId, Integer week); /** - * 根据条件清空用户学习时长 + * 定时任务 清空用户学习时长 * * @param time 今日/本周/本月 */ void resettingStudyRecord(String time); + + /** + * 更改学习进度 + * + * @param studyList 学习配置列表 + * @param userId 用户id + * @param completeStudy 学习情况 + * @return 更改结果 + */ + Boolean exchangeStudyRecord(List<TStudy> studyList, Integer userId, CompleteStudyDTO completeStudy); } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java index 1e81be3..9a5dc18 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java @@ -31,7 +31,8 @@ return availableIntegral; } else { // 积分明细不为空,根据正确率及已获取积分数量计算本次答题可获取的积分数量 - List<Integer> integralList = integralRecordList.stream().map(TIntegralRecord::getIntegral).collect(Collectors.toList()).stream().map(Integer::parseInt).collect(Collectors.toList()); + List<Integer> integralList = integralRecordList.stream().map(TIntegralRecord::getIntegral).collect(Collectors.toList()) + .stream().map(Integer::parseInt).collect(Collectors.toList()); int sumIntegral = integralList.stream().mapToInt(Integer::intValue).sum(); if (availableIntegral > sumIntegral) { return availableIntegral - sumIntegral; diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyAnswerServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyAnswerServiceImpl.java index 20c7816..f38b817 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyAnswerServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyAnswerServiceImpl.java @@ -6,6 +6,8 @@ import com.ruoyi.study.service.ITStudyAnswerService; import org.springframework.stereotype.Service; +import java.util.List; + /** * <p> * 自主游戏 服务实现类 @@ -17,4 +19,8 @@ @Service public class TStudyAnswerServiceImpl extends ServiceImpl<TStudyAnswerMapper, TStudyAnswer> implements ITStudyAnswerService { + @Override + public List<TStudyAnswer> questionsAndAnswers(Integer quarter, Integer week, Integer day) { + return baseMapper.questionsAndAnswers(quarter, week, day); + } } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyInductionServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyInductionServiceImpl.java index 1880d79..d82c135 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyInductionServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyInductionServiceImpl.java @@ -6,6 +6,8 @@ import com.ruoyi.study.service.ITStudyInductionService; import org.springframework.stereotype.Service; +import java.util.List; + /** * <p> * 自主游戏 服务实现类 @@ -17,4 +19,8 @@ @Service public class TStudyInductionServiceImpl extends ServiceImpl<TStudyInductionMapper, TStudyInduction> implements ITStudyInductionService { + @Override + public List<TStudyInduction> induceExclude(Integer quarter, Integer week, Integer day) { + return baseMapper.induceExclude(quarter, week, day); + } } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyListenServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyListenServiceImpl.java index c343d8b..96da8a0 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyListenServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyListenServiceImpl.java @@ -6,6 +6,8 @@ import com.ruoyi.study.service.ITStudyListenService; import org.springframework.stereotype.Service; +import java.util.List; + /** * <p> * 自主游戏 服务实现类 @@ -17,4 +19,8 @@ @Service public class TStudyListenServiceImpl extends ServiceImpl<TStudyListenMapper, TStudyListen> implements ITStudyListenService { + @Override + public List<TStudyListen> listenSelectPicture(Integer quarter, Integer week, Integer day) { + return baseMapper.listenSelectPicture(quarter, week, day); + } } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyLookServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyLookServiceImpl.java index 9591d1d..5edc889 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyLookServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyLookServiceImpl.java @@ -6,6 +6,8 @@ import com.ruoyi.study.mapper.TStudyLookMapper; import org.springframework.stereotype.Service; +import java.util.List; + /** * <p> * 自主游戏 服务实现类 @@ -17,4 +19,8 @@ @Service public class TStudyLookServiceImpl extends ServiceImpl<TStudyLookMapper, TStudyLook> implements ITStudyLookService { + @Override + public List<TStudyLook> pictureSelectVoice(Integer quarter, Integer week, Integer day) { + return baseMapper.pictureSelectVoice(quarter, week, day); + } } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyPairServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyPairServiceImpl.java index bc648a9..a8e8e6d 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyPairServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyPairServiceImpl.java @@ -6,6 +6,8 @@ import com.ruoyi.study.mapper.TStudyPairMapper; import org.springframework.stereotype.Service; +import java.util.List; + /** * <p> * 自主游戏 服务实现类 @@ -17,4 +19,8 @@ @Service public class TStudyPairServiceImpl extends ServiceImpl<TStudyPairMapper, TStudyPair> implements ITStudyPairService { + @Override + public List<TStudyPair> pictureMateVoice(Integer quarter, Integer week, Integer day) { + return baseMapper.pictureMateVoice(quarter, week, day); + } } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java index 411eeb2..e1cb646 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java @@ -51,8 +51,8 @@ } @Override - public TUserStudy studySchedule(String userId, Integer week, Integer day) { - return userStudyService.studySchedule(userId, week, day); + public TUserStudy studySchedule(String userId, Integer week) { + return userStudyService.studySchedule(userId, week); } @Override @@ -73,40 +73,81 @@ @Override public StudyListenResultVO listenSelectPicture(Integer week, Integer day, List<TStudyListen> studyListens) { + if (studyListens.isEmpty()) { + throw new GlobalException("当前学习周目题目数量不足!"); + } // 随机获取一组题 Random rand = new Random(); - TStudyListen data = studyListens.get(rand.nextInt(studyListens.size())); + TStudyListen data; + if (studyListens.size() == 1) { + data = studyListens.get(0); + } else { + data = studyListens.get(rand.nextInt(studyListens.size())); + } List<TSubject> subjectList = getSubjects(data.getSubject().split(",")); return new StudyListenResultVO(data, subjectList); } @Override public StudyLookResultVO pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList) { + if (lookList.isEmpty()) { + throw new GlobalException("当前学习周目题目数量不足!"); + } // 随机获取一组题 Random rand = new Random(); - TStudyLook data = lookList.get(rand.nextInt(lookList.size())); + TStudyLook data; + if (lookList.size() == 1) { + data = lookList.get(0); + } else { + data = lookList.get(rand.nextInt(lookList.size())); + } List<TSubject> subjectList = getSubjects(data.getSubject().split(",")); return new StudyLookResultVO(data, subjectList); } @Override public StudyInductionResultVO induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList) { + if (inductionList.isEmpty()) { + throw new GlobalException("当前学习周目题目数量不足!"); + } // 随机获取一组题 Random rand = new Random(); - TStudyInduction data = inductionList.get(rand.nextInt(inductionList.size())); - List<TSubject> subjectList = getSubjects(data.getSubject().split(",")); + TStudyInduction data; + if (inductionList.size() == 1) { + data = inductionList.get(0); + } else { + data = inductionList.get(rand.nextInt(inductionList.size())); + } + String[] ids = data.getSubject().split(","); + List<TSubject> subjectList = new ArrayList<>(); + for (String id : ids) { + if (id.startsWith("-")) { + id = id.replace("-", ""); + } + subjectList.add(subjectService.getById(id)); + } return new StudyInductionResultVO(data, subjectList); } @Override public StudyAnswerResultVO questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList) { + if (answerList.isEmpty()) { + throw new GlobalException("当前学习周目题目数量不足!"); + } // 随机获取一组题 Random rand = new Random(); - TStudyAnswer data = answerList.get(rand.nextInt(answerList.size())); + TStudyAnswer data; + TStudyAnswer dataTwo; + if (answerList.size() == 1) { + data = answerList.get(0); + dataTwo = answerList.get(0); + } else { + data = answerList.get(rand.nextInt(answerList.size())); + dataTwo = answerList.get(rand.nextInt(answerList.size())); + } AnswerVO one = new AnswerVO(); BeanUtils.copyProperties(data, one); answerList.remove(data); - TStudyAnswer dataTwo = answerList.get(rand.nextInt(answerList.size())); AnswerVO two = new AnswerVO(); BeanUtils.copyProperties(dataTwo, two); // 获取问题题目 和 回答题目 @@ -127,9 +168,20 @@ } @Override - public StudyPairResultVO pictureMateVoice(Integer week, Integer day, TStudyPair pair) { - List<TSubject> subjectList = getSubjects(pair.getSubject().split(",")); - return new StudyPairResultVO(pair, subjectList); + public StudyPairResultVO pictureMateVoice(Integer week, Integer day, List<TStudyPair> pair) { + if (pair.isEmpty()) { + throw new GlobalException("当前学习周目题目数量不足!"); + } + // 随机获取一组题 + Random rand = new Random(); + TStudyPair data; + if (pair.size() == 1) { + data = pair.get(0); + } else { + data = pair.get(rand.nextInt(pair.size())); + } + List<TSubject> subjectList = getSubjects(data.getSubject().split(",")); + return new StudyPairResultVO(data, subjectList); } /** @@ -139,7 +191,13 @@ * @return 图片及语音集合 */ private List<TSubject> getSubjects(String[] ids) { - return subjectService.lambdaQuery().in(TSubject::getId, Arrays.asList(ids)).list(); + List<TSubject> list = new ArrayList<>(); + for (String id : ids) { + TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id) + .eq(TSubject::getDisabled, 0).one(); + list.add(data); + } + return list; } } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java index 0abadbb..2116119 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java @@ -1,14 +1,19 @@ package com.ruoyi.study.service.impl; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.study.domain.TStudy; import com.ruoyi.study.domain.TUserStudy; +import com.ruoyi.study.dto.CompleteStudyDTO; import com.ruoyi.study.mapper.TUserStudyMapper; import com.ruoyi.study.service.ITUserStudyService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * <p> @@ -21,11 +26,26 @@ @Service public class TUserStudyServiceImpl extends ServiceImpl<TUserStudyMapper, TUserStudy> implements ITUserStudyService { + /** + * 所属day map + */ + private static final Map<String, Integer> DAY_MAP = new HashMap<>(12); + + static { + DAY_MAP.put(Constants.ONE_STR, Constants.TWO); + DAY_MAP.put(Constants.TWO_STR, Constants.THREE); + DAY_MAP.put(Constants.THREE_STR, Constants.FOUR); + DAY_MAP.put(Constants.FOUR_STR, Constants.FIVE); + DAY_MAP.put(Constants.FIVE_STR, Constants.ONE); +// DAY_MAP.put(Constants.SIX_STR, Constants.SEVEN); +// DAY_MAP.put(Constants.SEVEN_STR, Constants.ONE); + } + @Override - public TUserStudy studySchedule(String userId, Integer week, Integer day) { - return lambdaQuery().eq(TUserStudy::getUserId, userId) - .eq(TUserStudy::getDay, day).eq(TUserStudy::getWeek, week) - .eq(TUserStudy::getDisabled, 0).one(); + public TUserStudy studySchedule(String userId, Integer week) { + LambdaQueryChainWrapper<TUserStudy> wrapper = lambdaQuery().eq(TUserStudy::getUserId, userId); + wrapper = null != week ? wrapper.eq(TUserStudy::getWeek, week) : wrapper; + return wrapper.eq(TUserStudy::getDisabled, 0).one(); } @Override @@ -44,6 +64,7 @@ break; default: } + // 自旋重试 int number = 0; boolean update = this.updateBatchById(list); while (!update) { @@ -54,4 +75,55 @@ number++; } } + + @Override + public Boolean exchangeStudyRecord(List<TStudy> studyList, Integer userId, CompleteStudyDTO completeStudy) { + Integer studyTime = completeStudy.getStudyTime(); + // 学习记录 + TUserStudy userStudyRecord = lambdaQuery().eq(TUserStudy::getUserId, userId) + .eq(TUserStudy::getDisabled, 0).one(); + Integer type = completeStudy.getType(); + if (Constants.ONE.equals(type)) { + userStudyRecord.setListen(Constants.ONE_HUNDRED); + } else if (Constants.TWO.equals(type)) { + userStudyRecord.setLook(Constants.ONE_HUNDRED); + } else if (Constants.THREE.equals(type)) { + userStudyRecord.setInduction(Constants.ONE_HUNDRED); + } else if (Constants.FOUR.equals(type)) { + userStudyRecord.setAnswer(Constants.ONE_HUNDRED); + } else if (Constants.FIVE.equals(type)) { + // 类型五,说明当前day已经全部完成,更新学习记录的 day + Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay())); + userStudyRecord.setDay(nextDay); + // 学习day已切换更新学习进度及学习时长 + userStudyRecord.setListen(Constants.ZERO); + userStudyRecord.setLook(Constants.ZERO); + userStudyRecord.setInduction(Constants.ZERO); + userStudyRecord.setAnswer(Constants.ZERO); + userStudyRecord.setPair(Constants.ZERO); + // 下一day为 1说明该周目已完成,应更改为下一周目 + if (Constants.ONE.equals(nextDay)) { + // 获取下一周目信息 + int index = -1; + for (int i = 0; i < studyList.size(); i++) { + if (studyList.get(i).getWeek().equals(userStudyRecord.getWeek())) { + index = i; + break; + } + } + int nextIndex = (index + 1) % studyList.size(); + TStudy nextStudy = studyList.get(nextIndex); + // 更新学习进度及学习时长 + userStudyRecord.setWeek(nextStudy.getWeek()); + } + } + // 更新学习时长 + userStudyRecord.setTotalStudy(userStudyRecord.getTotalStudy() + studyTime); + userStudyRecord.setTodayStudy(userStudyRecord.getTodayStudy() + studyTime); + userStudyRecord.setWeekStudy(userStudyRecord.getWeekStudy() + studyTime); + userStudyRecord.setMonthStudy(userStudyRecord.getMonthStudy() + studyTime); + // 更新学习进度及学习时长 + return this.updateById(userStudyRecord); + } + } diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/PromptVoiceVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/PromptVoiceVO.java new file mode 100644 index 0000000..a90e435 --- /dev/null +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/PromptVoiceVO.java @@ -0,0 +1,24 @@ +package com.ruoyi.study.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author HJL + * @version 1.0 + * @since 2024-06-04 17:00 + */ +@Data +public class PromptVoiceVO { + + @ApiModelProperty("正确音效") + private String correct; + + @ApiModelProperty("错误音效") + private String error; + + public PromptVoiceVO(String correct, String error) { + this.correct = correct; + this.error = error; + } +} diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserPersonalCenterVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserPersonalCenterVO.java new file mode 100644 index 0000000..3f3e2b3 --- /dev/null +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserPersonalCenterVO.java @@ -0,0 +1,26 @@ +package com.ruoyi.study.vo; + +import com.ruoyi.study.domain.TUser; +import com.ruoyi.study.domain.TUserStudy; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author HJL + * @version 1.0 + * @since 2024-06-04 9:38 + */ +@Data +public class UserPersonalCenterVO { + + @ApiModelProperty("用户信息") + private TUser user; + + @ApiModelProperty("用户学习信息(学习时长、学习进度)") + private TUserStudy userStudy; + + public UserPersonalCenterVO(TUser user, TUserStudy userStudy) { + this.user = user; + this.userStudy = userStudy; + } +} diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyAnswerMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyAnswerMapper.xml index f30666a..14d7aca 100644 --- a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyAnswerMapper.xml +++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyAnswerMapper.xml @@ -2,5 +2,16 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.study.mapper.TStudyAnswerMapper"> - + <select id="questionsAndAnswers" resultType="com.ruoyi.study.domain.TStudyAnswer"> + select sl.* + from t_study_answer sl + left join t_study s on sl.studyId = s.id + <where> + sl.disabled = 0 + and s.disabled = 0 + and sl.day = #{day} + and sl.week = #{week} + and s.quarter = #{quarter} + </where> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyInductionMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyInductionMapper.xml index e17f000..b6e5a1c 100644 --- a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyInductionMapper.xml +++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyInductionMapper.xml @@ -2,6 +2,16 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.study.mapper.TStudyInductionMapper"> - - + <select id="induceExclude" resultType="com.ruoyi.study.domain.TStudyInduction"> + select sl.* + from t_study_induction sl + left join t_study s on sl.studyId = s.id + <where> + sl.disabled = 0 + and s.disabled = 0 + and sl.day = #{day} + and sl.week = #{week} + and s.quarter = #{quarter} + </where> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyListenMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyListenMapper.xml index eba62c3..55b9e2f 100644 --- a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyListenMapper.xml +++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyListenMapper.xml @@ -2,6 +2,13 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.study.mapper.TStudyListenMapper"> - - + <select id="listenSelectPicture" resultType="com.ruoyi.study.domain.TStudyListen"> + select sl.* + from t_study_listen sl + left join t_study s on sl.studyId = s.id + <where> + sl.disabled = 0 and s.disabled = 0 + and sl.day = #{day} and sl.week = #{week} and s.quarter = #{quarter} + </where> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyLookMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyLookMapper.xml index 1106503..b2a3249 100644 --- a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyLookMapper.xml +++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyLookMapper.xml @@ -2,5 +2,13 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.study.mapper.TStudyLookMapper"> - + <select id="pictureSelectVoice" resultType="com.ruoyi.study.domain.TStudyLook"> + select sl.* + from t_study_look sl + left join t_study s on sl.studyId = s.id + <where> + sl.disabled = 0 and s.disabled = 0 + and sl.day = #{day} and sl.week = #{week} and s.quarter = #{quarter} + </where> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyMapper.xml index 8767c40..b4c83f5 100644 --- a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyMapper.xml +++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyMapper.xml @@ -25,7 +25,8 @@ COALESCE(SUM(g.integral), 0) AS totalIntegral, s.week, s.title, - s.quarter,s.id + s.quarter, + s.id FROM t_study s LEFT JOIN t_study_answer sa ON s.id = sa.studyId LEFT JOIN t_study_induction si ON s.id = si.studyId @@ -34,6 +35,14 @@ LEFT JOIN t_study_pair sp ON s.id = sp.studyId LEFT JOIN t_story_listen sl ON s.id = sl.studyId LEFT JOIN t_game g ON s.id = g.studyId - GROUP BY s.week, s.title, s.quarter,s.id; + <where> + <if test="quarter != null"> + s.quarter = #{quarter} + </if> + <if test="type != null"> + and s.type = #{type} + </if> + </where> + GROUP BY s.week, s.title, s.quarter, s.id; </select> </mapper> diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyPairMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyPairMapper.xml index 347dae4..8d4fba8 100644 --- a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyPairMapper.xml +++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStudyPairMapper.xml @@ -2,6 +2,16 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.study.mapper.TStudyPairMapper"> - - + <select id="pictureMateVoice" resultType="com.ruoyi.study.domain.TStudyPair"> + select sl.* + from t_study_pair sl + left join t_study s on sl.studyId = s.id + <where> + sl.disabled = 0 + and s.disabled = 0 + and sl.day = #{day} + and sl.week = #{week} + and s.quarter = #{quarter} + </where> + </select> </mapper> -- Gitblit v1.7.1