package com.peanut.modules.common.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.R; import com.peanut.common.utils.ShiroUtils; import com.peanut.modules.common.entity.*; import com.peanut.modules.common.service.MyUserService; import com.peanut.modules.common.service.UserInviteCourseService; import com.peanut.modules.common.service.UserInviteRegisterService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; /** * 用户邀请管理 */ @Slf4j @RestController("commonUserInvite") @RequestMapping("common/userInvite") public class UserInviteController { @Autowired private UserInviteRegisterService inviteRegisterService; @Autowired private UserInviteCourseService inviteCourseService; @Autowired private MyUserService myUserService; //获取邀请注册记录列表 @RequestMapping("/getInviteRegisterList") public R getInviteRegisterList(@RequestBody Map params) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,UserInviteRegister::getUserId); wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,UserInviteRegister::getInvitedUserId); wrapper.select("t.create_time"); wrapper.select("t1.name,t1.nickname,t1.tel,t1.email"); wrapper.select("t2.name invitedName,t2.nickname invitedNickname,t2.tel invitedTel,t2.email invitedEmail"); wrapper.orderByDesc(UserInviteRegister::getId); if (StringUtils.isNotBlank(params.get("userInfo").toString())){ wrapper.and(t->t.like(MyUserEntity::getName,params.get("userInfo")).or().like(MyUserEntity::getNickname,params.get("userInfo")) .or().like(MyUserEntity::getTel,params.get("userInfo")).or().like(MyUserEntity::getEmail,params.get("userInfo"))); } if (StringUtils.isNotBlank(params.get("invitedUserInfo").toString())){ wrapper.and(t->t.like(MyUserEntity::getName,params.get("invitedUserInfo")).or().like(MyUserEntity::getNickname,params.get("invitedUserInfo")) .or().like(MyUserEntity::getTel,params.get("invitedUserInfo")).or().like(MyUserEntity::getEmail,params.get("invitedUserInfo"))); } Page> page = inviteRegisterService.pageMaps(new Page<>((int)params.get("page"), (int)params.get("limit")), wrapper); return R.ok().put("result", page); } //获取邀请购买课程记录列表 @RequestMapping("/getInviteCourseList") public R getInviteCourseList(@RequestBody Map params) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,UserInviteCourse::getUserId); wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,UserInviteCourse::getInvitedUserId); wrapper.leftJoin(BuyOrder.class,BuyOrder::getOrderId,UserInviteCourse::getOrderId); wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,UserInviteCourse::getCourseId); wrapper.leftJoin(CourseCatalogueEntity.class,CourseCatalogueEntity::getId,UserInviteCourse::getCatalogueId); wrapper.select("t.create_time"); wrapper.select("t1.name,t1.nickname,t1.tel,t1.email"); wrapper.select("t2.name invitedName,t2.nickname invitedNickname,t2.tel invitedTel,t2.email invitedEmail"); wrapper.select("t3.order_sn,t4.title,t5.title catalogueTitle"); wrapper.orderByDesc(UserInviteCourse::getId); if (StringUtils.isNotBlank(params.get("userInfo").toString())){ wrapper.and(t->t.like(MyUserEntity::getName,params.get("userInfo")).or().like(MyUserEntity::getNickname,params.get("userInfo")) .or().like(MyUserEntity::getTel,params.get("userInfo")).or().like(MyUserEntity::getEmail,params.get("userInfo"))); } if (StringUtils.isNotBlank(params.get("invitedUserInfo").toString())){ wrapper.and(t->t.like(MyUserEntity::getName,params.get("invitedUserInfo")).or().like(MyUserEntity::getNickname,params.get("invitedUserInfo")) .or().like(MyUserEntity::getTel,params.get("invitedUserInfo")).or().like(MyUserEntity::getEmail,params.get("invitedUserInfo"))); } if (StringUtils.isNotBlank(params.get("courseName").toString())){ wrapper.like(CourseEntity::getTitle,params.get("courseName")); } Page> page = inviteCourseService.pageMaps(new Page<>((int)params.get("page"), (int)params.get("limit")), wrapper); return R.ok().put("result", page); } //生成邀请码 @RequestMapping("/generateInviteCode") public R generateInviteCode() { MyUserEntity userEntity = myUserService.getById(ShiroUtils.getUId()); String code = inviteRegisterService.generateInviteCode(); userEntity.setInviteCode(code); myUserService.updateById(userEntity); return R.ok(); } }