From 581a962cf967708dde84e84cf1eeb5e1ddf3cdeb Mon Sep 17 00:00:00 2001 From: linhw <5331581+linhw11@user.noreply.gitee.com> Date: Fri, 28 Jun 2024 15:03:06 +0800 Subject: [PATCH] ~ --- .../app/controller/AppCodeController.java | 108 ++++++++++++++++ .../app/controller/AppLoginController.java | 45 +++---- .../java/com/ruoyi/app/domain/AppCode.java | 93 ++++++++++++++ .../com/ruoyi/app/mapper/AppCodeMapper.java | 63 +++++++++ .../ruoyi/app/service/IAppCodeService.java | 61 +++++++++ .../app/service/impl/AppCodeServiceImpl.java | 120 ++++++++++++++++++ .../service/impl/AppRegisterServiceImpl.java | 22 ++-- .../resources/mapper/app/AppCodeMapper.xml | 96 ++++++++++++++ 8 files changed, 570 insertions(+), 38 deletions(-) create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppCodeController.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppCode.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppCodeMapper.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppCodeService.java create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppCodeServiceImpl.java create mode 100644 gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppCodeMapper.xml diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppCodeController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppCodeController.java new file mode 100644 index 0000000..e7a85dd --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppCodeController.java @@ -0,0 +1,108 @@ +package com.ruoyi.app.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.app.domain.AppCode; +import com.ruoyi.app.service.IAppCodeService; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 用户注册码Controller + * + * @author wyh + * @date 2024-06-28 + */ +@RestController +@RequestMapping("/code") +@Api(tags = "用户注册码" , description = "用户注册码") +public class AppCodeController extends BaseController +{ + @Autowired + private IAppCodeService appCodeService; + + /** + * 查询用户注册码列表 + */ + @GetMapping("/list") + @ApiOperation(value = "查询用户注册码", notes = "查询用户注册码", httpMethod = "GET") + public TableDataInfo list(AppCode appCode) + { + startPage(); + List list = appCodeService.selectAppCodeList(appCode); + return getDataTable(list); + } + + /** + * 导出用户注册码列表 + */ + @Log(title = "用户注册码", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AppCode appCode) + { + List list = appCodeService.selectAppCodeList(appCode); + ExcelUtil util = new ExcelUtil(AppCode.class); + util.exportExcel(response, list, "用户注册码数据"); + } + + /** + * 获取用户注册码详细信息 + */ + @GetMapping(value = "/{id}") + @ApiOperation(value = "获取用户注册码详细信息", notes = "获取用户注册码详细信息", httpMethod = "GET") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(appCodeService.selectAppCodeById(id)); + } + + /** + * 新增用户注册码 + */ + @ApiOperation(value = "新增用户注册码", notes = "新增用户注册码", httpMethod = "POST") + @Log(title = "用户注册码", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@RequestBody AppCode appCode) + { + return toAjax(appCodeService.insertAppCode(appCode)); + } + + /** + * 修改用户注册码 + */ + @ApiOperation(value = "修改用户注册码", notes = "修改用户注册码", httpMethod = "PUT") + @Log(title = "用户注册码", businessType = BusinessType.UPDATE) + @PutMapping("/edit") + public AjaxResult edit(@RequestBody AppCode appCode) + { + return toAjax(appCodeService.updateAppCode(appCode)); + } + + /** + * 删除用户注册码 + */ + @Log(title = "用户注册码", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(appCodeService.deleteAppCodeByIds(ids)); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java index 4006d1a..2bf30a8 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java @@ -3,15 +3,14 @@ package com.ruoyi.app.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.ruoyi.app.domain.AppRegister; -import com.ruoyi.app.domain.AppSchool; -import com.ruoyi.app.domain.AppUser; +import com.ruoyi.app.domain.*; import com.ruoyi.app.domain.dto.HelperUtil; import com.ruoyi.app.domain.dto.PayConfig; import com.ruoyi.app.domain.vo.AppUserVo; import com.ruoyi.app.form.AppLoginUser; import com.ruoyi.app.form.LoginForm; import com.ruoyi.app.form.RegisterForm; +import com.ruoyi.app.mapper.AppCodeMapper; import com.ruoyi.app.mapper.AppRegisterMapper; import com.ruoyi.app.service.IAppRegisterService; import com.ruoyi.app.service.IAppSchoolService; @@ -40,6 +39,7 @@ import org.springframework.web.bind.annotation.*; import javax.mail.MessagingException; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -73,11 +73,8 @@ public class AppLoginController { @Autowired private AppRegisterMapper appRegisterMapper; - public static void main(String[] args) { - String email = "ddd@qq.com"; - String emailStr = email.substring(email.indexOf("@") + 1,email.length()); - System.out.println(emailStr); - } + @Autowired + private AppCodeMapper appCodeMapper; @PostMapping("/register") @ApiOperation(value = "注册", notes = "注册") @@ -99,7 +96,7 @@ public class AppLoginController { String email = registerForm.getEmail(); if (org.apache.commons.lang3.StringUtils.isNotBlank(email)) { if (org.apache.commons.lang3.StringUtils.isBlank(registerForm.getProve()) && org.apache.commons.lang3.StringUtils.isBlank(appSchool.getEmail())) { - return R.fail(2001,"该学校没有提供邮箱审核,请人工审核!"); + return R.fail(2001,"您提供的邮箱后缀与您的学校不符!请提供学习邮箱或人工审核。"); } String emailStr = email.substring(email.indexOf("@") + 1,email.length()); if (org.apache.commons.lang3.StringUtils.isBlank(registerForm.getProve()) && !emailStr.equals(appSchool.getEmail())) { @@ -127,25 +124,6 @@ public class AppLoginController { throw new RuntimeException(e); } } - /*if (StringUtils.isNotEmpty(email) && appSchool.getEmail() != null && appSchool.getEmail().equals(email.substring(email.indexOf("@") + 1,email.length()))) { - AppRegister appRegister = setAppRegister(registerForm); - //校验邮箱是否已注册 - AppUser emailUser = appUserService.selectAppUserByEmail(registerForm.getEmail()); - Assert.isNull(emailUser, "邮箱已注册"); - String uuid = IdUtils.fastUUID(); - redisService.setCacheObject(uuid, registerForm); - try { - String EM = "

欢迎来到我们的服务!!

" - + "

请点击下面的网址确认您的注册:

" - + "注册账号" - + ""; - - AliMailUtil.sendMail(EM,registerForm.getEmail()); - } catch (Exception e) { - throw new RuntimeException(e); - } - }*/ - if (register != null && register.getStatus() != null) { @@ -160,6 +138,17 @@ public class AppLoginController { break; } } else { + if ("其他".equals(appSchool.getName()) && org.apache.commons.lang3.StringUtils.isNotBlank(registerForm.getInvitationCode())) { + AppCode appCode = appCodeMapper.selectAppCodeByCode(registerForm.getInvitationCode()); + if (appCode == null || appCode.getUserId() != null) { + return R.fail(2001,"该注册码不存在或已被使用,请检查该注册码是否正确!"); + } + AppRegister appRegister = setAppRegister(registerForm); + appRegister.setInvitationCode(registerForm.getInvitationCode()); + int i = appRegisterService.insertAppRegister(appRegister); + appRegisterService.passAppRegister(appRegister.getId()); + return R.ok(null, "注册申请成功,可以去登录啦!"); + } AppRegister appRegister = setAppRegister(registerForm); appRegister.setInvitationCode(registerForm.getInvitationCode()); int i = appRegisterService.insertAppRegister(appRegister); diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppCode.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppCode.java new file mode 100644 index 0000000..06dac03 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppCode.java @@ -0,0 +1,93 @@ +package com.ruoyi.app.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 用户注册码对象 app_code + * + * @author wyh + * @date 2024-06-28 + */ +@Data +public class AppCode extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 兑换码 */ + @Excel(name = "兑换码") + private String code; + + /** 使用者 */ + @Excel(name = "使用者") + private Long userId; + + private Integer num; + + /** 使用时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date userTime; + + private String userName; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setCode(String code) + { + this.code = code; + } + + public String getCode() + { + return code; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setUserTime(Date userTime) + { + this.userTime = userTime; + } + + public Date getUserTime() + { + return userTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("code", getCode()) + .append("userId", getUserId()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("createBy", getCreateBy()) + .append("updateBy", getUpdateBy()) + .append("remark", getRemark()) + .append("userTime", getUserTime()) + .toString(); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppCodeMapper.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppCodeMapper.java new file mode 100644 index 0000000..2921cca --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppCodeMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.app.mapper; + +import java.util.List; +import com.ruoyi.app.domain.AppCode; +import org.apache.ibatis.annotations.Param; + +/** + * 用户注册码Mapper接口 + * + * @author wyh + * @date 2024-06-28 + */ +public interface AppCodeMapper +{ + /** + * 查询用户注册码 + * + * @param id 用户注册码主键 + * @return 用户注册码 + */ + public AppCode selectAppCodeById(Long id); + public AppCode selectAppCodeByCode(@Param("code") String code); + + /** + * 查询用户注册码列表 + * + * @param appCode 用户注册码 + * @return 用户注册码集合 + */ + public List selectAppCodeList(AppCode appCode); + + /** + * 新增用户注册码 + * + * @param appCode 用户注册码 + * @return 结果 + */ + public int insertAppCode(AppCode appCode); + + /** + * 修改用户注册码 + * + * @param appCode 用户注册码 + * @return 结果 + */ + public int updateAppCode(AppCode appCode); + + /** + * 删除用户注册码 + * + * @param id 用户注册码主键 + * @return 结果 + */ + public int deleteAppCodeById(Long id); + + /** + * 批量删除用户注册码 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAppCodeByIds(Long[] ids); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppCodeService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppCodeService.java new file mode 100644 index 0000000..fccedee --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppCodeService.java @@ -0,0 +1,61 @@ +package com.ruoyi.app.service; + +import java.util.List; +import com.ruoyi.app.domain.AppCode; + +/** + * 用户注册码Service接口 + * + * @author wyh + * @date 2024-06-28 + */ +public interface IAppCodeService +{ + /** + * 查询用户注册码 + * + * @param id 用户注册码主键 + * @return 用户注册码 + */ + public AppCode selectAppCodeById(Long id); + + /** + * 查询用户注册码列表 + * + * @param appCode 用户注册码 + * @return 用户注册码集合 + */ + public List selectAppCodeList(AppCode appCode); + + /** + * 新增用户注册码 + * + * @param appCode 用户注册码 + * @return 结果 + */ + public int insertAppCode(AppCode appCode); + + /** + * 修改用户注册码 + * + * @param appCode 用户注册码 + * @return 结果 + */ + public int updateAppCode(AppCode appCode); + + /** + * 批量删除用户注册码 + * + * @param ids 需要删除的用户注册码主键集合 + * @return 结果 + */ + public int deleteAppCodeByIds(Long[] ids); + + /** + * 删除用户注册码信息 + * + * @param id 用户注册码主键 + * @return 结果 + */ + public int deleteAppCodeById(Long id); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppCodeServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppCodeServiceImpl.java new file mode 100644 index 0000000..863ae09 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppCodeServiceImpl.java @@ -0,0 +1,120 @@ +package com.ruoyi.app.service.impl; + +import java.util.Date; +import java.util.List; +import java.util.Random; + +import com.ruoyi.app.domain.AppExchangeCode; +import com.ruoyi.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.app.mapper.AppCodeMapper; +import com.ruoyi.app.domain.AppCode; +import com.ruoyi.app.service.IAppCodeService; + +/** + * 用户注册码Service业务层处理 + * + * @author wyh + * @date 2024-06-28 + */ +@Service +public class AppCodeServiceImpl implements IAppCodeService +{ + @Autowired + private AppCodeMapper appCodeMapper; + + /** + * 查询用户注册码 + * + * @param id 用户注册码主键 + * @return 用户注册码 + */ + @Override + public AppCode selectAppCodeById(Long id) + { + return appCodeMapper.selectAppCodeById(id); + } + + /** + * 查询用户注册码列表 + * + * @param appCode 用户注册码 + * @return 用户注册码 + */ + @Override + public List selectAppCodeList(AppCode appCode) + { + return appCodeMapper.selectAppCodeList(appCode); + } + + /** + * 新增用户注册码 + * + * @param appCode 用户注册码 + * @return 结果 + */ + @Override + public int insertAppCode(AppCode appCode) { + int num = appCode.getNum() == null ? 1 : appCode.getNum(); + for (int i = 0; i < num; i++) { + String code = getItemName(6); + AppCode entity = new AppCode(); + entity.setCreateTime(new Date()); + entity.setCode(code); + appCodeMapper.insertAppCode(entity); + + } + return 1; + } + + private static String getItemName( int length ){ + String base = "123456789ABCDEFHJKMNPQRSTUVWXYZ"; + Random random = new Random(); + StringBuffer sb = new StringBuffer(); + for ( int i = 0; i < length; i++ ) + { + int number = random.nextInt( base.length() ); + sb.append( base.charAt( number ) ); + } + return sb.toString(); + } + + + /** + * 修改用户注册码 + * + * @param appCode 用户注册码 + * @return 结果 + */ + @Override + public int updateAppCode(AppCode appCode) + { + appCode.setUpdateTime(DateUtils.getNowDate()); + return appCodeMapper.updateAppCode(appCode); + } + + /** + * 批量删除用户注册码 + * + * @param ids 需要删除的用户注册码主键 + * @return 结果 + */ + @Override + public int deleteAppCodeByIds(Long[] ids) + { + return appCodeMapper.deleteAppCodeByIds(ids); + } + + /** + * 删除用户注册码信息 + * + * @param id 用户注册码主键 + * @return 结果 + */ + @Override + public int deleteAppCodeById(Long id) + { + return appCodeMapper.deleteAppCodeById(id); + } +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java index 2e09b48..0717650 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.app.domain.*; import com.ruoyi.app.domain.vo.AppRegisterVo; import com.ruoyi.app.mapper.*; import com.ruoyi.app.utils.aliyun.sms.SendNoteUtil; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; @@ -55,6 +56,8 @@ public class AppRegisterServiceImpl implements IAppRegisterService { @Autowired private AppExchangeCodeMapper appExchangeCodeMapper; + @Autowired + private AppCodeMapper appCodeMapper; /** * 查询注册审核 @@ -146,13 +149,6 @@ public class AppRegisterServiceImpl implements IAppRegisterService { AppRegister appRegister = appRegisterMapper.selectAppRegisterById(id); Assert.isTrue(appRegister != null, "该申请不存在"); Assert.isTrue(appRegister.getStatus() != null && appRegister.getStatus() == 0, "该申请已审核"); - AppExchangeCode appExchangeCode = null; - if (org.apache.commons.lang3.StringUtils.isNotBlank(appRegister.getInvitationCode())) { - appExchangeCode = appExchangeCodeMapper.selectAppExchangeCodeByCode(appRegister.getInvitationCode()); - if (appExchangeCode == null || appExchangeCode.getUserId() != null) { - Assert.isTrue(false, "该兑换码不存在或已被使用,请检查该兑换码是否正确!"); - } - } appRegister.setStatus(1); appRegister.setUpdateTime(DateUtils.getNowDate()); int i = appRegisterMapper.updateAppRegister(appRegister); @@ -177,10 +173,16 @@ public class AppRegisterServiceImpl implements IAppRegisterService { appUser.setCityId(appRegister.getCityId() != null ? appRegister.getCityId() : null); appUser.setTownId(appRegister.getTownId() != null ? appRegister.getTownId() : null); appUserMapper.insertAppUser(appUser); - if (appExchangeCode != null && appExchangeCode.getId() != null) { - useExchange(appExchangeCode,appUser.getId()); + if (org.apache.commons.lang3.StringUtils.isNotBlank(appRegister.getInvitationCode())) { + AppCode appCode = appCodeMapper.selectAppCodeByCode(appRegister.getInvitationCode()); + if (appCode != null && appCode.getId() != null) { + AppCode entity = new AppCode(); + entity.setId(appCode.getId()); + entity.setUserTime(new Date()); + entity.setUserId(appUser.getId()); + appCodeMapper.updateAppCode(entity); + } } - sendNoteUtil.sendMessage(appRegister.getPhone()); HttpClient httpClient = HttpClients.createDefault(); String pushId = appRegister.getPushId() != null ? appRegister.getPushId() : null; diff --git a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppCodeMapper.xml b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppCodeMapper.xml new file mode 100644 index 0000000..9ec54b9 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppCodeMapper.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + select id, code, user_id, create_time, update_time, create_by, updateBy, remark, user_time from app_code + + + + + + + + + + insert into app_code + + code, + user_id, + create_time, + update_time, + create_by, + updateBy, + remark, + user_time, + + + #{code}, + #{userId}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + #{remark}, + #{userTime}, + + + + + update app_code + + code = #{code}, + user_id = #{userId}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + updateBy = #{updateBy}, + remark = #{remark}, + user_time = #{userTime}, + + where id = #{id} + + + + delete from app_code where id = #{id} + + + + delete from app_code where id in + + #{id} + + + \ No newline at end of file