CREATE TABLE ums_oauth_info ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT 'id', social_uid VARCHAR(255) COMMENT '社交用户的唯一ID', source VARCHAR(255) COMMENT '社交用户来源平台', member_id BIGINT COMMENT '会员id', PRIMARY KEY (id) ); ALTER TABLE ums_oauth_info COMMENT '社交用户信息';
CREATE TABLE ums_oauth_info
(
id BIGINT NOT NULL AUTO_INCREMENT COMMENT 'id',
social_uid VARCHAR(255) COMMENT '社交用户的唯一ID',
source VARCHAR(255) COMMENT '社交用户来源平台',
member_id BIGINT COMMENT '会员id',
PRIMARY KEY (id)
);
ALTER TABLE ums_oauth_info COMMENT '社交用户信息';
package com.alatus.mall.member.app; import java.util.Arrays; import java.util.Map; import com.alatus.mall.member.entity.OauthInfoEntity; import com.alatus.mall.member.service.OauthInfoService; import org.springframework.beans.factory.annotation.Autowired; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.R; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ @RestController @RequestMapping("mall/oauthInfo") public class OauthInfoController { @Autowired private OauthInfoService oauthInfoService; /** * 列表 */ @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params){ PageUtils page = oauthInfoService.queryPage(params); return R.ok().put("page", page); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ OauthInfoEntity oauthInfo = oauthInfoService.getById(id); return R.ok().put("OauthInfo", oauthInfo); } /** * 保存 */ @RequestMapping("/save") public R save(@RequestBody OauthInfoEntity oauthInfo){ oauthInfoService.save(oauthInfo); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody OauthInfoEntity oauthInfo){ oauthInfoService.updateById(oauthInfo); return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ oauthInfoService.removeByIds(Arrays.asList(ids)); return R.ok(); } }
package com.alatus.mall.member.app; import java.util.Arrays; import java.util.Map; import com.alatus.mall.member.entity.OauthInfoEntity; import com.alatus.mall.member.service.OauthInfoService; import org.springframework.beans.factory.annotation.Autowired; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.R; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ @RestController @RequestMapping("mall/oauthInfo") public class OauthInfoController { @Autowired private OauthInfoService oauthInfoService; /** * 列表 */ @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params){ PageUtils page = oauthInfoService.queryPage(params); return R.ok().put("page", page); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ OauthInfoEntity oauthInfo = oauthInfoService.getById(id); return R.ok().put("OauthInfo", oauthInfo); } /** * 保存 */ @RequestMapping("/save") public R save(@RequestBody OauthInfoEntity oauthInfo){ oauthInfoService.save(oauthInfo); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody OauthInfoEntity oauthInfo){ oauthInfoService.updateById(oauthInfo); return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ oauthInfoService.removeByIds(Arrays.asList(ids)); return R.ok(); } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.alatus.mall.member.dao.MemberDao"> <!-- 可根据自己的需求,是否要使用 --> <resultMap type="com.alatus.mall.member.entity.MemberEntity" id="memberMap"> <result property="id" column="id"/> <result property="levelId" column="level_id"/> <result property="username" column="username"/> <result property="password" column="password"/> <result property="nickname" column="nickname"/> <result property="mobile" column="mobile"/> <result property="email" column="email"/> <result property="header" column="header"/> <result property="gender" column="gender"/> <result property="birth" column="birth"/> <result property="city" column="city"/> <result property="job" column="job"/> <result property="sign" column="sign"/> <result property="sourceType" column="source_type"/> <result property="integration" column="integration"/> <result property="growth" column="growth"/> <result property="status" column="status"/> <result property="createTime" column="create_time"/> </resultMap> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.alatus.mall.member.dao.MemberDao"> <!-- 可根据自己的需求,是否要使用 --> <resultMap type="com.alatus.mall.member.entity.MemberEntity" id="memberMap"> <result property="id" column="id"/> <result property="levelId" column="level_id"/> <result property="username" column="username"/> <result property="password" column="password"/> <result property="nickname" column="nickname"/> <result property="mobile" column="mobile"/> <result property="email" column="email"/> <result property="header" column="header"/> <result property="gender" column="gender"/> <result property="birth" column="birth"/> <result property="city" column="city"/> <result property="job" column="job"/> <result property="sign" column="sign"/> <result property="sourceType" column="source_type"/> <result property="integration" column="integration"/> <result property="growth" column="growth"/> <result property="status" column="status"/> <result property="createTime" column="create_time"/> </resultMap> </mapper>
package com.alatus.mall.member.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; import lombok.Data; /** * 会员 * * @author alatus * @email 1571345941@qq.com * @date 2024-03-12 13:40:22 */ @Data @TableName("ums_member") public class MemberEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId private Long id; /** * 会员等级id */ private Long levelId; /** * 用户名 */ private String username; /** * 密码 */ private String password; /** * 昵称 */ private String nickname; /** * 手机号码 */ private String mobile; /** * 邮箱 */ private String email; /** * 头像 */ private String header; /** * 性别 */ private Integer gender; /** * 生日 */ private Date birth; /** * 所在城市 */ private String city; /** * 职业 */ private String job; /** * 个性签名 */ private String sign; /** * 用户来源 */ private Integer sourceType; /** * 积分 */ private Integer integration; /** * 成长值 */ private Integer growth; /** * 启用状态 */ private Integer status; /** * 注册时间 */ private Date createTime; }
package com.alatus.mall.member.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; import lombok.Data; /** * 会员 * * @author alatus * @email 1571345941@qq.com * @date 2024-03-12 13:40:22 */ @Data @TableName("ums_member") public class MemberEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId private Long id; /** * 会员等级id */ private Long levelId; /** * 用户名 */ private String username; /** * 密码 */ private String password; /** * 昵称 */ private String nickname; /** * 手机号码 */ private String mobile; /** * 邮箱 */ private String email; /** * 头像 */ private String header; /** * 性别 */ private Integer gender; /** * 生日 */ private Date birth; /** * 所在城市 */ private String city; /** * 职业 */ private String job; /** * 个性签名 */ private String sign; /** * 用户来源 */ private Integer sourceType; /** * 积分 */ private Integer integration; /** * 成长值 */ private Integer growth; /** * 启用状态 */ private Integer status; /** * 注册时间 */ private Date createTime; }
package com.alatus.mall.member.app; import java.util.Arrays; import java.util.Map; import com.alatus.common.exception.BizCodeEnum; import com.alatus.common.vo.GiteeSocialUser; import com.alatus.common.vo.WeiboSocialUser; import com.alatus.mall.member.exception.PhoneExistException; import com.alatus.mall.member.exception.UsernameExistException; import com.alatus.mall.member.vo.MemberLoginVo; import com.alatus.mall.member.vo.MemberRegisterVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.alatus.mall.member.entity.MemberEntity; import com.alatus.mall.member.service.MemberService; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.R; /** * 会员 * * @author alatus * @email 1571345941@qq.com * @date 2024-03-12 13:40:22 */ @RestController @RequestMapping("member/member") public class MemberController { @Autowired private MemberService memberService; @PostMapping("register") public R register(@RequestBody MemberRegisterVo memberRegisterVo){ try{ memberService.register(memberRegisterVo); } catch (UsernameExistException e){ return R.error(BizCodeEnum.USER_EXIST_EXCEPTION.getCode(), BizCodeEnum.USER_EXIST_EXCEPTION.getMsg()); } catch (PhoneExistException e){ return R.error(BizCodeEnum.PHONE_EXIST_EXCEPTION.getCode(), BizCodeEnum.PHONE_EXIST_EXCEPTION.getMsg()); } return R.ok(); } @PostMapping("/oauth2/weibo/login") public R weiboOauthLogin(@RequestBody WeiboSocialUser weiboSocialUser){ MemberEntity member = memberService.login(weiboSocialUser); if(member!=null){ return R.ok(); } else{ return R.error(BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getCode(),BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getMsg()); } } @PostMapping("/oauth2/gitee/login") public R giteeOauthLogin(@RequestBody GiteeSocialUser giteeSocialUser){ MemberEntity member = memberService.login(giteeSocialUser); if(member!=null){ return R.ok(); } else{ return R.error(BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getCode(),BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getMsg()); } } @PostMapping("/login") public R login(@RequestBody MemberLoginVo memberLoginVo){ MemberEntity member = memberService.login(memberLoginVo); if(member!=null){ return R.ok(); } else{ return R.error(BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getCode(),BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getMsg()); } } /** * 列表 */ @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params){ PageUtils page = memberService.queryPage(params); return R.ok().put("page", page); } /** * 验证手机号是否已被使用 */ @GetMapping("/checkPhone/{phone}") public R checkPhone(@PathVariable("phone")String phone){ try{ memberService.checkPhoneUnique(phone); } catch (PhoneExistException e){ return R.error(BizCodeEnum.PHONE_EXIST_EXCEPTION.getCode(), BizCodeEnum.PHONE_EXIST_EXCEPTION.getMsg()); } return R.ok(); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ MemberEntity member = memberService.getById(id); return R.ok().put("member", member); } /** * 保存 */ @RequestMapping("/save") public R save(@RequestBody MemberEntity member){ memberService.save(member); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody MemberEntity member){ memberService.updateById(member); return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ memberService.removeByIds(Arrays.asList(ids)); return R.ok(); } }
package com.alatus.mall.member.app; import java.util.Arrays; import java.util.Map; import com.alatus.common.exception.BizCodeEnum; import com.alatus.common.vo.GiteeSocialUser; import com.alatus.common.vo.WeiboSocialUser; import com.alatus.mall.member.exception.PhoneExistException; import com.alatus.mall.member.exception.UsernameExistException; import com.alatus.mall.member.vo.MemberLoginVo; import com.alatus.mall.member.vo.MemberRegisterVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.alatus.mall.member.entity.MemberEntity; import com.alatus.mall.member.service.MemberService; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.R; /** * 会员 * * @author alatus * @email 1571345941@qq.com * @date 2024-03-12 13:40:22 */ @RestController @RequestMapping("member/member") public class MemberController { @Autowired private MemberService memberService; @PostMapping("register") public R register(@RequestBody MemberRegisterVo memberRegisterVo){ try{ memberService.register(memberRegisterVo); } catch (UsernameExistException e){ return R.error(BizCodeEnum.USER_EXIST_EXCEPTION.getCode(), BizCodeEnum.USER_EXIST_EXCEPTION.getMsg()); } catch (PhoneExistException e){ return R.error(BizCodeEnum.PHONE_EXIST_EXCEPTION.getCode(), BizCodeEnum.PHONE_EXIST_EXCEPTION.getMsg()); } return R.ok(); } @PostMapping("/oauth2/weibo/login") public R weiboOauthLogin(@RequestBody WeiboSocialUser weiboSocialUser){ MemberEntity member = memberService.login(weiboSocialUser); if(member!=null){ return R.ok(); } else{ return R.error(BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getCode(),BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getMsg()); } } @PostMapping("/oauth2/gitee/login") public R giteeOauthLogin(@RequestBody GiteeSocialUser giteeSocialUser){ MemberEntity member = memberService.login(giteeSocialUser); if(member!=null){ return R.ok(); } else{ return R.error(BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getCode(),BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getMsg()); } } @PostMapping("/login") public R login(@RequestBody MemberLoginVo memberLoginVo){ MemberEntity member = memberService.login(memberLoginVo); if(member!=null){ return R.ok(); } else{ return R.error(BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getCode(),BizCodeEnum.LOGINACCTOUNT_PASSWORD_INVALID_EXCEPTION.getMsg()); } } /** * 列表 */ @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params){ PageUtils page = memberService.queryPage(params); return R.ok().put("page", page); } /** * 验证手机号是否已被使用 */ @GetMapping("/checkPhone/{phone}") public R checkPhone(@PathVariable("phone")String phone){ try{ memberService.checkPhoneUnique(phone); } catch (PhoneExistException e){ return R.error(BizCodeEnum.PHONE_EXIST_EXCEPTION.getCode(), BizCodeEnum.PHONE_EXIST_EXCEPTION.getMsg()); } return R.ok(); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ MemberEntity member = memberService.getById(id); return R.ok().put("member", member); } /** * 保存 */ @RequestMapping("/save") public R save(@RequestBody MemberEntity member){ memberService.save(member); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody MemberEntity member){ memberService.updateById(member); return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ memberService.removeByIds(Arrays.asList(ids)); return R.ok(); } }
package com.alatus.mall.member.service.impl; import com.alatus.mall.member.dao.OauthInfoDao; import com.alatus.mall.member.entity.OauthInfoEntity; import com.alatus.mall.member.service.OauthInfoService; import org.springframework.stereotype.Service; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.Query; @Service("OauthInfoService") public class OauthInfoServiceImpl extends ServiceImpl<OauthInfoDao, OauthInfoEntity> implements OauthInfoService { @Override public PageUtils queryPage(Map<String, Object> params) { IPage<OauthInfoEntity> page = this.page( new Query<OauthInfoEntity>().getPage(params), new QueryWrapper<OauthInfoEntity>() ); return new PageUtils(page); } }
package com.alatus.mall.member.service.impl; import com.alatus.mall.member.dao.OauthInfoDao; import com.alatus.mall.member.entity.OauthInfoEntity; import com.alatus.mall.member.service.OauthInfoService; import org.springframework.stereotype.Service; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.Query; @Service("OauthInfoService") public class OauthInfoServiceImpl extends ServiceImpl<OauthInfoDao, OauthInfoEntity> implements OauthInfoService { @Override public PageUtils queryPage(Map<String, Object> params) { IPage<OauthInfoEntity> page = this.page( new Query<OauthInfoEntity>().getPage(params), new QueryWrapper<OauthInfoEntity>() ); return new PageUtils(page); } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.alatus.mall.member.dao.OauthInfoDao"> <!-- 可根据自己的需求,是否要使用 --> <resultMap type="com.alatus.mall.member.entity.OauthInfoEntity" id="OauthInfoMap"> <result property="id" column="id"/> <result property="socialUid" column="social_uid"/> <result property="source" column="source"/> <result property="memberId" column="member_id"/> </resultMap> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.alatus.mall.member.dao.OauthInfoDao"> <!-- 可根据自己的需求,是否要使用 --> <resultMap type="com.alatus.mall.member.entity.OauthInfoEntity" id="OauthInfoMap"> <result property="id" column="id"/> <result property="socialUid" column="social_uid"/> <result property="source" column="source"/> <result property="memberId" column="member_id"/> </resultMap> </mapper>
package com.alatus.mall.member.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ @Data @TableName("ums_oauth_info") public class OauthInfoEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId private Long id; /** * 社交用户的唯一ID */ private String socialUid; /** * 社交用户来源平台 */ private String source; /** * 会员id */ private Long memberId; }
package com.alatus.mall.member.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ @Data @TableName("ums_oauth_info") public class OauthInfoEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId private Long id; /** * 社交用户的唯一ID */ private String socialUid; /** * 社交用户来源平台 */ private String source; /** * 会员id */ private Long memberId; }
package com.alatus.mall.member.dao; import com.alatus.mall.member.entity.OauthInfoEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ @Mapper public interface OauthInfoDao extends BaseMapper<OauthInfoEntity> { }
package com.alatus.mall.member.dao; import com.alatus.mall.member.entity.OauthInfoEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ @Mapper public interface OauthInfoDao extends BaseMapper<OauthInfoEntity> { }
package com.alatus.mall.member.service; import com.alatus.mall.member.entity.OauthInfoEntity; import com.baomidou.mybatisplus.extension.service.IService; import com.alatus.common.utils.PageUtils; import java.util.Map; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ public interface OauthInfoService extends IService<OauthInfoEntity> { PageUtils queryPage(Map<String, Object> params); }
package com.alatus.mall.member.service; import com.alatus.mall.member.entity.OauthInfoEntity; import com.baomidou.mybatisplus.extension.service.IService; import com.alatus.common.utils.PageUtils; import java.util.Map; /** * 社交用户信息 * * @author Alatus * @email 1571345941@qq.com * @date 2024-09-11 14:28:34 */ public interface OauthInfoService extends IService<OauthInfoEntity> { PageUtils queryPage(Map<String, Object> params); }