|
@@ -8,21 +8,17 @@ import com.qxgmat.data.constants.enums.module.FeedbackModule;
|
|
|
import com.qxgmat.data.constants.enums.module.ProductType;
|
|
|
import com.qxgmat.data.constants.enums.status.DirectionStatus;
|
|
|
import com.qxgmat.data.constants.enums.status.FeedbackStatus;
|
|
|
+import com.qxgmat.data.constants.enums.trade.RecordSource;
|
|
|
import com.qxgmat.data.constants.enums.user.MoneyRange;
|
|
|
import com.qxgmat.data.dao.entity.*;
|
|
|
-import com.qxgmat.data.relation.entity.UserPreviewPaperRelation;
|
|
|
import com.qxgmat.dto.admin.extend.*;
|
|
|
-import com.qxgmat.dto.admin.request.UserCourseAppointmentDto;
|
|
|
-import com.qxgmat.dto.admin.request.UserFeedbackErrorDto;
|
|
|
-import com.qxgmat.dto.admin.request.UserInvoiceDto;
|
|
|
-import com.qxgmat.dto.admin.request.UserServiceRecordDto;
|
|
|
+import com.qxgmat.dto.admin.request.*;
|
|
|
import com.qxgmat.dto.admin.response.*;
|
|
|
import com.qxgmat.help.ShiroHelp;
|
|
|
import com.qxgmat.service.ManagerService;
|
|
|
import com.qxgmat.service.UserPaperService;
|
|
|
import com.qxgmat.service.UserServiceService;
|
|
|
-import com.qxgmat.service.extend.OrderFlowService;
|
|
|
-import com.qxgmat.service.extend.PreviewService;
|
|
|
+import com.qxgmat.service.extend.*;
|
|
|
import com.qxgmat.service.UsersService;
|
|
|
import com.qxgmat.service.inline.*;
|
|
|
import io.swagger.annotations.Api;
|
|
@@ -44,6 +40,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
import java.io.*;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.Collection;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
@@ -112,34 +109,23 @@ public class UserController {
|
|
|
private UserOrderRecordService userOrderRecordService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private QuestionFlowService questionFlowService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private OrderFlowService orderFlowService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private CourseExtendService courseExtendService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SentenceService sentenceService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private UserInvoiceService userInvoiceService;
|
|
|
|
|
|
-// @RequestMapping(value = "/add", method = RequestMethod.POST)
|
|
|
-// @ApiOperation(value = "添加用户信息", httpMethod = "POST")
|
|
|
-// public Response<User> add(@RequestBody @Validated UserDto dto, HttpServletRequest request) {
|
|
|
-// User entity = Transform.dtoToEntity(dto);
|
|
|
-// entity = userService.edit(entity);
|
|
|
-// managerLogService.log(request);
|
|
|
-// return ResponseHelp.success(Transform.convert(entity, UserDto.class));
|
|
|
-// }
|
|
|
-// @RequestMapping(value = "/edit", method = RequestMethod.PUT)
|
|
|
-// @ApiOperation(value = "修改用户信息", httpMethod = "PUT")
|
|
|
-// public Response<Boolean> edit(@RequestBody @Validated UserDto dto, HttpServletRequest request) {
|
|
|
-// User entity = Transform.dtoToEntity(dto);
|
|
|
-// entity = userService.edit(entity);
|
|
|
-// managerLogService.log(request);
|
|
|
-// return ResponseHelp.success(true);
|
|
|
-// }
|
|
|
-//
|
|
|
-// @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
|
|
|
-// @ApiOperation(value = "删除用户", httpMethod = "DELETE")
|
|
|
-// public Response<Boolean> delete(@RequestParam int id, HttpServletRequest request) {
|
|
|
-// managerLogService.log(request);
|
|
|
-// return ResponseHelp.success(userService.delete(id));
|
|
|
-// }
|
|
|
+ @Autowired
|
|
|
+ private UserAbnormalService userAbnormalService;
|
|
|
+
|
|
|
@RequestMapping(value = "/token", method = RequestMethod.GET)
|
|
|
@ApiOperation(value = "获取用户token", httpMethod = "GET")
|
|
|
public Response<String> token(@RequestParam int id, HttpSession session) {
|
|
@@ -154,11 +140,60 @@ public class UserController {
|
|
|
public Response<UserDetailDto> detail(@RequestParam int id, HttpSession session) {
|
|
|
User entity = usersService.get(id);
|
|
|
UserDetailDto dto = Transform.convert(entity, UserDetailDto.class);
|
|
|
+ Integer time = 0;
|
|
|
|
|
|
+ time += courseExtendService.studyTime(id);
|
|
|
+ time += sentenceService.studyTime(id);
|
|
|
+ time += questionFlowService.studyTime(id);
|
|
|
+ dto.setTotalTime(time);
|
|
|
|
|
|
return ResponseHelp.success(dto);
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "/real", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "实名认证", httpMethod = "POST")
|
|
|
+ public Response<Boolean> real(@RequestBody @Validated UserRealDto dto, HttpSession session) {
|
|
|
+ User in = usersService.get(dto.getId());
|
|
|
+ if (in == null){
|
|
|
+ throw new ParameterException("用户不存在");
|
|
|
+ }
|
|
|
+ if (in.getRealTime() != null){
|
|
|
+ throw new ParameterException("实名认证已通过");
|
|
|
+ }
|
|
|
+ User entity = Transform.dtoToEntity(dto);
|
|
|
+ entity.setRealStatus(1);
|
|
|
+ entity.setRealTime(new Date());
|
|
|
+ usersService.edit(entity);
|
|
|
+
|
|
|
+ orderFlowService.giveReal(in.getId());
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/money/add", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "增加用户累计金额", httpMethod = "POST")
|
|
|
+ public Response<Boolean> addMoney(@RequestBody @Validated UserMoneyDto dto, HttpSession session) {
|
|
|
+ User in = usersService.get(dto.getId());
|
|
|
+ if (in == null){
|
|
|
+ throw new ParameterException("用户不存在");
|
|
|
+ }
|
|
|
+ usersService.accumulation(dto.getId(), BigDecimal.valueOf(dto.getMoney()));
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/frozen", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "冻结用户", httpMethod = "POST")
|
|
|
+ public Response<Boolean> frozen(@RequestParam int id, HttpSession session) {
|
|
|
+ User entity = usersService.get(id);
|
|
|
+ if (entity.getIsFrozen() > 0){
|
|
|
+ throw new ParameterException("用户已冻结");
|
|
|
+ }
|
|
|
+ usersService.edit(User.builder()
|
|
|
+ .id(id)
|
|
|
+ .isFrozen(1)
|
|
|
+ .build());
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
|
|
@ApiOperation(value = "用户列表", httpMethod = "GET")
|
|
|
public Response<PageMessage<UserListDto>> list(
|
|
@@ -168,13 +203,15 @@ public class UserController {
|
|
|
@RequestParam(required = false) Integer[] ids,
|
|
|
@RequestParam(required = false) Boolean real,
|
|
|
@RequestParam(required = false) String order,
|
|
|
+ @RequestParam(required = false) String startTime,
|
|
|
+ @RequestParam(required = false) String endTime,
|
|
|
@RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
HttpSession session) {
|
|
|
Page<User> p;
|
|
|
if (ids != null && ids.length > 0){
|
|
|
p = usersService.select(ids);
|
|
|
}else{
|
|
|
- p = usersService.select(page, size, keyword, real, order, DirectionStatus.ValueOf(direction));
|
|
|
+ p = usersService.select(page, size, keyword, real, startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
}
|
|
|
List<UserListDto> pr = Transform.convert(p, UserListDto.class);
|
|
|
|
|
@@ -211,7 +248,7 @@ public class UserController {
|
|
|
|
|
|
@RequestMapping(value = "/order/list", method = RequestMethod.GET)
|
|
|
@ApiOperation(value = "用户订单列表", httpMethod = "GET")
|
|
|
- public Response<PageMessage<UserListDto>> listOrder(
|
|
|
+ public Response<PageMessage<UserOrderListDto>> listOrder(
|
|
|
@RequestParam(required = false, defaultValue = "1") int page,
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
@RequestParam(required = false) Integer userId,
|
|
@@ -219,42 +256,24 @@ public class UserController {
|
|
|
@RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
HttpSession session) {
|
|
|
Page<UserOrder> p = userOrderService.select(page, size);
|
|
|
- List<UserListDto> pr = Transform.convert(p, UserListDto.class);
|
|
|
+ List<UserOrderListDto> dtos = Transform.convert(p, UserOrderListDto.class);
|
|
|
|
|
|
- Collection userIds = Transform.getIds(p, User.class, "id");
|
|
|
- // 绑定用户服务
|
|
|
- Map<Object, Collection<UserService>> serviceByUser = userServiceService.mapByUser(userIds);
|
|
|
- Transform.combine(pr, serviceByUser, UserListDto.class, "id", "services", UserServiceExtendDto.class);
|
|
|
-
|
|
|
- return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
+ return ResponseHelp.success(dtos, page, size, p.getTotal());
|
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/preview/list", method = RequestMethod.GET)
|
|
|
- @ApiOperation(value = "预习作业列表", httpMethod = "GET")
|
|
|
- public Response<PageMessage<UserPreviewListDto>> list(
|
|
|
+ @RequestMapping(value = "/record/list", method = RequestMethod.GET)
|
|
|
+ @ApiOperation(value = "用户购买列表", httpMethod = "GET")
|
|
|
+ public Response<PageMessage<UserOrderRecord>> listRecord(
|
|
|
@RequestParam(required = false, defaultValue = "1") int page,
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
- @RequestParam(required = false, defaultValue = "0") int category,
|
|
|
@RequestParam(required = false) Integer userId,
|
|
|
- @RequestParam(required = false) Integer previewId,
|
|
|
- @RequestParam(required = false) String startTime,
|
|
|
- @RequestParam(required = false) String endTime,
|
|
|
+ @RequestParam(required = false) String order,
|
|
|
+ @RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
HttpSession session) {
|
|
|
- PageResult<UserPreviewPaperRelation> p = previewService.listAdmin(page, size, category, userId, previewId, startTime, endTime);
|
|
|
-
|
|
|
- // 绑定用户
|
|
|
- Collection userIds = Transform.getIds(p, UserPreviewPaperRelation.class, "userId");
|
|
|
- List<User> userList = usersService.select(userIds);
|
|
|
- Transform.combine(p, userList, UserPreviewPaperRelation.class, "userId", "user", User.class, "id");
|
|
|
+ Page<UserOrderRecord> p = userOrderRecordService.select(page, size);
|
|
|
|
|
|
- // 绑定预习作业
|
|
|
- Collection previewIds = Transform.getIds(p, UserPreviewPaperRelation.class, "moduleId");
|
|
|
- List<PreviewPaper> previewPaperList = previewPaperService.select(previewIds);
|
|
|
- Transform.combine(p, previewPaperList, UserPreviewPaperRelation.class, "moduleId", "preview", PreviewPaper.class, "id");
|
|
|
|
|
|
- List<UserPreviewListDto> pr = Transform.convert(p, UserPreviewListDto.class);
|
|
|
-
|
|
|
- return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
+ return ResponseHelp.success(p, page, size, p.getTotal());
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/feedback_error/edit", method = RequestMethod.PUT)
|
|
@@ -392,6 +411,8 @@ public class UserController {
|
|
|
}
|
|
|
entity.setUserId(user.getId());
|
|
|
}
|
|
|
+ // 后台服务创建,都默认你为后台创建
|
|
|
+ entity.setSource(RecordSource.BACKEND.key);
|
|
|
orderFlowService.addRecord(entity);
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
@@ -419,7 +440,9 @@ public class UserController {
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
@RequestParam(required = false) String service,
|
|
|
@RequestParam(required = false) String param,
|
|
|
- @RequestParam(required = false) Integer userId
|
|
|
+ @RequestParam(required = false) Integer userId,
|
|
|
+ @RequestParam(required = false, defaultValue = "id") String order,
|
|
|
+ @RequestParam(required = false, defaultValue = "desc") String direction
|
|
|
){
|
|
|
Page<UserOrderRecord> p = userOrderRecordService.listWithServiceAdmin(page, size, ServiceKey.ValueOf(service), param, userId);
|
|
|
List<UserServiceRecordInfoDto> pr = Transform.convert(p, UserServiceRecordInfoDto.class);
|
|
@@ -482,13 +505,19 @@ public class UserController {
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
@RequestParam(required = false) Integer[] ids,
|
|
|
@RequestParam(required = false) Integer recordId,
|
|
|
+ @RequestParam(required = false) Integer userId,
|
|
|
+ @RequestParam(required = false) Integer courseId,
|
|
|
+ @RequestParam(required = false) String startTime,
|
|
|
+ @RequestParam(required = false) String endTime,
|
|
|
+ @RequestParam(required = false, defaultValue = "id") String order,
|
|
|
+ @RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
HttpSession session) {
|
|
|
|
|
|
Page<UserCourseAppointment> p;
|
|
|
if (ids != null && ids.length > 0){
|
|
|
p = userCourseAppointmentService.select(ids);
|
|
|
}else{
|
|
|
- p = userCourseAppointmentService.listAdmin(page, size, recordId);
|
|
|
+ p = userCourseAppointmentService.listAdmin(page, size, recordId, userId, courseId, startTime, endTime);
|
|
|
}
|
|
|
List<UserCourseAppointmentInfoDto> pr = Transform.convert(p, UserCourseAppointmentInfoDto.class);
|
|
|
|
|
@@ -617,4 +646,57 @@ public class UserController {
|
|
|
}
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
|
+ @RequestMapping(value = "/abnormal/handler", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "异常登录处理", httpMethod = "POST")
|
|
|
+ public Response<Boolean> editAbnormal(@RequestBody @Validated UserAbnormalHandlerDto dto, HttpServletRequest request) {
|
|
|
+ UserAbnormal entity = Transform.dtoToEntity(dto);
|
|
|
+ UserAbnormal in = userAbnormalService.get(entity.getId());
|
|
|
+ if (in.getIsAlert() != null && in.getIsAlert() > 0){
|
|
|
+ throw new ParameterException("已处理");
|
|
|
+ }
|
|
|
+ if (in.getIsIgnore() != null && in.getIsIgnore() > 0){
|
|
|
+ throw new ParameterException("已处理");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dto.getIsAlert() != null && dto.getIsAlert() > 1){
|
|
|
+ User user = usersService.get(in.getUserId());
|
|
|
+ usersService.edit(User.builder().id(user.getId()).totalAlert(user.getTotalAlert() + 1).build());
|
|
|
+ }
|
|
|
+
|
|
|
+ entity = userAbnormalService.edit(entity);
|
|
|
+
|
|
|
+ managerLogService.log(request);
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/abnormal/detail", method = RequestMethod.GET)
|
|
|
+ @ApiOperation(value = "异常登录详情", httpMethod = "GET")
|
|
|
+ public Response<UserAbnormalInfoDto> detailAbnormal(@RequestParam int id, HttpServletRequest request) {
|
|
|
+ UserAbnormal entity = userAbnormalService.get(id);
|
|
|
+ UserAbnormalInfoDto dto = Transform.convert(entity, UserAbnormalInfoDto.class);
|
|
|
+ User user = usersService.get(entity.getUserId());
|
|
|
+ UserExtendDto userDto = Transform.convert(user, UserExtendDto.class);
|
|
|
+ dto.setUser(userDto);
|
|
|
+
|
|
|
+ return ResponseHelp.success(dto);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/abnormal/list", method = RequestMethod.GET)
|
|
|
+ @ApiOperation(value = "异常登录列表", httpMethod = "GET")
|
|
|
+ public Response<PageMessage<UserAbnormalInfoDto>> listAbnormal(
|
|
|
+ @RequestParam(required = false, defaultValue = "1") int page,
|
|
|
+ @RequestParam(required = false, defaultValue = "100") int size,
|
|
|
+ @RequestParam(required = false, defaultValue = "id") String order,
|
|
|
+ @RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
+ HttpSession session) {
|
|
|
+ Page<UserAbnormal> p = userAbnormalService.listAdmin(page, size, order, DirectionStatus.ValueOf(direction));
|
|
|
+ List<UserAbnormalInfoDto> pr = Transform.convert(p, UserAbnormalInfoDto.class);
|
|
|
+
|
|
|
+ // 绑定用户
|
|
|
+ Collection userIds = Transform.getIds(p, UserAbnormal.class, "userId");
|
|
|
+ List<User> userList = usersService.select(userIds);
|
|
|
+ Transform.combine(pr, userList, UserAbnormalInfoDto.class, "userId", "user", User.class, "id", UserExtendDto.class);
|
|
|
+
|
|
|
+ return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
+ }
|
|
|
}
|