Merge remote-tracking branch 'origin/master'

# Conflicts:
#	service/src/main/java/com/hfkj/config/CommonSysConfig.java
#	service/src/main/resources/dev/commonConfig.properties
master
袁野 2 months ago
commit 9ade211a7c
  1. 5
      cweb/src/main/java/com/hfkj/controller/ClientController.java
  2. 77
      cweb/src/main/java/com/hfkj/controller/UserController.java
  3. 60
      cweb/src/main/java/com/hfkj/controller/UserInviteCodeController.java
  4. BIN
      null/userInviteCode/02856152.png
  5. BIN
      null/userInviteCode/21526357.png
  6. BIN
      null/userInviteCode/24869382.png
  7. BIN
      null/userInviteCode/30044329.png
  8. BIN
      null/userInviteCode/34612530.png
  9. 26
      service/src/main/java/com/hfkj/common/QRCodeGenerator.java
  10. 31
      service/src/main/java/com/hfkj/common/utils/RandomUtils.java
  11. 10
      service/src/main/java/com/hfkj/config/CommonSysConfig.java
  12. 108
      service/src/main/java/com/hfkj/dao/BsUserInviteCodeMapper.java
  13. 7
      service/src/main/java/com/hfkj/dao/BsUserInviteCodeMapperExt.java
  14. 276
      service/src/main/java/com/hfkj/dao/BsUserInviteCodeSqlProvider.java
  15. 16
      service/src/main/java/com/hfkj/dao/BsUserMapper.java
  16. 28
      service/src/main/java/com/hfkj/dao/BsUserSqlProvider.java
  17. 32
      service/src/main/java/com/hfkj/entity/BsUser.java
  18. 130
      service/src/main/java/com/hfkj/entity/BsUserExample.java
  19. 168
      service/src/main/java/com/hfkj/entity/BsUserInviteCode.java
  20. 743
      service/src/main/java/com/hfkj/entity/BsUserInviteCodeExample.java
  21. 29
      service/src/main/java/com/hfkj/service/user/BsUserInviteCodeService.java
  22. 20
      service/src/main/java/com/hfkj/service/user/BsUserService.java
  23. 78
      service/src/main/java/com/hfkj/service/user/impl/BsUserInviteCodeServiceImpl.java
  24. 71
      service/src/main/java/com/hfkj/service/user/impl/BsUserServiceImpl.java
  25. 2
      service/src/main/resources/dev/commonConfig.properties

@ -53,6 +53,9 @@ public class ClientController {
) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
// 邀请码人id
Long inviteUseId = body.getLong("inviteUseId");
// 手机号
String phone = body.getString("phone");
// 校验手机号格式
if (!MemberValidateUtil.validatePhone(phone)) {
@ -71,7 +74,7 @@ public class ClientController {
}
redisUtil.del("SMS_LOGIN_CODE:" + phone);
return ResponseMsgUtil.success(userService.login(phone, UserLoginType.SMS, new HashMap<>()));
return ResponseMsgUtil.success(userService.login(phone, UserLoginType.SMS, new HashMap<>(), inviteUseId));
} catch (Exception e) {
return ResponseMsgUtil.exception(e);

@ -61,6 +61,23 @@ public class UserController {
}
}
@RequestMapping(value = "/updateWechat", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "修改用户微信号")
public ResponseData updateWechat(@RequestBody JSONObject body) {
try {
if (body == null || StringUtils.isBlank(body.getString("wechatNum"))) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
userService.updateWechatNum(userSession.getUser().getId(), body.getString("wechatNum"));
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/bindPhone", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "绑定手机号")
@ -83,6 +100,9 @@ public class UserController {
if (StringUtils.isBlank(body.getString("smsCode"))) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请输入短信验证码");
}
if (userService.getUser(phone) != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "手机号已被绑定");
}
// 手机号的验证码
Object phoneCodeObject = redisUtil.get("SMS_BIND_PHONE_CODE:" + phone);
if (phoneCodeObject == null) {
@ -103,6 +123,56 @@ public class UserController {
}
}
@RequestMapping(value = "/bindInviteUser", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "绑定邀请人Id")
public ResponseData bindInviteUser(@RequestBody JSONObject body) {
try {
if (body == null || body.getLong("inviteUseId") == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
if (StringUtils.isNotBlank(userSession.getUser().getPhone())) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "手机号已绑定");
}
// 绑定邀请人
userService.bindInviteUser(userSession.getUser().getId(), body.getLong("inviteUseId"));
return ResponseMsgUtil.success(userCenter.getSessionModel(UserSessionObject.class));
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/verifyUpdPhoneSmsCode", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "验证修改手机号验证码")
public ResponseData verifyUpdPhoneSmsCode(@RequestBody JSONObject body) {
try {
if (body == null
|| StringUtils.isBlank(body.getString("phone"))
|| StringUtils.isBlank(body.getString("smsCode"))) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
String phone = body.getString("phone");
// 手机号的验证码
Object phoneCodeObject = redisUtil.get("SMS_UPDATE_PHONE_CODE:" + phone);
if (phoneCodeObject == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误或已失效");
}
if (!body.getString("smsCode").equals(phoneCodeObject.toString())) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误或已失效");
}
redisUtil.del("SMS_UPDATE_PHONE_CODE:" + phone);
return ResponseMsgUtil.success(true);
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/updatePhone", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "修改手机号")
@ -121,6 +191,9 @@ public class UserController {
if (userSession.getUser().getPhone().equals(phone)) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "新手机号与现绑定手机号相同");
}
if (userService.getUser(phone) != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "手机号已被绑定");
}
// 校验手机号格式
if (!MemberValidateUtil.validatePhone(phone)) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请输入正确的手机号");
@ -131,10 +204,10 @@ public class UserController {
// 手机号的验证码
Object phoneCodeObject = redisUtil.get("SMS_UPDATE_PHONE_CODE:" + phone);
if (phoneCodeObject == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误或已失效");
}
if (!body.getString("smsCode").equals(phoneCodeObject.toString())) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "短信验证码错误或已失效");
}
redisUtil.del("SMS_UPDATE_PHONE_CODE:" + phone);

