ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyAnswerVO.java
@@ -13,4 +13,10 @@ private Integer integral; @ApiModelProperty(value = "题目类型 1 = 问题 2=回答") private Integer type; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; @ApiModelProperty(value = "问题题目是否为答案图片 0否1是 为0 那么回答题目是答案图片") private Integer isAnswer; } ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyInductionVO.java
@@ -11,4 +11,8 @@ private String name; @ApiModelProperty(value = "可获积分") private Integer integral; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyListenVO.java
@@ -11,4 +11,9 @@ private String name; @ApiModelProperty(value = "可获积分") private Integer integral; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyLookVO.java
@@ -13,4 +13,8 @@ private Integer integral; @ApiModelProperty(value = "排序 逗号隔开 与题组名称位置对应") private String sort; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyPairVO.java
@@ -11,4 +11,8 @@ private String name; @ApiModelProperty(value = "可获积分") private Integer integral; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
@@ -41,8 +41,10 @@ @ApiModelProperty(value = "部门id") @TableField("dept_id") private Long deptId; @TableField(exist = false) @ApiModelProperty(value = "所属部门") private String deptName; @TableField(exist = false) @ApiModelProperty(value = "所属权限") private String roleName; /** 用户账号 */ ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -44,8 +44,9 @@ ServerHttpRequest.Builder mutate = request.mutate(); String url = request.getURI().getPath(); String trim = url.trim(); // 跳过不需要验证的路径 if (StringUtils.matches(url, ignoreWhite.getWhites())) { if (StringUtils.matches(trim, ignoreWhite.getWhites())) { return chain.filter(exchange); } String token = getToken(request); ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -126,15 +126,7 @@ role.setCreateBy(SecurityUtils.getUsername()); role.setCreateTime(new Date()); roleService.insertRole(role); ArrayList<SysRoleMenu> sysRoleMenus = new ArrayList<>(); List<Long> menuIds = dto.getMenuIds(); for (Long menuId : menuIds) { SysRoleMenu sysRoleMenu = new SysRoleMenu(); sysRoleMenu.setMenuId(menuId); sysRoleMenu.setRoleId(role.getRoleId()); sysRoleMenus.add(sysRoleMenu); } sysRoleMenuMapper.batchRoleMenu(sysRoleMenus); return AjaxResult.success(); } ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/Region.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -19,6 +20,7 @@ */ @Data @TableName("t_region") @ApiModel(value = "省市区实体") public class Region { /** * 主键 @@ -49,6 +51,7 @@ */ @TableField(exist = false) @JsonInclude(JsonInclude.Include.NON_EMPTY) @ApiModelProperty("子集") private List<Region> children = new ArrayList<>(); } ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TOrderController.java
@@ -3,10 +3,12 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.goods.api.domain.TGoods; import com.ruoyi.goods.api.domain.TOrder; import com.ruoyi.management.domain.TUser; import com.ruoyi.management.dto.OrderDTO; import com.ruoyi.management.dto.OrderQuery; import com.ruoyi.management.service.ITGoodsService; import com.ruoyi.management.service.ITOrderService; import com.ruoyi.management.service.ITUserService; import com.ruoyi.management.vo.TOrderVO; @@ -18,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -36,14 +40,19 @@ private ITOrderService tOrderService; @Autowired private ITUserService userService; @Autowired private ITGoodsService goodsService; @ResponseBody @PostMapping("/listAll") @ApiOperation(value = "列表查询", tags = {"后台-订单管理"}) public AjaxResult<PageInfo<TOrderVO>> listAll(OrderQuery query) { public AjaxResult<PageInfo<TOrderVO>> listAll(OrderQuery query) throws ParseException { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (query.getEndTime()!=null){ query.getEndTime().setHours(23); query.getEndTime().setMinutes(59); query.getEndTime().setSeconds(59); Date parse = format.parse(query.getStartTime()); Date parse1 = format.parse(query.getEndTime()); query.setStartTime1(parse); query.setEndTime1(parse1); } List<TOrderVO> list = tOrderService.listAll(query); PageInfo<TOrderVO> res = new PageInfo<>(query.getPageNumber(), query.getPageSize()); @@ -55,7 +64,9 @@ @ApiOperation(value = "查看详情", tags = {"后台-订单管理"}) public AjaxResult<TOrderVO> getGoodsInfo(Integer id) { TOrder byId = tOrderService.getById(id); TGoods byId2 = goodsService.getById(byId.getGoodsId()); TOrderVO tGoodsVO = new TOrderVO(); tGoodsVO.setName(byId2.getName()); BeanUtils.copyProperties(byId,tGoodsVO); TUser byId1 = userService.getById(byId.getUserId()); tGoodsVO.setUserName(byId1.getName()); @@ -67,6 +78,7 @@ @ApiOperation(value = "确认发货", tags = {"后台-订单管理"}) public AjaxResult<TOrderVO> getGoodsInfo(OrderDTO dto) { TOrder byId = tOrderService.getById(dto.getId()); byId.setState(2); byId.setExpress(dto.getExpress()); byId.setExpressNumber(dto.getExpressNumber()); byId.setExpressTime(new Date()); ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java
@@ -79,12 +79,63 @@ } @ApiOperation(value = "保存启动页", tags = {"后台-启动页管理"}) @PostMapping(value = "/setPage") public AjaxResult setPage(PageVO vo) { for (TPage tPage : vo.getList()) { if (tPage.getId() == null){ public AjaxResult setPage(@RequestBody PageVO vo) { String page1 = vo.getPage1(); String page2 = vo.getPage2(); String page3 = vo.getPage3(); String page4 = vo.getPage4(); if (StringUtils.hasLength(page1)){ TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 1)); TPage tPage = new TPage(); if (type == null){ tPage.setImg(page1); tPage.setType(1); pageService.save(tPage); }else { pageService.updateById(tPage); type.setImg(page1); pageService.updateById(type); } } if (StringUtils.hasLength(page2)){ TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 2)); TPage tPage = new TPage(); if (type == null){ tPage.setImg(page2); tPage.setType(2); pageService.save(tPage); }else{ type.setImg(page2); pageService.updateById(type); } } if (StringUtils.hasLength(page3)){ TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 3)); TPage tPage = new TPage(); if (type == null){ tPage.setImg(page3); tPage.setType(3); pageService.save(tPage); }else{ type.setImg(page3); pageService.updateById(type); } } if (StringUtils.hasLength(page4)){ TPage type = pageService.getOne(new QueryWrapper<TPage>() .eq("type", 4)); if (type == null){ TPage tPage = new TPage(); tPage.setImg(page4); tPage.setType(4); pageService.save(tPage); }else{ type.setImg(page4); pageService.updateById(type); } } return AjaxResult.success("保存成功"); ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
@@ -158,7 +158,6 @@ @PostMapping("/vipOrderList") @ApiOperation(value = "列表查询", tags = {"会员管理"}) public AjaxResult<PageInfo<VipOrderVO>> vipOrderList(AppUserQuery query) { PageInfo<VipOrderVO> data = studyClient.vipOrderList(query).getData(); return AjaxResult.success(data); } ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/dto/OrderQuery.java
@@ -18,9 +18,13 @@ @ApiModelProperty(value = "联系电话") private String phone; @ApiModelProperty(value = "下单开始时间") private Date startTime; private String startTime; @ApiModelProperty(value = "下单结束时间") private Date endTime; private String endTime; @ApiModelProperty(value = "下单开始时间") private Date startTime1; @ApiModelProperty(value = "下单结束时间") private Date endTime1; @ApiModelProperty(value = "状态1待发货 2已发货 3已完成") private Integer state; @ApiModelProperty(value = "页码,首页1", required = true) ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/vo/PageVO.java
@@ -11,6 +11,12 @@ @ApiModel("系统设置VO") @Data public class PageVO { @ApiModelProperty("页面") private List<TPage> list; @ApiModelProperty("学习") private String page1; @ApiModelProperty("家长手机") private String page2; @ApiModelProperty("家长平板") private String page3; @ApiModelProperty("注意事项") private String page4; } ruoyi-service/ruoyi-management/src/main/resources/mapper/management/src/main/resources/mapper/TOrderMapper.xml
@@ -22,8 +22,9 @@ id, orderNumber, userId, insertTime, goodsId, count, state, express, expressNumber, expressTime, integral </sql> <select id="listAll" resultType="com.ruoyi.management.vo.TOrderVO"> select t1.*,t2.`name` as userName,t2.phone as phone select t1.*,t2.`name` as userName,t2.phone as phone,t3.name as name from t_order t1 left join t_goods t3 on t1.goodsId = t3.id left join t_user t2 on t1.userId = t2.id where 1=1 <if test="null != req.state"> @@ -39,7 +40,7 @@ and t2.phone like CONCAT('%', #{req.phone}, '%') </if> <if test="null != req.startTime"> and t1.insertTime between #{req.startTime} and #{req.endTime} and t1.insertTime between #{req.startTime1} and #{req.endTime1} </if> order by t1.insertTime desc </select> ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
@@ -268,6 +268,7 @@ TStudyLook tStudyLook = new TStudyLook(); tStudyLook.setStudyId(one.getId()); tStudyLook.setDay(day); tStudyLook.setSort(studyLookDTO.getSort()); tStudyLook.setSubject(studyLookDTO.getSubject()); tStudyLook.setIntegral(studyLookDTO.getIntegral()); tStudyLook.setWeek(week); @@ -287,6 +288,7 @@ tStudyInduction.setIntegral(studyInductionDTO.getIntegral()); tStudyInduction.setWeek(week); tStudyInduction.setIsVip(studyInductionDTO.getIsVip()); studyInductionService.save(tStudyInduction); } studyAnswerService.remove(new QueryWrapper<TStudyAnswer>() .eq("studyId", one.getId()) @@ -440,6 +442,8 @@ String string = temp.toString(); studyListenVO.setName(string.substring(0, string.length() - 1)); studyListenVO.setIntegral(tStudyListen.getIntegral()); studyListenVO.setSubject(tStudyListen.getSubject()); studyListenVO.setIsVip(tStudyListen.getIsVip()); listenVOS.add(studyListenVO); } // 看音选图 @@ -465,6 +469,8 @@ studyLookVO1.setName(string.substring(0, string.length() - 1)); studyLookVO1.setSort(string1.substring(0, string1.length() - 1)); studyLookVO1.setIntegral(tStudyLook.getIntegral()); studyLookVO1.setSubject(tStudyLook.getSubject()); studyLookVO1.setIsVip(tStudyLook.getIsVip()); lookVOS.add(studyLookVO1); } // 归纳排除 @@ -477,17 +483,14 @@ StudyInductionVO studyInductionVO = new StudyInductionVO(); for (String s : tStudyInduction.getSubject().split(",")) { String replace = s.replace("-", ""); if (s.contains("-")) { TSubject byId = subjectService.getById(replace); names.append("-").append(byId.getName()).append(","); } else { TSubject byId = subjectService.getById(s); names.append(byId.getName()).append(","); } } String string = names.toString(); studyInductionVO.setName(string.substring(0, string.length() - 1)); studyInductionVO.setIntegral(tStudyInduction.getIntegral()); studyInductionVO.setSubject(tStudyInduction.getSubject()); studyInductionVO.setIsVip(tStudyInduction.getIsVip()); inductionVOS.add(studyInductionVO); } // 有问有答 @@ -499,18 +502,21 @@ StudyAnswerVO studyAnswerVO = new StudyAnswerVO(); if (tStudyAnswer.getIsAnswer() == 1) { TSubject byId = subjectService.getById(tStudyAnswer.getSubject()); names.append("-").append(byId.getName()).append(","); names.append(byId.getName()).append(","); TSubject byId1 = subjectService.getById(tStudyAnswer.getAnswerSubject()); names.append("-").append(byId1.getName()).append(","); names.append(byId1.getName()).append(","); } else { TSubject byId = subjectService.getById(tStudyAnswer.getSubject()); names.append(byId.getName()).append(","); TSubject byId1 = subjectService.getById(tStudyAnswer.getAnswerSubject()); names.append("-").append(byId1.getName()).append(","); names.append(byId1.getName()).append(","); } String string = names.toString(); studyAnswerVO.setName(string.substring(0, string.length() - 1)); studyAnswerVO.setIntegral(tStudyAnswer.getIntegral()); studyAnswerVO.setIsVip(tStudyAnswer.getIsVip()); studyAnswerVO.setIsAnswer(tStudyAnswer.getIsAnswer()); studyAnswerVO.setSubject(tStudyAnswer.getSubject()+","+tStudyAnswer.getAnswerSubject()); answerVOS.add(studyAnswerVO); } // 音图相配 @@ -528,6 +534,8 @@ String string = names.toString(); studyPairVO.setName(string.substring(0, string.length() - 1)); studyPairVO.setIntegral(tStudyPair.getIntegral()); studyPairVO.setSubject(tStudyPair.getSubject()); studyPairVO.setIsVip(tStudyPair.getIsVip()); pairVOS.add(studyPairVO); } List<TGame> list5 = gameService.list(new QueryWrapper<TGame>() @@ -650,7 +658,7 @@ @ApiImplicitParam(value = "周目", name = "week", dataType = "Integer", required = true), @ApiImplicitParam(value = "所属day", name = "day", dataType = "Integer", required = true) }) public AjaxResult<StudyListenResultVO> listenSelectPicture(@RequestParam Integer week, @RequestParam Integer day) { public R<StudyListenResultVO> listenSelectPicture(@RequestParam Integer week, @RequestParam Integer day) { // 判断当前登录用户是否为 会员 Boolean isVip = userService.isVip(); LambdaQueryChainWrapper<TStudyListen> wrapper = studyListenService.lambdaQuery().eq(TStudyListen::getWeek, week) @@ -660,7 +668,7 @@ wrapper.eq(TStudyListen::getIsVip, 0); } List<TStudyListen> studyListens = wrapper.list(); return AjaxResult.success(studyService.listenSelectPicture(week, day, studyListens)); return R.ok(studyService.listenSelectPicture(week, day, studyListens)); } /** ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
@@ -14,15 +14,11 @@ import com.ruoyi.management.api.feignClient.ManagementClient; import com.ruoyi.management.api.model.*; import com.ruoyi.management.api.query.UseGuideQuery; import com.ruoyi.study.domain.TUser; import com.ruoyi.study.domain.TUserShare; import com.ruoyi.study.domain.TVipOrder; import com.ruoyi.study.domain.*; import com.ruoyi.study.dto.AppUserQuery; import com.ruoyi.study.dto.UserInfoQuery; import com.ruoyi.study.request.RegisterPhoneRequest; import com.ruoyi.study.service.ITUserService; import com.ruoyi.study.service.ITUserShareService; import com.ruoyi.study.service.IVipOrderService; import com.ruoyi.study.service.*; import com.ruoyi.study.utils.PayMoneyUtil; import com.ruoyi.study.utils.UUIDUtil; import com.ruoyi.study.vo.*; @@ -667,6 +663,7 @@ if (!"SUCCESS".equals(result_code)) { return R.fail(stringStringMap.get("return_msg")); } byId.setBackTime(new Date()); byId.setPayState(3); vipOrderService.updateById(byId); case 2: @@ -732,7 +729,12 @@ res.setTotal(list.size()); return R.ok(res); } @Resource private ITUserStudyService userStudyService; @Resource private ITGameRecordService gameRecordService; @Autowired private ITStudyService studyService; @PostMapping("/getUserInfo") @ApiOperation(value = "查看用户详情", tags = {"管理后台-用户管理"}) public R<UserInfoVO> getUserInfo(@RequestBody UserInfoQuery dto) { @@ -764,17 +766,48 @@ res.setPhone(phone); res.setInsertTime(format.format(insertTime)); res.setIntegral(byId.getIntegral()); // todo 查询进度 TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, dto.getId()) .eq(TUserStudy::getDisabled, 0).one(); // 游戏测试成绩 List<TGameRecord> gameRecordList = gameRecordService.lambdaQuery().eq(TGameRecord::getUserId, dto.getId()) .eq(TGameRecord::getDisabled, 0).list(); if (studyRecord!=null){ res.setCurrent(studyRecord.getWeek()); // 查询当前听的总周目 List<TStudy> list1 = studyService.list(new QueryWrapper<>()); res.setSurplus(list1.size()-studyRecord.getWeek()); res.setTotalHours(studyRecord.getTotalStudy().doubleValue()); res.setTodayHours(studyRecord.getTodayStudy().doubleValue()); res.setWeekHours(studyRecord.getWeekStudy().doubleValue()); res.setMonthHours(studyRecord.getMonthStudy().doubleValue()); }else{ res.setCurrent(0); res.setSurplus(0); res.setTotalHours(0d); res.setTodayHours(0d); res.setWeekHours(0d); res.setMonthHours(0d); // todo 查询用户的游戏记录 res.setTotalHours(0.0); res.setTodayHours(0.0); res.setWeekHours(0.0); res.setMonthHours(0.0); } List<UserGameRecordVO> userGameRecordVOS = new ArrayList<>(); for (TGameRecord tGameRecord : gameRecordList) { UserGameRecordVO userGameRecordVO = new UserGameRecordVO(); userGameRecordVO.setGameName(tGameRecord.getGameName()); userGameRecordVO.setUseTime(tGameRecord.getUseTime().toString()); if (tGameRecord.getGameDifficulty() == 0) { userGameRecordVO.setAccuracy("100%"); } else { userGameRecordVO.setAccuracy(tGameRecord.getAccuracy() + "%"); } if (tGameRecord.getGameDifficulty() == 0) { userGameRecordVO.setTime(tGameRecord.getUseTime()); } else { userGameRecordVO.setTime(tGameRecord.getUseTime() / 2); } userGameRecordVOS.add(userGameRecordVO); } list.setRecords(userGameRecordVOS); list.setTotal(0); list.setTotal(userGameRecordVOS.size()); res.setGameRecords(list); return R.ok(res); } ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerVO.java
@@ -13,4 +13,10 @@ private Integer integral; @ApiModelProperty(value = "题目类型 1 = 问题 2=回答") private Integer type; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; @ApiModelProperty(value = "问题题目是否为答案图片 0否1是 为0 那么回答题目是答案图片") private Integer isAnswer; } ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionVO.java
@@ -11,4 +11,8 @@ private String name; @ApiModelProperty(value = "可获积分") private Integer integral; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenVO.java
@@ -11,4 +11,9 @@ private String name; @ApiModelProperty(value = "可获积分") private Integer integral; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookVO.java
@@ -13,4 +13,8 @@ private Integer integral; @ApiModelProperty(value = "排序 逗号隔开 与题组名称位置对应") private String sort; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairVO.java
@@ -11,4 +11,8 @@ private String name; @ApiModelProperty(value = "可获积分") private Integer integral; @ApiModelProperty(value = "题目ids 多个逗号隔开") private String subject; @ApiModelProperty(value = "非会员是否可以查看 0否1是") private Integer isVip; } ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/VipOrderMapper.xml
@@ -4,8 +4,8 @@ <select id="listAll" resultType="com.ruoyi.study.vo.VipOrderVO"> select t1.*,t2.`name`,t2.phone from t_vip_order left join t_user t2 on t1.id = t2.userid from t_vip_order t1 left join t_user t2 on t1.userid = t2.id where 1=1 <if test="null != req.name and '' != req.name"> and t2.`name` like CONCAT('%', #{req.name}, '%')