diff --git a/cweb/src/main/java/com/hfkj/controller/TestController.java b/cweb/src/main/java/com/hfkj/controller/TestController.java index 4538037..277c6b4 100644 --- a/cweb/src/main/java/com/hfkj/controller/TestController.java +++ b/cweb/src/main/java/com/hfkj/controller/TestController.java @@ -10,6 +10,9 @@ import com.hfkj.model.ResponseData; import com.hfkj.service.pdd.PddService; import com.hfkj.service.taobao.TaoBaoService; +import com.hfkj.service.user.BsUserContributeService; +import com.hfkj.service.user.BsUserParentRelService; +import com.hfkj.sysenum.user.UserGradeEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -20,6 +23,12 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; + @Controller @RequestMapping(value="/test") @@ -71,8 +80,44 @@ public class TestController { return ResponseMsgUtil.exception(e); } } + @Resource + private BsUserParentRelService userParentRelService; + + @Resource + private BsUserContributeService userContributeService; + + @RequestMapping(value="/getParent",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "getParent ") + public ResponseData getParent() { + try { + + + return ResponseMsgUtil.success(userParentRelService.getParent(Arrays.asList(UserGradeEnum.grade3,UserGradeEnum.grade4), 4L)); + + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/purchase",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "purchase ") + public ResponseData purchase() { + try { + + userContributeService.purchase(new BigDecimal("10"), 4L, new HashMap<>()); + return ResponseMsgUtil.success("操作成功"); + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + } diff --git a/cweb/src/main/java/com/hfkj/controller/UserController.java b/cweb/src/main/java/com/hfkj/controller/UserController.java index 42308a7..b5cb086 100644 --- a/cweb/src/main/java/com/hfkj/controller/UserController.java +++ b/cweb/src/main/java/com/hfkj/controller/UserController.java @@ -61,7 +61,7 @@ public class UserController { } } - @RequestMapping(value = "/updateWechat", method = RequestMethod.GET) + @RequestMapping(value = "/updateWechat", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "修改用户微信号") public ResponseData updateWechat(@RequestBody JSONObject body) { @@ -212,7 +212,7 @@ public class UserController { redisUtil.del("SMS_UPDATE_PHONE_CODE:" + phone); // 更新手机号 - userService.updatePhone(userSession.getUser().getId(), body.getString("phone")); + userService.updatePhone(userSession.getUser().getId(), body.getString("newPhone")); return ResponseMsgUtil.success(userCenter.getSessionModel(UserSessionObject.class)); diff --git a/null/userInviteCode/02856152.png b/null/userInviteCode/02856152.png deleted file mode 100644 index b0d62d0..0000000 Binary files a/null/userInviteCode/02856152.png and /dev/null differ diff --git a/null/userInviteCode/21526357.png b/null/userInviteCode/21526357.png deleted file mode 100644 index f8aa959..0000000 Binary files a/null/userInviteCode/21526357.png and /dev/null differ diff --git a/null/userInviteCode/24869382.png b/null/userInviteCode/24869382.png deleted file mode 100644 index 6d43975..0000000 Binary files a/null/userInviteCode/24869382.png and /dev/null differ diff --git a/null/userInviteCode/30044329.png b/null/userInviteCode/30044329.png deleted file mode 100644 index 88e479b..0000000 Binary files a/null/userInviteCode/30044329.png and /dev/null differ diff --git a/null/userInviteCode/34612530.png b/null/userInviteCode/34612530.png deleted file mode 100644 index 85f4f6b..0000000 Binary files a/null/userInviteCode/34612530.png and /dev/null differ diff --git a/service/src/main/java/com/hfkj/dao/BsUserParentRelMapper.java b/service/src/main/java/com/hfkj/dao/BsUserParentRelMapper.java new file mode 100644 index 0000000..0ddb908 --- /dev/null +++ b/service/src/main/java/com/hfkj/dao/BsUserParentRelMapper.java @@ -0,0 +1,117 @@ +package com.hfkj.dao; + +import com.hfkj.entity.BsUserParentRel; +import com.hfkj.entity.BsUserParentRelExample; +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 BsUserParentRelMapper extends BsUserParentRelMapperExt { + @SelectProvider(type=BsUserParentRelSqlProvider.class, method="countByExample") + long countByExample(BsUserParentRelExample example); + + @DeleteProvider(type=BsUserParentRelSqlProvider.class, method="deleteByExample") + int deleteByExample(BsUserParentRelExample example); + + @Delete({ + "delete from bs_user_parent_rel", + "where id = #{id,jdbcType=BIGINT}" + }) + int deleteByPrimaryKey(Long id); + + @Insert({ + "insert into bs_user_parent_rel (parent_user_id, parent_user_grade, ", + "user_id, `status`, create_time, ", + "update_time, ext_1, ", + "ext_2, ext_3)", + "values (#{parentUserId,jdbcType=BIGINT}, #{parentUserGrade,jdbcType=INTEGER}, ", + "#{userId,jdbcType=BIGINT}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, ", + "#{updateTime,jdbcType=TIMESTAMP}, #{ext1,jdbcType=VARCHAR}, ", + "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + }) + @Options(useGeneratedKeys=true,keyProperty="id") + int insert(BsUserParentRel record); + + @InsertProvider(type=BsUserParentRelSqlProvider.class, method="insertSelective") + @Options(useGeneratedKeys=true,keyProperty="id") + int insertSelective(BsUserParentRel record); + + @SelectProvider(type=BsUserParentRelSqlProvider.class, method="selectByExample") + @Results({ + @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="parent_user_id", property="parentUserId", jdbcType=JdbcType.BIGINT), + @Result(column="parent_user_grade", property="parentUserGrade", jdbcType=JdbcType.INTEGER), + @Result(column="user_id", property="userId", 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), + @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 selectByExample(BsUserParentRelExample example); + + @Select({ + "select", + "id, parent_user_id, parent_user_grade, user_id, `status`, create_time, update_time, ", + "ext_1, ext_2, ext_3", + "from bs_user_parent_rel", + "where id = #{id,jdbcType=BIGINT}" + }) + @Results({ + @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="parent_user_id", property="parentUserId", jdbcType=JdbcType.BIGINT), + @Result(column="parent_user_grade", property="parentUserGrade", jdbcType=JdbcType.INTEGER), + @Result(column="user_id", property="userId", 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), + @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) + }) + BsUserParentRel selectByPrimaryKey(Long id); + + @UpdateProvider(type=BsUserParentRelSqlProvider.class, method="updateByExampleSelective") + int updateByExampleSelective(@Param("record") BsUserParentRel record, @Param("example") BsUserParentRelExample example); + + @UpdateProvider(type=BsUserParentRelSqlProvider.class, method="updateByExample") + int updateByExample(@Param("record") BsUserParentRel record, @Param("example") BsUserParentRelExample example); + + @UpdateProvider(type=BsUserParentRelSqlProvider.class, method="updateByPrimaryKeySelective") + int updateByPrimaryKeySelective(BsUserParentRel record); + + @Update({ + "update bs_user_parent_rel", + "set parent_user_id = #{parentUserId,jdbcType=BIGINT},", + "parent_user_grade = #{parentUserGrade,jdbcType=INTEGER},", + "user_id = #{userId,jdbcType=BIGINT},", + "`status` = #{status,jdbcType=INTEGER},", + "create_time = #{createTime,jdbcType=TIMESTAMP},", + "update_time = #{updateTime,jdbcType=TIMESTAMP},", + "ext_1 = #{ext1,jdbcType=VARCHAR},", + "ext_2 = #{ext2,jdbcType=VARCHAR},", + "ext_3 = #{ext3,jdbcType=VARCHAR}", + "where id = #{id,jdbcType=BIGINT}" + }) + int updateByPrimaryKey(BsUserParentRel record); +} \ No newline at end of file diff --git a/service/src/main/java/com/hfkj/dao/BsUserParentRelMapperExt.java b/service/src/main/java/com/hfkj/dao/BsUserParentRelMapperExt.java new file mode 100644 index 0000000..4d5013a --- /dev/null +++ b/service/src/main/java/com/hfkj/dao/BsUserParentRelMapperExt.java @@ -0,0 +1,7 @@ +package com.hfkj.dao; + +/** + * mapper扩展类 + */ +public interface BsUserParentRelMapperExt { +} \ No newline at end of file diff --git a/service/src/main/java/com/hfkj/dao/BsUserParentRelSqlProvider.java b/service/src/main/java/com/hfkj/dao/BsUserParentRelSqlProvider.java new file mode 100644 index 0000000..63db46e --- /dev/null +++ b/service/src/main/java/com/hfkj/dao/BsUserParentRelSqlProvider.java @@ -0,0 +1,304 @@ +package com.hfkj.dao; + +import com.hfkj.entity.BsUserParentRel; +import com.hfkj.entity.BsUserParentRelExample.Criteria; +import com.hfkj.entity.BsUserParentRelExample.Criterion; +import com.hfkj.entity.BsUserParentRelExample; +import java.util.List; +import java.util.Map; +import org.apache.ibatis.jdbc.SQL; + +public class BsUserParentRelSqlProvider { + + public String countByExample(BsUserParentRelExample example) { + SQL sql = new SQL(); + sql.SELECT("count(*)").FROM("bs_user_parent_rel"); + applyWhere(sql, example, false); + return sql.toString(); + } + + public String deleteByExample(BsUserParentRelExample example) { + SQL sql = new SQL(); + sql.DELETE_FROM("bs_user_parent_rel"); + applyWhere(sql, example, false); + return sql.toString(); + } + + public String insertSelective(BsUserParentRel record) { + SQL sql = new SQL(); + sql.INSERT_INTO("bs_user_parent_rel"); + + if (record.getParentUserId() != null) { + sql.VALUES("parent_user_id", "#{parentUserId,jdbcType=BIGINT}"); + } + + if (record.getParentUserGrade() != null) { + sql.VALUES("parent_user_grade", "#{parentUserGrade,jdbcType=INTEGER}"); + } + + if (record.getUserId() != null) { + sql.VALUES("user_id", "#{userId,jdbcType=BIGINT}"); + } + + if (record.getStatus() != null) { + sql.VALUES("`status`", "#{status,jdbcType=INTEGER}"); + } + + if (record.getCreateTime() != null) { + sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}"); + } + + if (record.getUpdateTime() != null) { + sql.VALUES("update_time", "#{updateTime,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(BsUserParentRelExample example) { + SQL sql = new SQL(); + if (example != null && example.isDistinct()) { + sql.SELECT_DISTINCT("id"); + } else { + sql.SELECT("id"); + } + sql.SELECT("parent_user_id"); + sql.SELECT("parent_user_grade"); + sql.SELECT("user_id"); + sql.SELECT("`status`"); + sql.SELECT("create_time"); + sql.SELECT("update_time"); + sql.SELECT("ext_1"); + sql.SELECT("ext_2"); + sql.SELECT("ext_3"); + sql.FROM("bs_user_parent_rel"); + applyWhere(sql, example, false); + + if (example != null && example.getOrderByClause() != null) { + sql.ORDER_BY(example.getOrderByClause()); + } + + return sql.toString(); + } + + public String updateByExampleSelective(Map parameter) { + BsUserParentRel record = (BsUserParentRel) parameter.get("record"); + BsUserParentRelExample example = (BsUserParentRelExample) parameter.get("example"); + + SQL sql = new SQL(); + sql.UPDATE("bs_user_parent_rel"); + + if (record.getId() != null) { + sql.SET("id = #{record.id,jdbcType=BIGINT}"); + } + + if (record.getParentUserId() != null) { + sql.SET("parent_user_id = #{record.parentUserId,jdbcType=BIGINT}"); + } + + if (record.getParentUserGrade() != null) { + sql.SET("parent_user_grade = #{record.parentUserGrade,jdbcType=INTEGER}"); + } + + if (record.getUserId() != null) { + sql.SET("user_id = #{record.userId,jdbcType=BIGINT}"); + } + + 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.getUpdateTime() != null) { + sql.SET("update_time = #{record.updateTime,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 parameter) { + SQL sql = new SQL(); + sql.UPDATE("bs_user_parent_rel"); + + sql.SET("id = #{record.id,jdbcType=BIGINT}"); + sql.SET("parent_user_id = #{record.parentUserId,jdbcType=BIGINT}"); + sql.SET("parent_user_grade = #{record.parentUserGrade,jdbcType=INTEGER}"); + sql.SET("user_id = #{record.userId,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}"); + sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}"); + sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}"); + sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}"); + + BsUserParentRelExample example = (BsUserParentRelExample) parameter.get("example"); + applyWhere(sql, example, true); + return sql.toString(); + } + + public String updateByPrimaryKeySelective(BsUserParentRel record) { + SQL sql = new SQL(); + sql.UPDATE("bs_user_parent_rel"); + + if (record.getParentUserId() != null) { + sql.SET("parent_user_id = #{parentUserId,jdbcType=BIGINT}"); + } + + if (record.getParentUserGrade() != null) { + sql.SET("parent_user_grade = #{parentUserGrade,jdbcType=INTEGER}"); + } + + if (record.getUserId() != null) { + sql.SET("user_id = #{userId,jdbcType=BIGINT}"); + } + + if (record.getStatus() != null) { + sql.SET("`status` = #{status,jdbcType=INTEGER}"); + } + + if (record.getCreateTime() != null) { + sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}"); + } + + if (record.getUpdateTime() != null) { + sql.SET("update_time = #{updateTime,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, BsUserParentRelExample 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 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 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()); + } + } +} \ No newline at end of file diff --git a/service/src/main/java/com/hfkj/entity/BsUserParentRel.java b/service/src/main/java/com/hfkj/entity/BsUserParentRel.java new file mode 100644 index 0000000..0c1c0ce --- /dev/null +++ b/service/src/main/java/com/hfkj/entity/BsUserParentRel.java @@ -0,0 +1,200 @@ +package com.hfkj.entity; + +import java.io.Serializable; +import java.util.Date; + +/** + * bs_user_parent_rel + * @author + */ +/** + * + * 代码由工具生成 + * + **/ +public class BsUserParentRel implements Serializable { + /** + * 主键 + */ + private Long id; + + /** + * 上级用户id + */ + private Long parentUserId; + + /** + * 上级用户等级 + */ + private Integer parentUserGrade; + + /** + * 用户id + */ + private Long userId; + + /** + * 状态 0:删除 1:正常 + */ + private Integer status; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; + + 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 getParentUserId() { + return parentUserId; + } + + public void setParentUserId(Long parentUserId) { + this.parentUserId = parentUserId; + } + + public Integer getParentUserGrade() { + return parentUserGrade; + } + + public void setParentUserGrade(Integer parentUserGrade) { + this.parentUserGrade = parentUserGrade; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + 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 Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + 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; + } + BsUserParentRel other = (BsUserParentRel) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getParentUserId() == null ? other.getParentUserId() == null : this.getParentUserId().equals(other.getParentUserId())) + && (this.getParentUserGrade() == null ? other.getParentUserGrade() == null : this.getParentUserGrade().equals(other.getParentUserGrade())) + && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId())) + && (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())) + && (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 + ((getParentUserId() == null) ? 0 : getParentUserId().hashCode()); + result = prime * result + ((getParentUserGrade() == null) ? 0 : getParentUserGrade().hashCode()); + result = prime * result + ((getUserId() == null) ? 0 : getUserId().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()); + 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(", parentUserId=").append(parentUserId); + sb.append(", parentUserGrade=").append(parentUserGrade); + sb.append(", userId=").append(userId); + sb.append(", status=").append(status); + sb.append(", createTime=").append(createTime); + sb.append(", updateTime=").append(updateTime); + 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(); + } +} \ No newline at end of file diff --git a/service/src/main/java/com/hfkj/entity/BsUserParentRelExample.java b/service/src/main/java/com/hfkj/entity/BsUserParentRelExample.java new file mode 100644 index 0000000..7be1ff3 --- /dev/null +++ b/service/src/main/java/com/hfkj/entity/BsUserParentRelExample.java @@ -0,0 +1,853 @@ +package com.hfkj.entity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class BsUserParentRelExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + private Integer limit; + + private Long offset; + + public BsUserParentRelExample() { + oredCriteria = new ArrayList(); + } + + 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 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 criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List 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 values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List 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 andParentUserIdIsNull() { + addCriterion("parent_user_id is null"); + return (Criteria) this; + } + + public Criteria andParentUserIdIsNotNull() { + addCriterion("parent_user_id is not null"); + return (Criteria) this; + } + + public Criteria andParentUserIdEqualTo(Long value) { + addCriterion("parent_user_id =", value, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdNotEqualTo(Long value) { + addCriterion("parent_user_id <>", value, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdGreaterThan(Long value) { + addCriterion("parent_user_id >", value, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdGreaterThanOrEqualTo(Long value) { + addCriterion("parent_user_id >=", value, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdLessThan(Long value) { + addCriterion("parent_user_id <", value, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdLessThanOrEqualTo(Long value) { + addCriterion("parent_user_id <=", value, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdIn(List values) { + addCriterion("parent_user_id in", values, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdNotIn(List values) { + addCriterion("parent_user_id not in", values, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdBetween(Long value1, Long value2) { + addCriterion("parent_user_id between", value1, value2, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserIdNotBetween(Long value1, Long value2) { + addCriterion("parent_user_id not between", value1, value2, "parentUserId"); + return (Criteria) this; + } + + public Criteria andParentUserGradeIsNull() { + addCriterion("parent_user_grade is null"); + return (Criteria) this; + } + + public Criteria andParentUserGradeIsNotNull() { + addCriterion("parent_user_grade is not null"); + return (Criteria) this; + } + + public Criteria andParentUserGradeEqualTo(Integer value) { + addCriterion("parent_user_grade =", value, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeNotEqualTo(Integer value) { + addCriterion("parent_user_grade <>", value, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeGreaterThan(Integer value) { + addCriterion("parent_user_grade >", value, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeGreaterThanOrEqualTo(Integer value) { + addCriterion("parent_user_grade >=", value, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeLessThan(Integer value) { + addCriterion("parent_user_grade <", value, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeLessThanOrEqualTo(Integer value) { + addCriterion("parent_user_grade <=", value, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeIn(List values) { + addCriterion("parent_user_grade in", values, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeNotIn(List values) { + addCriterion("parent_user_grade not in", values, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeBetween(Integer value1, Integer value2) { + addCriterion("parent_user_grade between", value1, value2, "parentUserGrade"); + return (Criteria) this; + } + + public Criteria andParentUserGradeNotBetween(Integer value1, Integer value2) { + addCriterion("parent_user_grade not between", value1, value2, "parentUserGrade"); + 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 values) { + addCriterion("user_id in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotIn(List 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 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 values) { + addCriterion("`status` in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List 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 values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List 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 andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + 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 values) { + addCriterion("ext_1 in", values, "ext1"); + return (Criteria) this; + } + + public Criteria andExt1NotIn(List 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 values) { + addCriterion("ext_2 in", values, "ext2"); + return (Criteria) this; + } + + public Criteria andExt2NotIn(List 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 values) { + addCriterion("ext_3 in", values, "ext3"); + return (Criteria) this; + } + + public Criteria andExt3NotIn(List 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); + } + } +} \ No newline at end of file diff --git a/service/src/main/java/com/hfkj/service/user/BsUserContributeService.java b/service/src/main/java/com/hfkj/service/user/BsUserContributeService.java new file mode 100644 index 0000000..473b14e --- /dev/null +++ b/service/src/main/java/com/hfkj/service/user/BsUserContributeService.java @@ -0,0 +1,21 @@ +package com.hfkj.service.user; + +import java.math.BigDecimal; +import java.util.Map; + +/** + * 用户贡献 + * @className: BsUserContributeService + * @author: HuRui + * @date: 2024/9/12 + **/ +public interface BsUserContributeService { + + /** + * 购买 + * @param rebate 返利金额 + * @param userId 用户id + */ + void purchase(BigDecimal rebate, Long userId, Map otherParam) throws Exception; + +} diff --git a/service/src/main/java/com/hfkj/service/user/BsUserParentRelService.java b/service/src/main/java/com/hfkj/service/user/BsUserParentRelService.java new file mode 100644 index 0000000..bef153d --- /dev/null +++ b/service/src/main/java/com/hfkj/service/user/BsUserParentRelService.java @@ -0,0 +1,37 @@ +package com.hfkj.service.user; + +import com.hfkj.entity.BsUser; +import com.hfkj.entity.BsUserParentRel; +import com.hfkj.sysenum.user.UserGradeEnum; + +import java.util.List; + +/** + * @className: BsUserParentRelService + * @author: HuRui + * @date: 2024/9/11 + **/ +public interface BsUserParentRelService { + + /** + * 编辑数据 + * @param data + */ + void editData(BsUserParentRel data); + + /** + * 查询详情 + * @param userId + * @return + */ + BsUserParentRel getDetailByUserId(Long userId); + + /** + * 获取上级 + * @param grade 上级等级 + * @param userId 用户id + * @return + */ + BsUserParentRel getParent(List grade, Long userId); + +} diff --git a/service/src/main/java/com/hfkj/service/user/impl/BsUserContributeServiceImpl.java b/service/src/main/java/com/hfkj/service/user/impl/BsUserContributeServiceImpl.java new file mode 100644 index 0000000..64f4c00 --- /dev/null +++ b/service/src/main/java/com/hfkj/service/user/impl/BsUserContributeServiceImpl.java @@ -0,0 +1,228 @@ +package com.hfkj.service.user.impl; + +import com.hfkj.common.exception.ErrorCode; +import com.hfkj.common.exception.ErrorHelp; +import com.hfkj.common.exception.SysCode; +import com.hfkj.entity.BsUser; +import com.hfkj.entity.BsUserParentRel; +import com.hfkj.service.sec.SecDictionaryService; +import com.hfkj.service.user.BsUserAccountService; +import com.hfkj.service.user.BsUserContributeService; +import com.hfkj.service.user.BsUserParentRelService; +import com.hfkj.service.user.BsUserService; +import com.hfkj.sysenum.user.UserAccountRecordSourceTypeEnum; +import com.hfkj.sysenum.user.UserGradeEnum; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.poi.util.ArrayUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @className: BsUserContributeServiceImpl + * @author: HuRui + * @date: 2024/9/12 + **/ +@Service("userContributeService") +public class BsUserContributeServiceImpl implements BsUserContributeService { + + @Resource + private SecDictionaryService secDictionaryService; + @Resource + private BsUserAccountService userAccountService; + @Resource + private BsUserParentRelService userParentRelService; + @Resource + private BsUserService userService; + @Override + @Transactional(propagation= Propagation.REQUIRED,rollbackFor= {RuntimeException.class}) + public void purchase(BigDecimal rebateAmount, Long userId, Map otherParam) throws Exception { + // 购买人 + BsUser user = userService.getUser(userId); + if (user == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知用户"); + } + // 等级自购奖励比例 + BigDecimal selfPurchaseReward = new BigDecimal(secDictionaryService.getDictionary("SELF_PURCHASE_REWARD", user.getGrade()+"").getCodeName()); + // 元宝汇率 + BigDecimal goldCoinExchangeRate = new BigDecimal(secDictionaryService.getDictionary("GOLD_COIN_EXCHANGE_RATE").get(0).getCodeValue()); + // 获得元宝数量 (返利金额 * 元宝汇率) * 等级自购奖励比例 + BigDecimal goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)).multiply(selfPurchaseReward).setScale(6, BigDecimal.ROUND_HALF_DOWN); + + Map userRechargeParam = new HashMap<>(); + userRechargeParam.put("sourceId", MapUtils.getLong(otherParam, "sourceId")); + userRechargeParam.put("sourceOrderNo", MapUtils.getString(otherParam, "sourceOrderNo")); + userRechargeParam.put("sourceContent", UserGradeEnum.getDataByType(user.getGrade()).getName()+"自购商品奖励"); + // 用户账户进账 + userAccountService.recharge(userId,goldCoin, UserAccountRecordSourceTypeEnum.type1, userRechargeParam); + + // 查询用户上级 + BsUserParentRel parentRel = userParentRelService.getDetailByUserId(userId); + if (parentRel != null && parentRel.getParentUserId() != null) { + if (UserGradeEnum.grade4.getCode().equals(parentRel.getParentUserGrade())) { + // 渠道 + parentGrade4(UserGradeEnum.grade4, rebateAmount, parentRel, otherParam); + + } else if (UserGradeEnum.grade3.getCode().equals(parentRel.getParentUserGrade())) { + // 团长 + parentGrade4(UserGradeEnum.grade4, rebateAmount, parentRel, otherParam); + + } else if (UserGradeEnum.grade2.getCode().equals(parentRel.getParentUserGrade())) { + // 正式会员 + } else if (UserGradeEnum.grade1.getCode().equals(parentRel.getParentUserGrade())) { + // 见习会员 + } + } + } + + /** + * 渠道 + */ + public void parentGrade4(UserGradeEnum userGrade,BigDecimal rebateAmount,BsUserParentRel parentRel,Map otherParam) throws Exception { + // 元宝汇率 + BigDecimal goldCoinExchangeRate = new BigDecimal(secDictionaryService.getDictionary("GOLD_COIN_EXCHANGE_RATE").get(0).getCodeValue()); + + // 直属贡献比例 + BigDecimal directlyContributeRate = new BigDecimal("0"); + + if (UserGradeEnum.grade1.getCode().equals(userGrade.getCode()) || UserGradeEnum.grade2.getCode().equals(userGrade.getCode())) { + directlyContributeRate = new BigDecimal("100"); + } + // 直属贡献 = (返利金额 * 元宝汇率) * 直属贡献 + BigDecimal goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)) + .multiply(directlyContributeRate.divide(new BigDecimal("100"))) + .setScale(6, BigDecimal.ROUND_HALF_DOWN); + + Map parentUserParam = new HashMap<>(); + parentUserParam.put("sourceId", MapUtils.getString(otherParam, "sourceId")); + parentUserParam.put("sourceOrderNo", MapUtils.getString(otherParam, "sourceOrderNo")); + parentUserParam.put("sourceContent", "直属会员贡献"); + // 上级账户 + userAccountService.recharge(parentRel.getParentUserId(), goldCoin, UserAccountRecordSourceTypeEnum.type1, parentUserParam); + + + // 直属贡献比例 9% + directlyContributeRate = new BigDecimal("9"); + // 直属贡献 = (返利金额 * 元宝汇率) * 直属贡献 + goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)) + .multiply(directlyContributeRate.divide(new BigDecimal("100"))) + .setScale(6, BigDecimal.ROUND_HALF_DOWN); + // 渠道贡献 + parentUserParam.clear(); + parentUserParam.put("sourceId", MapUtils.getString(otherParam, "sourceId")); + parentUserParam.put("sourceOrderNo", MapUtils.getString(otherParam, "sourceOrderNo")); + parentUserParam.put("sourceContent", "直属渠道团队贡献"); + // 渠道账户 + userAccountService.recharge(parentRel.getParentUserId(), goldCoin, UserAccountRecordSourceTypeEnum.type1, parentUserParam); + } + + /** + * 团长 + */ + public void parentGrade3(UserGradeEnum userGrade,BigDecimal rebateAmount,BsUserParentRel parentRel,Map otherParam) throws Exception { + // 元宝汇率 + BigDecimal goldCoinExchangeRate = new BigDecimal(secDictionaryService.getDictionary("GOLD_COIN_EXCHANGE_RATE").get(0).getCodeValue()); + // 直属贡献比例 + BigDecimal directlyContributeRate = new BigDecimal("0"); + + if (UserGradeEnum.grade1.getCode().equals(userGrade.getCode()) || UserGradeEnum.grade2.getCode().equals(userGrade.getCode())) { + directlyContributeRate = new BigDecimal("66.6"); + } + // 直属贡献 = (返利金额 * 元宝汇率) * 直属贡献 + BigDecimal goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)) + .multiply(directlyContributeRate.divide(new BigDecimal("100"))) + .setScale(6, BigDecimal.ROUND_HALF_DOWN); + Map parentUserParam = new HashMap<>(); + parentUserParam.put("sourceId", MapUtils.getString(otherParam, "sourceId")); + parentUserParam.put("sourceOrderNo", MapUtils.getString(otherParam, "sourceOrderNo")); + parentUserParam.put("sourceContent", "直属会员贡献"); + // 上级账户 + userAccountService.recharge(parentRel.getParentUserId(), goldCoin, UserAccountRecordSourceTypeEnum.type1, parentUserParam); + + // 递归判断找到团长或渠道 + BsUserParentRel userParentRel = userParentRelService.getParent( + Arrays.asList(UserGradeEnum.grade4, UserGradeEnum.grade3), + parentRel.getParentUserId() + ); + + if (userParentRel != null) { + if (UserGradeEnum.grade3.getCode().equals(userParentRel.getParentUserGrade())) { + // 贡献比例 10% + directlyContributeRate = new BigDecimal("10"); + // 贡献 = (返利金额 * 元宝汇率) * 直属贡献 + goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)) + .multiply(directlyContributeRate.divide(new BigDecimal("100"))) + .setScale(6, BigDecimal.ROUND_HALF_DOWN); + // 渠道贡献 + otherParam.clear(); + otherParam.put("sourceId", ""); + otherParam.put("sourceOrderNo", ""); + otherParam.put("sourceContent", "直属团长贡献"); + // 团长账户 + userAccountService.recharge(userParentRel.getUserId(), goldCoin, UserAccountRecordSourceTypeEnum.type1, otherParam); + + // 递归判断找到渠道 + userParentRel = userParentRelService.getParent(Arrays.asList(UserGradeEnum.grade4), parentRel.getParentUserId()); + if (userParentRel != null) { + // 贡献比例 13% + directlyContributeRate = new BigDecimal("13"); + // 贡献 = (返利金额 * 元宝汇率) * 直属贡献 + goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)) + .multiply(directlyContributeRate.divide(new BigDecimal("100"))) + .setScale(6, BigDecimal.ROUND_HALF_DOWN); + // 渠道贡献 + otherParam.clear(); + otherParam.put("sourceId", ""); + otherParam.put("sourceOrderNo", ""); + otherParam.put("sourceContent", "非直属团长团队贡献"); + // 团长账户 + userAccountService.recharge(userParentRel.getUserId(), goldCoin, UserAccountRecordSourceTypeEnum.type1, otherParam); + } + + } else if (UserGradeEnum.grade4.getCode().equals(userParentRel.getParentUserGrade())) { + // 递归找到团长 + BsUserParentRel teamLeader = userParentRelService.getParent(Arrays.asList(UserGradeEnum.grade3), parentRel.getParentUserId()); + if (teamLeader != null) { + // 贡献比例 2 3% + directlyContributeRate = new BigDecimal("23"); + // 贡献 = (返利金额 * 元宝汇率) * 直属贡献 + goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)) + .multiply(directlyContributeRate.divide(new BigDecimal("100"))) + .setScale(6, BigDecimal.ROUND_HALF_DOWN); + // 贡献 + otherParam.clear(); + otherParam.put("sourceId", ""); + otherParam.put("sourceOrderNo", ""); + otherParam.put("sourceContent", "直属团长团队贡献"); + // 团长账户 + userAccountService.recharge(teamLeader.getUserId(), goldCoin, UserAccountRecordSourceTypeEnum.type1, otherParam); + + + // 贡献比例 9% + directlyContributeRate = new BigDecimal("9"); + // 贡献 = (返利金额 * 元宝汇率) * 直属贡献 + goldCoin = (rebateAmount.multiply(goldCoinExchangeRate)) + .multiply(directlyContributeRate.divide(new BigDecimal("100"))) + .setScale(6, BigDecimal.ROUND_HALF_DOWN); + // 贡献 + otherParam.clear(); + otherParam.put("sourceId", ""); + otherParam.put("sourceOrderNo", ""); + otherParam.put("sourceContent", "直属渠道团队贡献"); + // 渠道账户 + userAccountService.recharge(userParentRel.getUserId(), goldCoin, UserAccountRecordSourceTypeEnum.type1, otherParam); + } + } + + } + } + +} diff --git a/service/src/main/java/com/hfkj/service/user/impl/BsUserParentRelServiceImpl.java b/service/src/main/java/com/hfkj/service/user/impl/BsUserParentRelServiceImpl.java new file mode 100644 index 0000000..fa9080e --- /dev/null +++ b/service/src/main/java/com/hfkj/service/user/impl/BsUserParentRelServiceImpl.java @@ -0,0 +1,81 @@ +package com.hfkj.service.user.impl; + +import com.hfkj.dao.BsUserParentRelMapper; +import com.hfkj.entity.BsUserParentRel; +import com.hfkj.entity.BsUserParentRelExample; +import com.hfkj.service.user.BsUserParentRelService; +import com.hfkj.sysenum.user.UserGradeEnum; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @className: BsUserParentRelServiceImpl + * @author: HuRui + * @date: 2024/9/11 + **/ +@Service("") +public class BsUserParentRelServiceImpl implements BsUserParentRelService { + @Resource + private BsUserParentRelMapper userParentRelMapper; + + @Override + public void editData(BsUserParentRel data) { + data.setUpdateTime(new Date()); + if (data.getId() == null) { + data.setStatus(1); + data.setCreateTime(new Date()); + userParentRelMapper.insert(data); + } else { + userParentRelMapper.updateByPrimaryKey(data); + } + } + + @Override + public BsUserParentRel getDetailByUserId(Long userId) { + BsUserParentRelExample example = new BsUserParentRelExample(); + example.createCriteria().andUserIdEqualTo(userId).andStatusNotEqualTo(0); + List list = userParentRelMapper.selectByExample(example); + if (!list.isEmpty()) { + return list.get(0); + } + return null; + } + + @Override + public BsUserParentRel getParent(List grade, Long userId) { + BsUserParentRel userParentRel = getDetailByUserId(userId); + if (userParentRel == null) { + return null; + } + if (!grade.stream().filter(o -> o.getCode().equals(userParentRel.getParentUserGrade())).collect(Collectors.toList()).isEmpty()) { + return userParentRel; + } + return recursionParent(grade, userParentRel.getParentUserId(), new ArrayList<>(Arrays.asList(userParentRel))); + } + + /** + * 递归获取上级 + * @param grade 等级列表,匹配其中一个等级就返回数据 + * @param parentUserId 上级用户id + * @param recursionDataList 递归的过数据列表 + * @return + */ + public BsUserParentRel recursionParent(List grade, Long parentUserId, List recursionDataList) { + BsUserParentRel userParentRel = getDetailByUserId(parentUserId); + if (userParentRel == null) { + return null; + } + // 检查是否递归过,避免关系闭环 出现死循环 + if (!recursionDataList.stream().filter(o -> o.getId().equals(userParentRel.getId())).collect(Collectors.toList()).isEmpty()) { + return null; + } + recursionDataList.add(userParentRel); + if (!grade.stream().filter(o -> o.getCode().equals(userParentRel.getParentUserGrade())).collect(Collectors.toList()).isEmpty()) { + return userParentRel; + } + return recursionParent(grade, userParentRel.getParentUserId(), recursionDataList); + } +} diff --git a/service/src/main/java/com/hfkj/sysenum/user/UserAccountRecordSourceTypeEnum.java b/service/src/main/java/com/hfkj/sysenum/user/UserAccountRecordSourceTypeEnum.java index 497e03c..0a6980b 100644 --- a/service/src/main/java/com/hfkj/sysenum/user/UserAccountRecordSourceTypeEnum.java +++ b/service/src/main/java/com/hfkj/sysenum/user/UserAccountRecordSourceTypeEnum.java @@ -9,9 +9,9 @@ import lombok.Getter; @Getter public enum UserAccountRecordSourceTypeEnum { /** - * 充值 + * 自购商品 */ - type1(1 , "充值金额"), + type1(1 , "自购商品"), ; private Integer type; diff --git a/service/src/main/java/com/hfkj/sysenum/user/UserGradeEnum.java b/service/src/main/java/com/hfkj/sysenum/user/UserGradeEnum.java index da117b6..f590981 100644 --- a/service/src/main/java/com/hfkj/sysenum/user/UserGradeEnum.java +++ b/service/src/main/java/com/hfkj/sysenum/user/UserGradeEnum.java @@ -2,6 +2,8 @@ package com.hfkj.sysenum.user; import lombok.Getter; +import java.util.Objects; + /** * 用户等级 * @className: UserStatusEnum @@ -31,12 +33,24 @@ public enum UserGradeEnum { grade4(4, "渠道"), ; - private int code; + private Integer code; private String name; - UserGradeEnum(int code, String name) { + UserGradeEnum(Integer code, String name) { this.code = code; this.name = name; } + + /** + * 查询数据 + * @param code + * @return + */ + public static UserGradeEnum getDataByType(Integer code) { + for (UserGradeEnum ele : values()) { + if (Objects.equals(code,ele.getCode())) return ele; + } + return null; + } }