@ -0,0 +1,60 @@
package com.hfkj.controller;
import com.hfkj.common.security.UserCenter;
import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.entity.BsUserInviteCode;
import com.hfkj.model.ResponseData;
import com.hfkj.model.UserSessionObject;
import com.hfkj.service.user.BsUserInviteCodeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
/**
* @className: ClientController
* @author: HuRui
* @date: 2024/9/6
**/
@Controller
@RequestMapping(value="/userInviteCode")
@Api(value="用户邀请码")
public class UserInviteCodeController {
@Resource
private BsUserInviteCodeService userInviteCodeService;
@Autowired
private UserCenter userCenter;
@RequestMapping(value = "/query", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "获取邀请码")
public ResponseData query() {
try {
// 获取用户session
UserSessionObject session = userCenter.getSessionModel(UserSessionObject.class);
// 查询用户邀请码
BsUserInviteCode userInviteCode = userInviteCodeService.getDetail(session.getUser().getId());
if (userInviteCode == null) {
// 没有就创建
userInviteCode = userInviteCodeService.create(session.getUser().getId());
}
Map<String,Object> param = new HashMap<>();
// 邀请码
param.put("inviteUserId", userInviteCode.getUserId());
// 二维码
param.put("qrCode", userInviteCode.getQrCodeImg());
return ResponseMsgUtil.success(param);
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

@ -5,7 +5,11 @@ import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.hfkj.config.CommonSysConst;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
@ -16,6 +20,13 @@ import java.io.IOException;
*/
public class QRCodeGenerator {
/**
* 生成
* @param text 内容
* @param width 宽度
* @param height 高度
* @param filePath 存放路径
*/
public static void generateQRCodeImage(String text, int width, int height, String filePath) throws WriterException, IOException {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
@ -27,7 +38,22 @@ public class QRCodeGenerator {
}
//Path path = FileSystems.getDefault().getPath(filePath);
MatrixToImageWriter.writeToFile(bitMatrix, "PNG", file);
}
/**
* 二维码生产自定义图片
* @param path
* @param bgPath
* @param x
* @param y
* @throws Exception
*/
public static void overlapImage(String path , String bgPath , int x, int y) throws Exception {
BufferedImage read = ImageIO.read(new File(CommonSysConst.getSysConfig().getFilesystem() + bgPath));
Image image = ImageIO.read(new File(CommonSysConst.getSysConfig().getFilesystem() + path));
Graphics graphics = read.getGraphics();
graphics.drawImage(image, x ,y, null);
ImageIO.write(read , "png" , new File(CommonSysConst.getSysConfig().getFilesystem() + "/" + path));
}
public static void main(String[] args) {

@ -0,0 +1,31 @@
package com.hfkj.common.utils;
import java.util.Random;
/**
*
* @className: RandomUtils
* @author: HuRui
* @date: 2024/4/24
**/
public class RandomUtils {
/**
* 生成随机数
* @param length 长度
* @param zero 是否包含零
* @return
*/
public static String number(int length, boolean zero) {
String sl = "123456789";
if (zero) {
sl += "0";
}
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < length ; i ++){
sb.append(sl.charAt(new Random().nextInt(sl.length())));
}
return sb.toString();
}
}

@ -11,6 +11,16 @@ import org.springframework.stereotype.Component;
@Data
public class CommonSysConfig {
/**
* 域名
*/
private String domain;
/**
* 文件路径
*/
private String filesystem;
/**
* 淘宝请求参数
*/

@ -0,0 +1,108 @@
package com.hfkj.dao;
import com.hfkj.entity.BsUserInviteCode;
import com.hfkj.entity.BsUserInviteCodeExample;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.type.JdbcType;
import org.springframework.stereotype.Repository;
/**
*
* 代码由工具生成,请勿修改!!!
* 如果需要扩展请在其父类进行扩展
*
**/
@Repository
public interface BsUserInviteCodeMapper extends BsUserInviteCodeMapperExt {
@SelectProvider(type=BsUserInviteCodeSqlProvider.class, method="countByExample")
long countByExample(BsUserInviteCodeExample example);
@DeleteProvider(type=BsUserInviteCodeSqlProvider.class, method="deleteByExample")
int deleteByExample(BsUserInviteCodeExample example);
@Delete({
"delete from bs_user_invite_code",
"where id = #{id,jdbcType=BIGINT}"
})
int deleteByPrimaryKey(Long id);
@Insert({
"insert into bs_user_invite_code (user_id, qr_code_img, ",
"`status`, create_time, ",
"ext_1, ext_2, ext_3)",
"values (#{userId,jdbcType=BIGINT}, #{qrCodeImg,jdbcType=VARCHAR}, ",
"#{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
})
@Options(useGeneratedKeys=true,keyProperty="id")
int insert(BsUserInviteCode record);
@InsertProvider(type=BsUserInviteCodeSqlProvider.class, method="insertSelective")
@Options(useGeneratedKeys=true,keyProperty="id")
int insertSelective(BsUserInviteCode record);
@SelectProvider(type=BsUserInviteCodeSqlProvider.class, method="selectByExample")
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT),
@Result(column="qr_code_img", property="qrCodeImg", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
List<BsUserInviteCode> selectByExample(BsUserInviteCodeExample example);
@Select({
"select",
"id, user_id, qr_code_img, `status`, create_time, ext_1, ext_2, ext_3",
"from bs_user_invite_code",
"where id = #{id,jdbcType=BIGINT}"
})
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT),
@Result(column="qr_code_img", property="qrCodeImg", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
BsUserInviteCode selectByPrimaryKey(Long id);
@UpdateProvider(type=BsUserInviteCodeSqlProvider.class, method="updateByExampleSelective")
int updateByExampleSelective(@Param("record") BsUserInviteCode record, @Param("example") BsUserInviteCodeExample example);
@UpdateProvider(type=BsUserInviteCodeSqlProvider.class, method="updateByExample")
int updateByExample(@Param("record") BsUserInviteCode record, @Param("example") BsUserInviteCodeExample example);
@UpdateProvider(type=BsUserInviteCodeSqlProvider.class, method="updateByPrimaryKeySelective")
int updateByPrimaryKeySelective(BsUserInviteCode record);
@Update({
"update bs_user_invite_code",
"set user_id = #{userId,jdbcType=BIGINT},",
"qr_code_img = #{qrCodeImg,jdbcType=VARCHAR},",
"`status` = #{status,jdbcType=INTEGER},",
"create_time = #{createTime,jdbcType=TIMESTAMP},",
"ext_1 = #{ext1,jdbcType=VARCHAR},",
"ext_2 = #{ext2,jdbcType=VARCHAR},",
"ext_3 = #{ext3,jdbcType=VARCHAR}",
"where id = #{id,jdbcType=BIGINT}"
})
int updateByPrimaryKey(BsUserInviteCode record);
}

@ -0,0 +1,7 @@
package com.hfkj.dao;
/**
* mapper扩展类
*/
public interface BsUserInviteCodeMapperExt {
}

@ -0,0 +1,276 @@
package com.hfkj.dao;
import com.hfkj.entity.BsUserInviteCode;
import com.hfkj.entity.BsUserInviteCodeExample.Criteria;
import com.hfkj.entity.BsUserInviteCodeExample.Criterion;
import com.hfkj.entity.BsUserInviteCodeExample;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.jdbc.SQL;
public class BsUserInviteCodeSqlProvider {
public String countByExample(BsUserInviteCodeExample example) {
SQL sql = new SQL();
sql.SELECT("count(*)").FROM("bs_user_invite_code");
applyWhere(sql, example, false);
return sql.toString();
}
public String deleteByExample(BsUserInviteCodeExample example) {
SQL sql = new SQL();
sql.DELETE_FROM("bs_user_invite_code");
applyWhere(sql, example, false);
return sql.toString();
}
public String insertSelective(BsUserInviteCode record) {
SQL sql = new SQL();
sql.INSERT_INTO("bs_user_invite_code");
if (record.getUserId() != null) {
sql.VALUES("user_id", "#{userId,jdbcType=BIGINT}");
}
if (record.getQrCodeImg() != null) {
sql.VALUES("qr_code_img", "#{qrCodeImg,jdbcType=VARCHAR}");
}
if (record.getStatus() != null) {
sql.VALUES("`status`", "#{status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.VALUES("ext_1", "#{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.VALUES("ext_2", "#{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.VALUES("ext_3", "#{ext3,jdbcType=VARCHAR}");
}
return sql.toString();
}
public String selectByExample(BsUserInviteCodeExample example) {
SQL sql = new SQL();
if (example != null && example.isDistinct()) {
sql.SELECT_DISTINCT("id");
} else {
sql.SELECT("id");
}
sql.SELECT("user_id");
sql.SELECT("qr_code_img");
sql.SELECT("`status`");
sql.SELECT("create_time");
sql.SELECT("ext_1");
sql.SELECT("ext_2");
sql.SELECT("ext_3");
sql.FROM("bs_user_invite_code");
applyWhere(sql, example, false);
if (example != null && example.getOrderByClause() != null) {
sql.ORDER_BY(example.getOrderByClause());
}
return sql.toString();
}
public String updateByExampleSelective(Map<String, Object> parameter) {
BsUserInviteCode record = (BsUserInviteCode) parameter.get("record");
BsUserInviteCodeExample example = (BsUserInviteCodeExample) parameter.get("example");
SQL sql = new SQL();
sql.UPDATE("bs_user_invite_code");
if (record.getId() != null) {
sql.SET("id = #{record.id,jdbcType=BIGINT}");
}
if (record.getUserId() != null) {
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}");
}
if (record.getQrCodeImg() != null) {
sql.SET("qr_code_img = #{record.qrCodeImg,jdbcType=VARCHAR}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
}
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByExample(Map<String, Object> parameter) {
SQL sql = new SQL();
sql.UPDATE("bs_user_invite_code");
sql.SET("id = #{record.id,jdbcType=BIGINT}");
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}");
sql.SET("qr_code_img = #{record.qrCodeImg,jdbcType=VARCHAR}");
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
BsUserInviteCodeExample example = (BsUserInviteCodeExample) parameter.get("example");
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByPrimaryKeySelective(BsUserInviteCode record) {
SQL sql = new SQL();
sql.UPDATE("bs_user_invite_code");
if (record.getUserId() != null) {
sql.SET("user_id = #{userId,jdbcType=BIGINT}");
}
if (record.getQrCodeImg() != null) {
sql.SET("qr_code_img = #{qrCodeImg,jdbcType=VARCHAR}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{ext3,jdbcType=VARCHAR}");
}
sql.WHERE("id = #{id,jdbcType=BIGINT}");
return sql.toString();
}
protected void applyWhere(SQL sql, BsUserInviteCodeExample example, boolean includeExamplePhrase) {
if (example == null) {
return;
}
String parmPhrase1;
String parmPhrase1_th;
String parmPhrase2;
String parmPhrase2_th;
String parmPhrase3;
String parmPhrase3_th;
if (includeExamplePhrase) {
parmPhrase1 = "%s #{example.oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{example.oredCriteria[%d].allCriteria[%d].value} and #{example.oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{example.oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{example.oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{example.oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
} else {
parmPhrase1 = "%s #{oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{oredCriteria[%d].allCriteria[%d].value} and #{oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
}
StringBuilder sb = new StringBuilder();
List<Criteria> oredCriteria = example.getOredCriteria();
boolean firstCriteria = true;
for (int i = 0; i < oredCriteria.size(); i++) {
Criteria criteria = oredCriteria.get(i);
if (criteria.isValid()) {
if (firstCriteria) {
firstCriteria = false;
} else {
sb.append(" or ");
}
sb.append('(');
List<Criterion> criterions = criteria.getAllCriteria();
boolean firstCriterion = true;
for (int j = 0; j < criterions.size(); j++) {
Criterion criterion = criterions.get(j);
if (firstCriterion) {
firstCriterion = false;
} else {
sb.append(" and ");
}
if (criterion.isNoValue()) {
sb.append(criterion.getCondition());
} else if (criterion.isSingleValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase1, criterion.getCondition(), i, j));
} else {
sb.append(String.format(parmPhrase1_th, criterion.getCondition(), i, j,criterion.getTypeHandler()));
}
} else if (criterion.isBetweenValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase2, criterion.getCondition(), i, j, i, j));
} else {
sb.append(String.format(parmPhrase2_th, criterion.getCondition(), i, j, criterion.getTypeHandler(), i, j, criterion.getTypeHandler()));
}
} else if (criterion.isListValue()) {
sb.append(criterion.getCondition());
sb.append(" (");
List<?> listItems = (List<?>) criterion.getValue();
boolean comma = false;
for (int k = 0; k < listItems.size(); k++) {
if (comma) {
sb.append(", ");
} else {
comma = true;
}
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase3, i, j, k));
} else {
sb.append(String.format(parmPhrase3_th, i, j, k, criterion.getTypeHandler()));
}
}
sb.append(')');
}
}
sb.append(')');
}
}
if (sb.length() > 0) {
sql.WHERE(sb.toString());
}
}
}

