yonge il y a 5 ans
Parent
commit
9b53becac8

+ 6 - 1
cms/pom.xml

@@ -50,7 +50,12 @@
 
 		<dependency>
 			<groupId>com.ym</groupId>
-			<artifactId>common-core</artifactId>
+			<artifactId>mec-auth-api</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>com.ym</groupId>
+			<artifactId>mec-client-api</artifactId>
 		</dependency>
 	</dependencies>
 	

+ 19 - 7
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -1,17 +1,25 @@
 package com.ym.mec.cms.controller;
 
-import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
-import com.ym.mec.cms.dal.entity.SysNewsInformation;
-import com.ym.mec.cms.service.SysNewsInformationService;
-import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
+
+import java.util.Date;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Date;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
+import com.ym.mec.cms.dal.entity.SysNewsInformation;
+import com.ym.mec.cms.service.SysNewsInformationService;
+import com.ym.mec.common.controller.BaseController;
 
 @RestController
 @RequestMapping("news")
@@ -20,6 +28,9 @@ public class NewsController extends BaseController {
 
 	@Autowired
 	private SysNewsInformationService sysNewsInformationService;
+	
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 	@ApiOperation("资讯列表分页查询")
 	@GetMapping(value = "/list")
@@ -34,7 +45,8 @@ public class NewsController extends BaseController {
 	@ApiOperation("资讯列表分页查询")
 	@GetMapping(value = "/homeList")
 	public Object getHomeList(NewsInformationQueryInfo queryInfo) {
-		return succeed(sysNewsInformationService.getHomeList(queryInfo));
+		SysUser user = sysUserFeignService.queryUserInfo();
+		return succeed(sysNewsInformationService.getHomeList(user, queryInfo));
 	}
 
 	@ApiOperation("查询资讯详情")

+ 3 - 1
cms/src/main/java/com/ym/mec/cms/service/SysNewsInformationService.java

@@ -3,6 +3,7 @@ package com.ym.mec.cms.service;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
 import com.ym.mec.cms.dal.entity.SysNewsInformation;
 import com.ym.mec.common.page.PageInfo;
@@ -26,8 +27,9 @@ public interface SysNewsInformationService extends BaseService<Long, SysNewsInfo
 
 	/**
 	 * 获取首页新闻列表
+	 * @param user
 	 * @param queryInfo
 	 * @return
 	 */
-	Map<String,PageInfo<SysNewsInformation>> getHomeList(NewsInformationQueryInfo queryInfo);
+	Map<String, PageInfo<SysNewsInformation>> getHomeList(SysUser user, NewsInformationQueryInfo queryInfo);
 }

+ 69 - 9
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsInformationServiceImpl.java

@@ -1,23 +1,28 @@
 package com.ym.mec.cms.service.impl;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
-import com.ym.mec.cms.dal.entity.NewsStatusEnum;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
-
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
 import com.ym.mec.cms.dal.dao.SysNewsInformationDao;
+import com.ym.mec.cms.dal.entity.NewsStatusEnum;
 import com.ym.mec.cms.dal.entity.SysNewsInformation;
 import com.ym.mec.cms.service.SysNewsInformationService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.im.WebFeignService;
 import com.ym.mec.util.collection.MapUtil;
 
 @Service
@@ -25,6 +30,18 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 
 	@Autowired
 	private SysNewsInformationDao sysNewsInformationDao;
+	
+	@Autowired
+	private WebFeignService webFeignService;
+	
+	@Value("${cms.server.context.path}")
+	private String serverContextPath;
+	
+	private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+	public void setServerContextPath(String serverContextPath) {
+		this.serverContextPath = serverContextPath;
+	}
 
 	@Override
 	public BaseDAO<Long, SysNewsInformation> getDAO() {
@@ -43,7 +60,7 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 	}
 
 	@Override
-	public Map<String,PageInfo<SysNewsInformation>> getHomeList(NewsInformationQueryInfo queryInfo) {
+	public Map<String,PageInfo<SysNewsInformation>> getHomeList(SysUser user, NewsInformationQueryInfo queryInfo) {
 		//1精彩活动,2热门资讯,3banner类型
 		Map<String,PageInfo<SysNewsInformation>> homeList = new HashMap<>();
 		queryInfo.setStatus(NewsStatusEnum.SHOW);
@@ -57,12 +74,38 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
 
-		queryInfo.setType(3);
+		queryInfo.setType(3); 
 		int count = sysNewsInformationDao.queryHomeCount(params);
 		if(count == 0){
 			queryInfo.setMemo(null);
 		}
-		homeList.put("banner",queryHomePage(queryInfo));
+		PageInfo<SysNewsInformation> pageInfos = queryHomePage(queryInfo);
+
+		boolean isNewer = false;
+		Date date = new Date();
+		String startDateStr = "2020-05-01";
+		Date startDate = null;
+		try {
+			startDate = sdf.parse(startDateStr);
+		} catch (ParseException e) {
+			throw new RuntimeException(e);
+		}
+		if (date.after(startDate)) {
+			if (user != null) {
+				isNewer = webFeignService.isPurchasedPracticeCourse(user.getId()) == false;
+				SysNewsInformation info = new SysNewsInformation();
+				info.setOrder(1);
+				if (isNewer) {
+					info.setLinkUrl(serverContextPath + "/#/auditionActive/1");
+					info.setCoverImage("");
+				} else {
+					info.setLinkUrl(serverContextPath + "/#/auditionActive/1");
+					info.setCoverImage("");
+				}
+				pageInfos.getRows().add(info);
+			}
+		}
+		homeList.put("banner",pageInfos);
 		
 		queryInfo.setMemo(memo);
 		queryInfo.setType(6);
@@ -77,8 +120,25 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 		homeList.put("active",queryHomePage(queryInfo));
 		queryInfo.setType(2);
 		homeList.put("hot",queryHomePage(queryInfo));
+		
 		queryInfo.setType(5);
-		homeList.put("flash",queryHomePage(queryInfo));
+		pageInfos = new PageInfo<SysNewsInformation>();
+		SysNewsInformation info = new SysNewsInformation();
+		info.setOrder(1);
+
+		if (date.after(startDate)) {
+			if (isNewer) {
+				info.setLinkUrl(serverContextPath + "/#/auditionActive/1");
+				info.setCoverImage("");
+			} else {
+				info.setLinkUrl(serverContextPath + "/#/auditionActive/1");
+				info.setCoverImage("");
+			}
+			pageInfos.getRows().add(info);
+		} else {
+			pageInfos = queryHomePage(queryInfo);
+		}
+		homeList.put("flash",pageInfos);
 		return homeList;
 	}
 	

+ 2 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/handler/BaseAuthenticationSuccessEventHandler.java

@@ -12,7 +12,7 @@ import javax.servlet.http.HttpServletResponse;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.im.ImFeignService;
-import com.ym.mec.im.UserFeignService;
+import com.ym.mec.im.WebFeignService;
 
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -60,7 +60,7 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 	@Autowired
 	private ImFeignService imFeignService;
 	@Autowired
-	private UserFeignService userFeignService;
+	private WebFeignService userFeignService;
 	
 	@Autowired
 	private ClientDetailsService clientDetailsService;

+ 2 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -15,7 +15,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
-import com.ym.mec.im.UserFeignService;
+import com.ym.mec.im.WebFeignService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -43,7 +43,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	@Autowired
 	private ImFeignService imFeignService;
 	@Autowired
-	private UserFeignService userFeignService;
+	private WebFeignService userFeignService;
 	@Autowired
 	private SysUserService sysUserService;
 	@Autowired

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java

@@ -294,4 +294,11 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
 	 * @param memo
 	 */
     void updateMemo(Long groupId, String memo);
+    
+    /**
+     * 用户是否购买网管课
+     * @param userId
+     * @return
+     */
+    boolean isPurchasedPracticeCourse(Integer userId);
 }

+ 125 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1,17 +1,128 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.WeekFields;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Random;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.PracticeGroupDao;
+import com.ym.mec.biz.dal.dao.PracticeGroupSellPriceDao;
+import com.ym.mec.biz.dal.dao.PracticeLessonApplyDao;
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.TeacherDefaultPracticeGroupSalaryDao;
+import com.ym.mec.biz.dal.dao.TeacherFreeTimeDao;
+import com.ym.mec.biz.dal.dto.CourseScheduleDto;
+import com.ym.mec.biz.dal.dto.ExtendTeacherBasicDto;
+import com.ym.mec.biz.dal.dto.PracticeBuyResultDto;
+import com.ym.mec.biz.dal.dto.PracticeCourseDto;
+import com.ym.mec.biz.dal.dto.PracticeDrillTimeDto;
+import com.ym.mec.biz.dal.dto.PracticeGroupBuyDto;
+import com.ym.mec.biz.dal.dto.PracticeGroupDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.dto.StudentBuyPracticeDto;
+import com.ym.mec.biz.dal.dto.TeacherBasicDto;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.entity.PracticeGroupSellPrice;
+import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
+import com.ym.mec.biz.dal.entity.TeacherDefaultPracticeGroupSalary;
+import com.ym.mec.biz.dal.entity.TeacherFreeTime;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.PracticeGroupType;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
 import com.ym.mec.biz.dal.page.StudentBuyPracticeQueryInfo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.ContractService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.GroupClassService;
+import com.ym.mec.biz.service.PayService;
+import com.ym.mec.biz.service.PracticeGroupService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.TeacherCourseRewardService;
+import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.dal.BaseDAO;
@@ -28,24 +139,6 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.time.*;
-import java.time.format.DateTimeFormatter;
-import java.time.temporal.WeekFields;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGroup> implements PracticeGroupService {
@@ -3630,4 +3723,13 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     public void updateMemo(Long groupId, String memo) {
         practiceGroupDao.updateMemo(groupId,memo);
     }
+
+	@Override
+	public boolean isPurchasedPracticeCourse(Integer userId) {
+		int count = practiceGroupDao.checkStudentExitChargePractice(userId);
+		if (count > 0) {
+			return true;
+		}
+		return false;
+	}
 }

+ 6 - 3
mec-client-api/src/main/java/com/ym/mec/im/UserFeignService.java → mec-client-api/src/main/java/com/ym/mec/im/WebFeignService.java

@@ -5,14 +5,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import com.ym.mec.common.config.FeignConfiguration;
-import com.ym.mec.im.fallback.UserFeignServiceFallback;
+import com.ym.mec.im.fallback.WebFeignServiceFallback;
 
-@FeignClient(name = "web-server", contextId = "UserFeignService", configuration = FeignConfiguration.class, fallback = UserFeignServiceFallback.class)
-public interface UserFeignService {
+@FeignClient(name = "web-server", contextId = "WebFeignService", configuration = FeignConfiguration.class, fallback = WebFeignServiceFallback.class)
+public interface WebFeignService {
 
 	@RequestMapping(value = "api/createCashAccount")
 	Boolean createCashAccount(@RequestParam("userId") Integer userId);
 	
 	@RequestMapping(value = "api/queryTeacherOrganId")
 	public Integer queryTeacherOrganId(@RequestParam("userId") Integer userId);
+	
+	@RequestMapping(value = "api/isPurchasedPracticeCourse")
+	Boolean isPurchasedPracticeCourse(@RequestParam("userId") Integer userId);
 }

+ 7 - 2
mec-client-api/src/main/java/com/ym/mec/im/fallback/UserFeignServiceFallback.java → mec-client-api/src/main/java/com/ym/mec/im/fallback/WebFeignServiceFallback.java

@@ -2,10 +2,10 @@ package com.ym.mec.im.fallback;
 
 import org.springframework.stereotype.Component;
 
-import com.ym.mec.im.UserFeignService;
+import com.ym.mec.im.WebFeignService;
 
 @Component
-public class UserFeignServiceFallback implements UserFeignService {
+public class WebFeignServiceFallback implements WebFeignService {
 
 	@Override
 	public Boolean createCashAccount(Integer userId) {
@@ -16,4 +16,9 @@ public class UserFeignServiceFallback implements UserFeignService {
 	public Integer queryTeacherOrganId(Integer userId) {
 		return null;
 	}
+
+	@Override
+	public Boolean isPurchasedPracticeCourse(Integer userId) {
+		return false;
+	}
 }

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/controller/APIController.java

@@ -4,9 +4,12 @@ import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.service.PracticeGroupService;
 import com.ym.mec.biz.service.PracticeLessonApplyService;
 import com.ym.mec.common.controller.BaseController;
+
 import io.swagger.annotations.Api;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,6 +28,9 @@ public class APIController extends BaseController {
 
 	@Autowired
 	private PracticeLessonApplyService practiceLessonApplyService;
+	
+	@Autowired
+	private PracticeGroupService practiceGroupService;
 
 	@GetMapping("/createCashAccount")
 	public Boolean createCashAccount(Integer userId) {
@@ -47,5 +53,9 @@ public class APIController extends BaseController {
 	public Object practiceSum() {
 		return succeed(practiceLessonApplyService.practiceSum());
 	}
+	@GetMapping("/isPurchasedPracticeCourse")
+	public Boolean isPurchasedPracticeCourse(Integer userId) {
+		return practiceGroupService.isPurchasedPracticeCourse(userId);
+	}
 
 }