@ -40,11 +40,13 @@ public interface BsUserMapper extends BsUserMapperExt {
@Insert({
"insert into bs_user (head_img, `name`, ",
"phone, grade, `status`, ",
"phone, grade, wechat_num, ",
"invite_user_id, `status`, ",
"create_time, update_time, ",
"ext_1, ext_2, ext_3)",
"values (#{headImg,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, ",
"#{phone,jdbcType=VARCHAR}, #{grade,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, ",
"#{phone,jdbcType=VARCHAR}, #{grade,jdbcType=INTEGER}, #{wechatNum,jdbcType=VARCHAR}, ",
"#{inviteUserId,jdbcType=BIGINT}, #{status,jdbcType=INTEGER}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
})
@ -62,6 +64,8 @@ public interface BsUserMapper extends BsUserMapperExt {
@Result(column="name", property="name", jdbcType=JdbcType.VARCHAR),
@Result(column="phone", property="phone", jdbcType=JdbcType.VARCHAR),
@Result(column="grade", property="grade", jdbcType=JdbcType.INTEGER),
@Result(column="wechat_num", property="wechatNum", jdbcType=JdbcType.VARCHAR),
@Result(column="invite_user_id", property="inviteUserId", jdbcType=JdbcType.BIGINT),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
@ -73,8 +77,8 @@ public interface BsUserMapper extends BsUserMapperExt {
@Select({
"select",
"id, head_img, `name`, phone, grade, `status`, create_time, update_time, ext_1, ",
"ext_2, ext_3",
"id, head_img, `name`, phone, grade, wechat_num, invite_user_id, `status`, create_time, ",
"update_time, ext_1, ext_2, ext_3",
"from bs_user",
"where id = #{id,jdbcType=BIGINT}"
})
@ -84,6 +88,8 @@ public interface BsUserMapper extends BsUserMapperExt {
@Result(column="name", property="name", jdbcType=JdbcType.VARCHAR),
@Result(column="phone", property="phone", jdbcType=JdbcType.VARCHAR),
@Result(column="grade", property="grade", jdbcType=JdbcType.INTEGER),
@Result(column="wechat_num", property="wechatNum", jdbcType=JdbcType.VARCHAR),
@Result(column="invite_user_id", property="inviteUserId", jdbcType=JdbcType.BIGINT),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
@ -108,6 +114,8 @@ public interface BsUserMapper extends BsUserMapperExt {
"`name` = #{name,jdbcType=VARCHAR},",
"phone = #{phone,jdbcType=VARCHAR},",
"grade = #{grade,jdbcType=INTEGER},",
"wechat_num = #{wechatNum,jdbcType=VARCHAR},",
"invite_user_id = #{inviteUserId,jdbcType=BIGINT},",
"`status` = #{status,jdbcType=INTEGER},",
"create_time = #{createTime,jdbcType=TIMESTAMP},",
"update_time = #{updateTime,jdbcType=TIMESTAMP},",

@ -44,6 +44,14 @@ public class BsUserSqlProvider {
sql.VALUES("grade", "#{grade,jdbcType=INTEGER}");
}
if (record.getWechatNum() != null) {
sql.VALUES("wechat_num", "#{wechatNum,jdbcType=VARCHAR}");
}
if (record.getInviteUserId() != null) {
sql.VALUES("invite_user_id", "#{inviteUserId,jdbcType=BIGINT}");
}
if (record.getStatus() != null) {
sql.VALUES("`status`", "#{status,jdbcType=INTEGER}");
}
@ -82,6 +90,8 @@ public class BsUserSqlProvider {
sql.SELECT("`name`");
sql.SELECT("phone");
sql.SELECT("grade");
sql.SELECT("wechat_num");
sql.SELECT("invite_user_id");
sql.SELECT("`status`");
sql.SELECT("create_time");
sql.SELECT("update_time");
@ -125,6 +135,14 @@ public class BsUserSqlProvider {
sql.SET("grade = #{record.grade,jdbcType=INTEGER}");
}
if (record.getWechatNum() != null) {
sql.SET("wechat_num = #{record.wechatNum,jdbcType=VARCHAR}");
}
if (record.getInviteUserId() != null) {
sql.SET("invite_user_id = #{record.inviteUserId,jdbcType=BIGINT}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
}
@ -162,6 +180,8 @@ public class BsUserSqlProvider {
sql.SET("`name` = #{record.name,jdbcType=VARCHAR}");
sql.SET("phone = #{record.phone,jdbcType=VARCHAR}");
sql.SET("grade = #{record.grade,jdbcType=INTEGER}");
sql.SET("wechat_num = #{record.wechatNum,jdbcType=VARCHAR}");
sql.SET("invite_user_id = #{record.inviteUserId,jdbcType=BIGINT}");
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
sql.SET("update_time = #{record.updateTime,jdbcType=TIMESTAMP}");
@ -194,6 +214,14 @@ public class BsUserSqlProvider {
sql.SET("grade = #{grade,jdbcType=INTEGER}");
}
if (record.getWechatNum() != null) {
sql.SET("wechat_num = #{wechatNum,jdbcType=VARCHAR}");
}
if (record.getInviteUserId() != null) {
sql.SET("invite_user_id = #{inviteUserId,jdbcType=BIGINT}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{status,jdbcType=INTEGER}");
}

@ -38,6 +38,16 @@ public class BsUser implements Serializable {
*/
private Integer grade;
/**
* 微信号
*/
private String wechatNum;
/**
* 邀请人id
*/
private Long inviteUserId;
/**
* 状态 0删除 1正常 2禁用
*/
@ -101,6 +111,22 @@ public class BsUser implements Serializable {
this.grade = grade;
}
public String getWechatNum() {
return wechatNum;
}
public void setWechatNum(String wechatNum) {
this.wechatNum = wechatNum;
}
public Long getInviteUserId() {
return inviteUserId;
}
public void setInviteUserId(Long inviteUserId) {
this.inviteUserId = inviteUserId;
}
public Integer getStatus() {
return status;
}
@ -166,6 +192,8 @@ public class BsUser implements Serializable {
&& (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
&& (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone()))
&& (this.getGrade() == null ? other.getGrade() == null : this.getGrade().equals(other.getGrade()))
&& (this.getWechatNum() == null ? other.getWechatNum() == null : this.getWechatNum().equals(other.getWechatNum()))
&& (this.getInviteUserId() == null ? other.getInviteUserId() == null : this.getInviteUserId().equals(other.getInviteUserId()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
@ -183,6 +211,8 @@ public class BsUser implements Serializable {
result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode());
result = prime * result + ((getGrade() == null) ? 0 : getGrade().hashCode());
result = prime * result + ((getWechatNum() == null) ? 0 : getWechatNum().hashCode());
result = prime * result + ((getInviteUserId() == null) ? 0 : getInviteUserId().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
@ -203,6 +233,8 @@ public class BsUser implements Serializable {
sb.append(", name=").append(name);
sb.append(", phone=").append(phone);
sb.append(", grade=").append(grade);
sb.append(", wechatNum=").append(wechatNum);
sb.append(", inviteUserId=").append(inviteUserId);
sb.append(", status=").append(status);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);

@ -455,6 +455,136 @@ public class BsUserExample {
return (Criteria) this;
}
public Criteria andWechatNumIsNull() {
addCriterion("wechat_num is null");
return (Criteria) this;
}
public Criteria andWechatNumIsNotNull() {
addCriterion("wechat_num is not null");
return (Criteria) this;
}
public Criteria andWechatNumEqualTo(String value) {
addCriterion("wechat_num =", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumNotEqualTo(String value) {
addCriterion("wechat_num <>", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumGreaterThan(String value) {
addCriterion("wechat_num >", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumGreaterThanOrEqualTo(String value) {
addCriterion("wechat_num >=", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumLessThan(String value) {
addCriterion("wechat_num <", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumLessThanOrEqualTo(String value) {
addCriterion("wechat_num <=", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumLike(String value) {
addCriterion("wechat_num like", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumNotLike(String value) {
addCriterion("wechat_num not like", value, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumIn(List<String> values) {
addCriterion("wechat_num in", values, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumNotIn(List<String> values) {
addCriterion("wechat_num not in", values, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumBetween(String value1, String value2) {
addCriterion("wechat_num between", value1, value2, "wechatNum");
return (Criteria) this;
}
public Criteria andWechatNumNotBetween(String value1, String value2) {
addCriterion("wechat_num not between", value1, value2, "wechatNum");
return (Criteria) this;
}
public Criteria andInviteUserIdIsNull() {
addCriterion("invite_user_id is null");
return (Criteria) this;
}
public Criteria andInviteUserIdIsNotNull() {
addCriterion("invite_user_id is not null");
return (Criteria) this;
}
public Criteria andInviteUserIdEqualTo(Long value) {
addCriterion("invite_user_id =", value, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdNotEqualTo(Long value) {
addCriterion("invite_user_id <>", value, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdGreaterThan(Long value) {
addCriterion("invite_user_id >", value, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdGreaterThanOrEqualTo(Long value) {
addCriterion("invite_user_id >=", value, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdLessThan(Long value) {
addCriterion("invite_user_id <", value, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdLessThanOrEqualTo(Long value) {
addCriterion("invite_user_id <=", value, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdIn(List<Long> values) {
addCriterion("invite_user_id in", values, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdNotIn(List<Long> values) {
addCriterion("invite_user_id not in", values, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdBetween(Long value1, Long value2) {
addCriterion("invite_user_id between", value1, value2, "inviteUserId");
return (Criteria) this;
}
public Criteria andInviteUserIdNotBetween(Long value1, Long value2) {
addCriterion("invite_user_id not between", value1, value2, "inviteUserId");
return (Criteria) this;
}
public Criteria andStatusIsNull() {
addCriterion("`status` is null");
return (Criteria) this;

@ -0,0 +1,168 @@
package com.hfkj.entity;
import java.io.Serializable;
import java.util.Date;
/**
* bs_user_invite_code
* @author
*/
/**
*
* 代码由工具生成
*
**/
public class BsUserInviteCode implements Serializable {
/**
* 主键
*/
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 二维码地址
*/
private String qrCodeImg;
/**
* 状态 0不可用 1正常
*/
private Integer status;
/**
* 创建时间
*/
private Date createTime;
private String ext1;
private String ext2;
private String ext3;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getQrCodeImg() {
return qrCodeImg;
}
public void setQrCodeImg(String qrCodeImg) {
this.qrCodeImg = qrCodeImg;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getExt1() {
return ext1;
}
public void setExt1(String ext1) {
this.ext1 = ext1;
}
public String getExt2() {
return ext2;
}
public void setExt2(String ext2) {
this.ext2 = ext2;
}
public String getExt3() {
return ext3;
}
public void setExt3(String ext3) {
this.ext3 = ext3;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
BsUserInviteCode other = (BsUserInviteCode) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
&& (this.getQrCodeImg() == null ? other.getQrCodeImg() == null : this.getQrCodeImg().equals(other.getQrCodeImg()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1()))
&& (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2()))
&& (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
result = prime * result + ((getQrCodeImg() == null) ? 0 : getQrCodeImg().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode());
result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode());
result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", userId=").append(userId);
sb.append(", qrCodeImg=").append(qrCodeImg);
sb.append(", status=").append(status);
sb.append(", createTime=").append(createTime);
sb.append(", ext1=").append(ext1);
sb.append(", ext2=").append(ext2);
sb.append(", ext3=").append(ext3);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,743 @@
package com.hfkj.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class BsUserInviteCodeExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
private Integer limit;
private Long offset;
public BsUserInviteCodeExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public Integer getLimit() {
return limit;
}
public void setOffset(Long offset) {
this.offset = offset;
}
public Long getOffset() {
return offset;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andUserIdIsNull() {
addCriterion("user_id is null");
return (Criteria) this;
}
public Criteria andUserIdIsNotNull() {
addCriterion("user_id is not null");
return (Criteria) this;
}
public Criteria andUserIdEqualTo(Long value) {
addCriterion("user_id =", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotEqualTo(Long value) {
addCriterion("user_id <>", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdGreaterThan(Long value) {
addCriterion("user_id >", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
addCriterion("user_id >=", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdLessThan(Long value) {
addCriterion("user_id <", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdLessThanOrEqualTo(Long value) {
addCriterion("user_id <=", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdIn(List<Long> values) {
addCriterion("user_id in", values, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotIn(List<Long> values) {
addCriterion("user_id not in", values, "userId");
return (Criteria) this;
}
public Criteria andUserIdBetween(Long value1, Long value2) {
addCriterion("user_id between", value1, value2, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotBetween(Long value1, Long value2) {
addCriterion("user_id not between", value1, value2, "userId");
return (Criteria) this;
}
public Criteria andQrCodeImgIsNull() {
addCriterion("qr_code_img is null");
return (Criteria) this;
}
public Criteria andQrCodeImgIsNotNull() {
addCriterion("qr_code_img is not null");
return (Criteria) this;
}
public Criteria andQrCodeImgEqualTo(String value) {
addCriterion("qr_code_img =", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgNotEqualTo(String value) {
addCriterion("qr_code_img <>", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgGreaterThan(String value) {
addCriterion("qr_code_img >", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgGreaterThanOrEqualTo(String value) {
addCriterion("qr_code_img >=", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgLessThan(String value) {
addCriterion("qr_code_img <", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgLessThanOrEqualTo(String value) {
addCriterion("qr_code_img <=", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgLike(String value) {
addCriterion("qr_code_img like", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgNotLike(String value) {
addCriterion("qr_code_img not like", value, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgIn(List<String> values) {
addCriterion("qr_code_img in", values, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgNotIn(List<String> values) {
addCriterion("qr_code_img not in", values, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgBetween(String value1, String value2) {
addCriterion("qr_code_img between", value1, value2, "qrCodeImg");
return (Criteria) this;
}
public Criteria andQrCodeImgNotBetween(String value1, String value2) {
addCriterion("qr_code_img not between", value1, value2, "qrCodeImg");
return (Criteria) this;
}
public Criteria andStatusIsNull() {
addCriterion("`status` is null");
return (Criteria) this;
}
public Criteria andStatusIsNotNull() {
addCriterion("`status` is not null");
return (Criteria) this;
}
public Criteria andStatusEqualTo(Integer value) {
addCriterion("`status` =", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotEqualTo(Integer value) {
addCriterion("`status` <>", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThan(Integer value) {
addCriterion("`status` >", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("`status` >=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThan(Integer value) {
addCriterion("`status` <", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThanOrEqualTo(Integer value) {
addCriterion("`status` <=", value, "status");
return (Criteria) this;
}
public Criteria andStatusIn(List<Integer> values) {
addCriterion("`status` in", values, "status");
return (Criteria) this;
}
public Criteria andStatusNotIn(List<Integer> values) {
addCriterion("`status` not in", values, "status");
return (Criteria) this;
}
public Criteria andStatusBetween(Integer value1, Integer value2) {
addCriterion("`status` between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andStatusNotBetween(Integer value1, Integer value2) {
addCriterion("`status` not between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andExt1IsNull() {
addCriterion("ext_1 is null");
return (Criteria) this;
}
public Criteria andExt1IsNotNull() {
addCriterion("ext_1 is not null");
return (Criteria) this;
}
public Criteria andExt1EqualTo(String value) {
addCriterion("ext_1 =", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotEqualTo(String value) {
addCriterion("ext_1 <>", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThan(String value) {
addCriterion("ext_1 >", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThanOrEqualTo(String value) {
addCriterion("ext_1 >=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThan(String value) {
addCriterion("ext_1 <", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThanOrEqualTo(String value) {
addCriterion("ext_1 <=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1Like(String value) {
addCriterion("ext_1 like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotLike(String value) {
addCriterion("ext_1 not like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1In(List<String> values) {
addCriterion("ext_1 in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotIn(List<String> values) {
addCriterion("ext_1 not in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1Between(String value1, String value2) {
addCriterion("ext_1 between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotBetween(String value1, String value2) {
addCriterion("ext_1 not between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt2IsNull() {
addCriterion("ext_2 is null");
return (Criteria) this;
}
public Criteria andExt2IsNotNull() {
addCriterion("ext_2 is not null");
return (Criteria) this;
}
public Criteria andExt2EqualTo(String value) {
addCriterion("ext_2 =", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotEqualTo(String value) {
addCriterion("ext_2 <>", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThan(String value) {
addCriterion("ext_2 >", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThanOrEqualTo(String value) {
addCriterion("ext_2 >=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThan(String value) {
addCriterion("ext_2 <", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThanOrEqualTo(String value) {
addCriterion("ext_2 <=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2Like(String value) {
addCriterion("ext_2 like", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotLike(String value) {
addCriterion("ext_2 not like", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2In(List<String> values) {
addCriterion("ext_2 in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotIn(List<String> values) {
addCriterion("ext_2 not in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2Between(String value1, String value2) {
addCriterion("ext_2 between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotBetween(String value1, String value2) {
addCriterion("ext_2 not between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt3IsNull() {
addCriterion("ext_3 is null");
return (Criteria) this;
}
public Criteria andExt3IsNotNull() {
addCriterion("ext_3 is not null");
return (Criteria) this;
}
public Criteria andExt3EqualTo(String value) {
addCriterion("ext_3 =", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotEqualTo(String value) {
addCriterion("ext_3 <>", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThan(String value) {
addCriterion("ext_3 >", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThanOrEqualTo(String value) {
addCriterion("ext_3 >=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThan(String value) {
addCriterion("ext_3 <", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThanOrEqualTo(String value) {
addCriterion("ext_3 <=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3Like(String value) {
addCriterion("ext_3 like", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotLike(String value) {
addCriterion("ext_3 not like", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3In(List<String> values) {
addCriterion("ext_3 in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotIn(List<String> values) {
addCriterion("ext_3 not in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3Between(String value1, String value2) {
addCriterion("ext_3 between", value1, value2, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotBetween(String value1, String value2) {
addCriterion("ext_3 not between", value1, value2, "ext3");
return (Criteria) this;
}
}
/**
*/
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

@ -0,0 +1,29 @@
package com.hfkj.service.user;
import com.google.zxing.WriterException;
import com.hfkj.entity.BsUserInviteCode;
import java.io.IOException;
/**
* 用户邀请码
* @className: UserInviteCodeService
* @author: HuRui
* @date: 2024/9/9
**/
public interface BsUserInviteCodeService {
/**
* 创建
* @param userId
*/
BsUserInviteCode create(Long userId) throws Exception;
/**
* 查询邀请码
* @param userId
* @return
*/
BsUserInviteCode getDetail(Long userId);
}

@ -26,6 +26,20 @@ public interface BsUserService {
*/
void updatePhone(Long userId, String newPhone) throws Exception;
/**
* 修改微信号
* @param userId
* @param wechatNum
*/
void updateWechatNum(Long userId, String wechatNum) throws Exception;
/**
* 绑定邀请人
* @param userId
* @param inviteUseId
*/
void bindInviteUser(Long userId, Long inviteUseId) throws Exception;
/**
* 查询详情
* @param userId
@ -44,18 +58,20 @@ public interface BsUserService {
* 用户注册
* @param phone 手机号
* @param other 其他参数
* @param inviteUseId 邀请人id
* @return
* @throws Exception
*/
BsUser register(String phone, Map<String, Object> other);
BsUser register(String phone, Map<String, Object> other, Long inviteUseId);
/**
* 用户登录
* @param phone 用户手机号
* @param other 其他参数
* @param inviteUseId 邀请人id
* @return
* @throws Exception
*/
SessionObject login(String phone, UserLoginType loginType, Map<String, Object> other) throws Exception;
SessionObject login(String phone, UserLoginType loginType, Map<String, Object> other,Long inviteUseId) throws Exception;
}

@ -0,0 +1,78 @@
package com.hfkj.service.user.impl;
import com.hfkj.common.QRCodeGenerator;
import com.hfkj.common.utils.RandomUtils;
import com.hfkj.common.utils.RedisUtil;
import com.hfkj.config.CommonSysConfig;
import com.hfkj.config.CommonSysConst;
import com.hfkj.dao.BsUserInviteCodeMapper;
import com.hfkj.entity.BsUserInviteCode;
import com.hfkj.entity.BsUserInviteCodeExample;
import com.hfkj.service.user.BsUserInviteCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* @className: UserInviteCodeServiceImpl
* @author: HuRui
* @date: 2024/9/9
**/
@Service("userInviteCodeService")
public class BsUserInviteCodeServiceImpl implements BsUserInviteCodeService {
@Resource
private BsUserInviteCodeMapper userInviteCodeMapper;
@Resource
private RedisUtil redisUtil;
@Autowired
private CommonSysConfig commonSysConfig;
private final static String CACHE_KEY = "USER_INVITE_CODE";
@Override
public BsUserInviteCode create(Long userId) throws Exception {
BsUserInviteCode data = new BsUserInviteCode();
data.setUserId(userId);
data.setCreateTime(new Date());
data.setStatus(1);
System.out.println(commonSysConfig.getDomain());
// 生成二维码
String fileUrl = "/userInviteCode/"+data.getUserId()+".png";
QRCodeGenerator.generateQRCodeImage(
""+data.getUserId(),
260,
260,
commonSysConfig.getFilesystem() + fileUrl
);
// 背景图
// QRCodeGenerator.overlapImage(fileUrl, "/template/qrCodeBackdrop1_1.png",740,110);
data.setQrCodeImg(fileUrl);
userInviteCodeMapper.insert(data);
// 缓存
redisUtil.hset(CACHE_KEY, data.getUserId()+"", data);
return data;
}
@Override
public BsUserInviteCode getDetail(Long userId) {
// 缓存
Object cache = redisUtil.hget(CACHE_KEY, ""+userId);
if (cache != null) {
return (BsUserInviteCode) cache;
}
BsUserInviteCodeExample example = new BsUserInviteCodeExample();
example.createCriteria().andUserIdEqualTo(userId).andStatusNotEqualTo(0);
List<BsUserInviteCode> list = userInviteCodeMapper.selectByExample(example);
if (!list.isEmpty()) {
BsUserInviteCode data = list.get(0);
// 缓存
redisUtil.hset(CACHE_KEY, ""+data.getUserId(), data);
return data;
}
return null;
}
}

@ -10,8 +10,10 @@ import com.hfkj.common.utils.RedisUtil;
import com.hfkj.dao.BsUserMapper;
import com.hfkj.entity.BsUser;
import com.hfkj.entity.BsUserExample;
import com.hfkj.entity.BsUserInviteCode;
import com.hfkj.model.UserSessionObject;
import com.hfkj.service.user.BsUserAccountService;
import com.hfkj.service.user.BsUserInviteCodeService;
import com.hfkj.service.user.BsUserLoginLogService;
import com.hfkj.service.user.BsUserService;
import com.hfkj.sysenum.user.UserGradeEnum;
@ -49,6 +51,8 @@ public class BsUserServiceImpl implements BsUserService {
private BsUserLoginLogService userLoginLogService;
@Resource
private BsUserAccountService userAccountService;
@Resource
private BsUserInviteCodeService userInviteCodeService;
private final static String CACHE_KEY = "USER";
/**
@ -77,6 +81,9 @@ public class BsUserServiceImpl implements BsUserService {
@Override
public void updatePhone(Long userId, String newPhone) throws Exception {
if (getUser(newPhone) != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "");
}
// 查询用户
BsUser user = getUser(userId);
if (user == null) {
@ -93,12 +100,48 @@ public class BsUserServiceImpl implements BsUserService {
}
@Override
public BsUser getUser(Long userId) {
public void updateWechatNum(Long userId, String wechatNum) throws Exception {
// 查询用户
BsUser user = getUser(userId);
if (user == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到用户");
}
user.setWechatNum(wechatNum);
editData(user);
BsUser user = userMapper.selectByPrimaryKey(userId);
// 加入缓存
redisUtil.hset(CACHE_KEY, user.getId().toString(), user);
return user;
// 更新session
UserSessionObject session = new UserSessionObject();
session.setUser(user);
SessionObject sessionObject = new SessionObject(userToken(user.getId()), session);
userCenter.save(sessionObject);
}
@Override
public void bindInviteUser(Long userId, Long inviteUseId) throws Exception {
// 查询用户
BsUser user = getUser(userId);
if (user == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到用户");
}
if (user.getInviteUserId() != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "已绑定过邀请人");
}
if (getUser(inviteUseId) == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的邀请人Id");
}
user.setInviteUserId(inviteUseId);
editData(user);
// 更新session
UserSessionObject session = new UserSessionObject();
session.setUser(user);
SessionObject sessionObject = new SessionObject(userToken(user.getId()), session);
userCenter.save(sessionObject);
}
@Override
public BsUser getUser(Long userId) {
return userMapper.selectByPrimaryKey(userId);
}
@Override
@ -122,12 +165,21 @@ public class BsUserServiceImpl implements BsUserService {
@Override
@Transactional(propagation= Propagation.REQUIRED,rollbackFor= {RuntimeException.class})
public BsUser register(String phone, Map<String, Object> other) {
public BsUser register(String phone, Map<String, Object> other, Long inviteUseId) {
// 查询手机号
if (getUser(phone) != null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "用户手机号已存在,请更换");
}
BsUser user = new BsUser();
if (inviteUseId != null) {
// 校验邀请码
BsUserInviteCode userInviteCode = userInviteCodeService.getDetail(inviteUseId);
if (userInviteCode == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无效的邀请码");
}
user.setInviteUserId(userInviteCode.getUserId());
}
user.setHeadImg(MapUtils.getString(other,"headImg"));
user.setName(
StringUtils.isNotBlank(MapUtils.getString(other,"name"))
@ -139,18 +191,19 @@ public class BsUserServiceImpl implements BsUserService {
user.setStatus(UserStatusEnum.status1.getCode());
editData(user);
// 创建
// 创建账户
userAccountService.create(user.getId());
return user;
}
@Override
public SessionObject login(String phone, UserLoginType loginType, Map<String, Object> other) throws Exception {
@Transactional(propagation= Propagation.REQUIRED,rollbackFor= {RuntimeException.class})
public SessionObject login(String phone, UserLoginType loginType, Map<String, Object> other, Long inviteUseId) throws Exception {
// 查询用户
BsUser user = getUser(phone);
if (user == null) {
user = register(phone, other);
user = register(phone, other, inviteUseId);
}
// 缓存
UserSessionObject session = new UserSessionObject();

@ -1,3 +1,5 @@
filesystem=/home/project/youtao/filesystem
domain=47.92.163.212
taoBaoPostUrl = https://eco.taobao.com/router/rest
taoBaoAppKey = 34807616

Loading…
Cancel
Save