增加会员总收入和今日收入展示字段,及邀请码字段

This commit is contained in:
2024-11-08 17:53:15 +08:00
parent 52c45d913a
commit 3d2ab0d77c
10 changed files with 673 additions and 27 deletions

View File

@@ -989,8 +989,10 @@ CREATE TABLE IF NOT EXISTS `ums_member` (
`growth` int(11) DEFAULT NULL COMMENT '成长值',
`luckey_count` int(11) DEFAULT NULL COMMENT '剩余抽奖次数',
`history_integration` int(11) DEFAULT NULL COMMENT '历史积分数量',
`invitation_code` varchar(15) DEFAULT NULL COMMENT '12位邀请码',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_username` (`username`),
UNIQUE KEY `idx_invitation_code` (`invitation_code`),
UNIQUE KEY `idx_phone` (`phone`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='会员表';

View File

@@ -7,11 +7,11 @@ import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
public class UmsMember implements Serializable {
private Long id;
private Long memberLevelId;
private MemberLevel memberLevel;
@ApiModelProperty(value = "用户名")
@@ -64,25 +64,25 @@ public class UmsMember implements Serializable {
@ApiModelProperty(value = "历史积分数量")
private Integer historyIntegration;
@ApiModelProperty(value = "分销实体店状态0->未开店1->已开店)")
private StoreStatus storeStatus;
/**
* 余额
*/
private BigDecimal balance;
/**
* 冻结余额
*/
private BigDecimal freeze;
/**
* 详细地址
*/
private String detailAddress;
/**
* 真实姓名
*/
@@ -94,6 +94,9 @@ public class UmsMember implements Serializable {
@ApiModelProperty(value = "排队状态:0->未排队1->排队中")
private Integer orderStatus;
@ApiModelProperty(value = "邀请码")
private String invitationCode;
private static final long serialVersionUID = 1L;
public Long getId() {
@@ -279,7 +282,7 @@ public class UmsMember implements Serializable {
public void setFreeze(BigDecimal freeze) {
this.freeze = freeze;
}
public String getDetailAddress() {
return detailAddress;
}
@@ -304,6 +307,14 @@ public class UmsMember implements Serializable {
this.orderStatus = orderStatus;
}
public String getInvitationCode() {
return invitationCode;
}
public void setInvitationCode(String invitationCode) {
this.invitationCode = invitationCode;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();

View File

@@ -1,5 +1,6 @@
package com.buy507.mall.model;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
@@ -252,6 +253,66 @@ public class UmsMemberExample {
return (Criteria) this;
}
public Criteria andMemberLevelIsNull() {
addCriterion("member_level is null");
return (Criteria) this;
}
public Criteria andMemberLevelIsNotNull() {
addCriterion("member_level is not null");
return (Criteria) this;
}
public Criteria andMemberLevelEqualTo(Integer value) {
addCriterion("member_level =", value, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelNotEqualTo(Integer value) {
addCriterion("member_level <>", value, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelGreaterThan(Integer value) {
addCriterion("member_level >", value, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelGreaterThanOrEqualTo(Integer value) {
addCriterion("member_level >=", value, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelLessThan(Integer value) {
addCriterion("member_level <", value, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelLessThanOrEqualTo(Integer value) {
addCriterion("member_level <=", value, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelIn(List<Integer> values) {
addCriterion("member_level in", values, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelNotIn(List<Integer> values) {
addCriterion("member_level not in", values, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelBetween(Integer value1, Integer value2) {
addCriterion("member_level between", value1, value2, "memberLevel");
return (Criteria) this;
}
public Criteria andMemberLevelNotBetween(Integer value1, Integer value2) {
addCriterion("member_level not between", value1, value2, "memberLevel");
return (Criteria) this;
}
public Criteria andUsernameIsNull() {
addCriterion("username is null");
return (Criteria) this;
@@ -1351,6 +1412,456 @@ public class UmsMemberExample {
addCriterion("history_integration not between", value1, value2, "historyIntegration");
return (Criteria) this;
}
public Criteria andStoreStatusIsNull() {
addCriterion("store_status is null");
return (Criteria) this;
}
public Criteria andStoreStatusIsNotNull() {
addCriterion("store_status is not null");
return (Criteria) this;
}
public Criteria andStoreStatusEqualTo(Integer value) {
addCriterion("store_status =", value, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusNotEqualTo(Integer value) {
addCriterion("store_status <>", value, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusGreaterThan(Integer value) {
addCriterion("store_status >", value, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("store_status >=", value, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusLessThan(Integer value) {
addCriterion("store_status <", value, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusLessThanOrEqualTo(Integer value) {
addCriterion("store_status <=", value, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusIn(List<Integer> values) {
addCriterion("store_status in", values, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusNotIn(List<Integer> values) {
addCriterion("store_status not in", values, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusBetween(Integer value1, Integer value2) {
addCriterion("store_status between", value1, value2, "storeStatus");
return (Criteria) this;
}
public Criteria andStoreStatusNotBetween(Integer value1, Integer value2) {
addCriterion("store_status not between", value1, value2, "storeStatus");
return (Criteria) this;
}
public Criteria andBalanceIsNull() {
addCriterion("balance is null");
return (Criteria) this;
}
public Criteria andBalanceIsNotNull() {
addCriterion("balance is not null");
return (Criteria) this;
}
public Criteria andBalanceEqualTo(BigDecimal value) {
addCriterion("balance =", value, "balance");
return (Criteria) this;
}
public Criteria andBalanceNotEqualTo(BigDecimal value) {
addCriterion("balance <>", value, "balance");
return (Criteria) this;
}
public Criteria andBalanceGreaterThan(BigDecimal value) {
addCriterion("balance >", value, "balance");
return (Criteria) this;
}
public Criteria andBalanceGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("balance >=", value, "balance");
return (Criteria) this;
}
public Criteria andBalanceLessThan(BigDecimal value) {
addCriterion("balance <", value, "balance");
return (Criteria) this;
}
public Criteria andBalanceLessThanOrEqualTo(BigDecimal value) {
addCriterion("balance <=", value, "balance");
return (Criteria) this;
}
public Criteria andBalanceIn(List<BigDecimal> values) {
addCriterion("balance in", values, "balance");
return (Criteria) this;
}
public Criteria andBalanceNotIn(List<BigDecimal> values) {
addCriterion("balance not in", values, "balance");
return (Criteria) this;
}
public Criteria andBalanceBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("balance between", value1, value2, "balance");
return (Criteria) this;
}
public Criteria andBalanceNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("balance not between", value1, value2, "balance");
return (Criteria) this;
}
public Criteria andFreezeIsNull() {
addCriterion("freeze is null");
return (Criteria) this;
}
public Criteria andFreezeIsNotNull() {
addCriterion("freeze is not null");
return (Criteria) this;
}
public Criteria andFreezeEqualTo(BigDecimal value) {
addCriterion("freeze =", value, "freeze");
return (Criteria) this;
}
public Criteria andFreezeNotEqualTo(BigDecimal value) {
addCriterion("freeze <>", value, "freeze");
return (Criteria) this;
}
public Criteria andFreezeGreaterThan(BigDecimal value) {
addCriterion("freeze >", value, "freeze");
return (Criteria) this;
}
public Criteria andFreezeGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("freeze >=", value, "freeze");
return (Criteria) this;
}
public Criteria andFreezeLessThan(BigDecimal value) {
addCriterion("freeze <", value, "freeze");
return (Criteria) this;
}
public Criteria andFreezeLessThanOrEqualTo(BigDecimal value) {
addCriterion("freeze <=", value, "freeze");
return (Criteria) this;
}
public Criteria andFreezeIn(List<BigDecimal> values) {
addCriterion("freeze in", values, "freeze");
return (Criteria) this;
}
public Criteria andFreezeNotIn(List<BigDecimal> values) {
addCriterion("freeze not in", values, "freeze");
return (Criteria) this;
}
public Criteria andFreezeBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("freeze between", value1, value2, "freeze");
return (Criteria) this;
}
public Criteria andFreezeNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("freeze not between", value1, value2, "freeze");
return (Criteria) this;
}
public Criteria andDetailAddressIsNull() {
addCriterion("detail_address is null");
return (Criteria) this;
}
public Criteria andDetailAddressIsNotNull() {
addCriterion("detail_address is not null");
return (Criteria) this;
}
public Criteria andDetailAddressEqualTo(String value) {
addCriterion("detail_address =", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressNotEqualTo(String value) {
addCriterion("detail_address <>", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressGreaterThan(String value) {
addCriterion("detail_address >", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressGreaterThanOrEqualTo(String value) {
addCriterion("detail_address >=", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressLessThan(String value) {
addCriterion("detail_address <", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressLessThanOrEqualTo(String value) {
addCriterion("detail_address <=", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressLike(String value) {
addCriterion("detail_address like", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressNotLike(String value) {
addCriterion("detail_address not like", value, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressIn(List<String> values) {
addCriterion("detail_address in", values, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressNotIn(List<String> values) {
addCriterion("detail_address not in", values, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressBetween(String value1, String value2) {
addCriterion("detail_address between", value1, value2, "detailAddress");
return (Criteria) this;
}
public Criteria andDetailAddressNotBetween(String value1, String value2) {
addCriterion("detail_address not between", value1, value2, "detailAddress");
return (Criteria) this;
}
public Criteria andRealNameIsNull() {
addCriterion("real_name is null");
return (Criteria) this;
}
public Criteria andRealNameIsNotNull() {
addCriterion("real_name is not null");
return (Criteria) this;
}
public Criteria andRealNameEqualTo(String value) {
addCriterion("real_name =", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameNotEqualTo(String value) {
addCriterion("real_name <>", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameGreaterThan(String value) {
addCriterion("real_name >", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameGreaterThanOrEqualTo(String value) {
addCriterion("real_name >=", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameLessThan(String value) {
addCriterion("real_name <", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameLessThanOrEqualTo(String value) {
addCriterion("real_name <=", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameLike(String value) {
addCriterion("real_name like", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameNotLike(String value) {
addCriterion("real_name not like", value, "realName");
return (Criteria) this;
}
public Criteria andRealNameIn(List<String> values) {
addCriterion("real_name in", values, "realName");
return (Criteria) this;
}
public Criteria andRealNameNotIn(List<String> values) {
addCriterion("real_name not in", values, "realName");
return (Criteria) this;
}
public Criteria andRealNameBetween(String value1, String value2) {
addCriterion("real_name between", value1, value2, "realName");
return (Criteria) this;
}
public Criteria andRealNameNotBetween(String value1, String value2) {
addCriterion("real_name not between", value1, value2, "realName");
return (Criteria) this;
}
public Criteria andOrderStatusIsNull() {
addCriterion("order_status is null");
return (Criteria) this;
}
public Criteria andOrderStatusIsNotNull() {
addCriterion("order_status is not null");
return (Criteria) this;
}
public Criteria andOrderStatusEqualTo(Integer value) {
addCriterion("order_status =", value, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusNotEqualTo(Integer value) {
addCriterion("order_status <>", value, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusGreaterThan(Integer value) {
addCriterion("order_status >", value, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("order_status >=", value, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusLessThan(Integer value) {
addCriterion("order_status <", value, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusLessThanOrEqualTo(Integer value) {
addCriterion("order_status <=", value, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusIn(List<Integer> values) {
addCriterion("order_status in", values, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusNotIn(List<Integer> values) {
addCriterion("order_status not in", values, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusBetween(Integer value1, Integer value2) {
addCriterion("order_status between", value1, value2, "orderStatus");
return (Criteria) this;
}
public Criteria andOrderStatusNotBetween(Integer value1, Integer value2) {
addCriterion("order_status not between", value1, value2, "orderStatus");
return (Criteria) this;
}
public Criteria andInvitationCodeIsNull() {
addCriterion("invitation_code is null");
return (Criteria) this;
}
public Criteria andInvitationCodeIsNotNull() {
addCriterion("invitation_code is not null");
return (Criteria) this;
}
public Criteria andInvitationCodeEqualTo(String value) {
addCriterion("invitation_code =", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeNotEqualTo(String value) {
addCriterion("invitation_code <>", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeGreaterThan(String value) {
addCriterion("invitation_code >", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeGreaterThanOrEqualTo(String value) {
addCriterion("invitation_code >=", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeLessThan(String value) {
addCriterion("invitation_code <", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeLessThanOrEqualTo(String value) {
addCriterion("invitation_code <=", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeLike(String value) {
addCriterion("invitation_code like", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeNotLike(String value) {
addCriterion("invitation_code not like", value, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeIn(List<String> values) {
addCriterion("invitation_code in", values, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeNotIn(List<String> values) {
addCriterion("invitation_code not in", values, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeBetween(String value1, String value2) {
addCriterion("invitation_code between", value1, value2, "invitationCode");
return (Criteria) this;
}
public Criteria andInvitationCodeNotBetween(String value1, String value2) {
addCriterion("invitation_code not between", value1, value2, "invitationCode");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

View File

@@ -28,6 +28,7 @@
<result column="detail_address" jdbcType="VARCHAR" property="detailAddress" />
<result column="real_name" jdbcType="VARCHAR" property="realName" />
<result column="order_status" jdbcType="INTEGER" property="orderStatus" />
<result column="invitation_code" jdbcType="VARCHAR" property="invitationCode" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@@ -90,7 +91,7 @@
<sql id="Base_Column_List">
id, member_level_id, member_level, username, password, nickname, phone, status, create_time, icon,
gender, birthday, city, job, personalized_signature, source_type, integration, growth,
luckey_count, history_integration, store_status, balance, freeze, detail_address, real_name,order_status
luckey_count, history_integration, store_status, balance, freeze, detail_address, real_name,order_status,invitation_code
</sql>
<select id="selectByExample" parameterType="com.buy507.mall.model.UmsMemberExample" resultMap="BaseResultMap">
select
@@ -131,7 +132,8 @@
create_time, icon, gender,
birthday, city, job, personalized_signature,
source_type, integration, growth,
luckey_count, history_integration, store_status, balance, freeze, detail_address, real_name,order_status)
luckey_count, history_integration, store_status, balance, freeze,
detail_address, real_name,order_status, invitation_code)
values (#{memberLevelId,jdbcType=BIGINT},
#{memberLevel,jdbcType=INTEGER, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler},
#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
@@ -141,7 +143,8 @@
#{sourceType,jdbcType=INTEGER}, #{integration,jdbcType=INTEGER}, #{growth,jdbcType=INTEGER},
#{luckeyCount,jdbcType=INTEGER}, #{historyIntegration,jdbcType=INTEGER},
#{storeStatus, jdbcType=INTEGER, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler},
#{balance,jdbcType=DECIMAL}, #{freeze,jdbcType=DECIMAL}, #{detailAddress,jdbcType=VARCHAR}, #{realName,jdbcType=VARCHAR} #{orderStatus,jdbcType=INTEGER} )
#{balance,jdbcType=DECIMAL}, #{freeze,jdbcType=DECIMAL}, #{detailAddress,jdbcType=VARCHAR},
#{realName,jdbcType=VARCHAR}, #{orderStatus,jdbcType=INTEGER},#{invitationCode,jdbcType=VARCHAR} )
</insert>
<insert id="insertSelective" parameterType="com.buy507.mall.model.UmsMember">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
@@ -224,6 +227,9 @@
<if test="orderStatus != null">
order_status,
</if>
<if test="invitationCode != null">
invitation_code,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="memberLevelId != null">
@@ -301,6 +307,9 @@
<if test="orderStatus != null">
#{order_status,jdbcType=INTEGER},
</if>
<if test="invitationCode != null">
#{invitation_code,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.buy507.mall.model.UmsMemberExample" resultType="java.lang.Long">
@@ -388,7 +397,10 @@
real_name = #{record.realName,jdbcType=VARCHAR},
</if>
<if test="record.orderStatus != null">
order_status = #{record.growth,jdbcType=INTEGER},
order_status = #{record.orderStatus,jdbcType=INTEGER},
</if>
<if test="record.invitationCode != null">
invitation_code = #{record.invitationCode,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
@@ -422,7 +434,8 @@
freeze = #{record.freeze,jdbcType=DECIMAL},
detail_address = #{record.detailAddress,jdbcType=VARCHAR},
real_name = #{record.realName,jdbcType=VARCHAR},
order_status = #{record.orderStatus,jdbcType=INTEGER}
order_status = #{record.orderStatus,jdbcType=INTEGER},
invitation_code = #{record.invitationCode,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@@ -505,6 +518,9 @@
<if test="orderStatus != null">
order_status = #{orderStatus,jdbcType=INTEGER},
</if>
<if test="invitationCode != null">
invitation_code = #{invitationCode,jdbcType=VARCHAR}
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@@ -534,7 +550,8 @@
freeze = #{freeze,jdbcType=DECIMAL},
detail_address = #{detailAddress,jdbcType=VARCHAR},
real_name = #{realName,jdbcType=VARCHAR},
order_status = #{orderStatus,jdbcType=INTEGER}
order_status = #{orderStatus,jdbcType=INTEGER},
invitation_code = #{invitationCode,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
<select id="selectPhoneExists" parameterType="java.lang.String" resultMap="BaseResultMap">

View File

@@ -102,9 +102,9 @@
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into ums_member_relation_tree (member_id, higher_level_id, create_time
insert into ums_member_relation_tree (member_id, higher_level_id
)
values (#{memberId,jdbcType=BIGINT}, #{higherLevelId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}
values (#{memberId,jdbcType=BIGINT}, #{higherLevelId,jdbcType=BIGINT}
)
</insert>
<insert id="insertSelective" parameterType="com.buy507.mall.model.UmsMemberRelationTree">

View File

@@ -29,8 +29,10 @@ public class UmsMemberController {
@ResponseBody
public CommonResult register(@RequestParam String telephone,
@RequestParam String password,
@RequestParam String authCode) {
return memberService.register(telephone, password, authCode);
@RequestParam String authCode,
@RequestParam String invitationCode
) {
return memberService.register(telephone, password, authCode,invitationCode);
}

View File

@@ -55,6 +55,14 @@ public class MemberInfoResult {
@ApiModelProperty(value = "联系地址")
private String detailAddress;
@ApiModelProperty(value = "总收入")
private String totalIncome;
@ApiModelProperty(value = "今日收入")
private String todayIncome;
public Long getMemberId() {
return memberId;
@@ -183,5 +191,20 @@ public class MemberInfoResult {
public void setDetailAddress(String detailAddress) {
this.detailAddress = detailAddress;
}
public String getTotalIncome() {
return totalIncome;
}
public void setTotalIncome(String totalIncome) {
this.totalIncome = totalIncome;
}
public String getTodayIncome() {
return todayIncome;
}
public void setTodayIncome(String todayIncome) {
this.todayIncome = todayIncome;
}
}

View File

@@ -36,7 +36,7 @@ public interface UmsMemberService {
* 用户注册
*/
@Transactional
CommonResult register(String telephone, String password, String authCode);
CommonResult register(String telephone, String password, String authCode,String invitationCode);
/**
* 登录功能

View File

@@ -1,6 +1,7 @@
package com.buy507.mall.portal.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
@@ -117,6 +118,11 @@ public class UmsMemberServiceImpl implements UmsMemberService {
*/
@Resource
private UmsMemberAccountTransactionMapper umsMemberAccountTransactionMapper;
/**
* 会员上下关系
*/
@Resource
private UmsMemberRelationTreeMapper umsMemberRelationTreeMapper;
@Autowired
private RedisLock redisLock;
@@ -154,7 +160,8 @@ public class UmsMemberServiceImpl implements UmsMemberService {
@Autowired
private RestTemplate restTemplate;
@Override
public UmsMember getByUsername(String username) {
UmsMemberExample example = new UmsMemberExample();
@@ -172,7 +179,7 @@ public class UmsMemberServiceImpl implements UmsMemberService {
}
@Override
public CommonResult register(String telephone, String password, String authCode) {
public CommonResult register(String telephone, String password, String authCode,String invitationCode) {
//验证验证码
if(!verifyAuthCode(authCode, telephone)){
return CommonResult.failed("验证码错误");
@@ -198,21 +205,50 @@ public class UmsMemberServiceImpl implements UmsMemberService {
umsMember.setBalance(new BigDecimal(0));
umsMember.setMemberLevel(MemberLevel.Member);
umsMember.setStoreStatus(StoreStatus.No);
umsMember.setInvitationCode(generateRandomString());
//获取默认会员等级并设置
UmsMemberLevelExample levelExample = new UmsMemberLevelExample();
levelExample.createCriteria().andDefaultStatusEqualTo(1);
levelExample.createCriteria().andDefaultStatusEqualTo(0);
List<UmsMemberLevel> memberLevelList = memberLevelMapper.selectByExample(levelExample);
if (!CollectionUtils.isEmpty(memberLevelList)) {
umsMember.setMemberLevelId(memberLevelList.get(0).getId());
}
memberMapper.insert(umsMember);
//邀请码不为空
if(!StringUtils.isEmpty(invitationCode)){
UmsMemberExample queryMember = new UmsMemberExample();
queryMember.createCriteria().andInvitationCodeEqualTo(invitationCode);
//查询邀请人
List<UmsMember> invitationMember = memberMapper.selectByExample(queryMember);
if(!invitationMember.isEmpty()){
//关联上级关系
UmsMemberRelationTree newRelation = new UmsMemberRelationTree();
newRelation.setMemberId(umsMember.getId());
newRelation.setHigherLevelId(invitationMember.get(0).getId());
umsMemberRelationTreeMapper.insert(newRelation);
}
}
//初始化会员分销相关表
initDistributionService.initDistributionTable(umsMember.getId());
return CommonResult.success(null, "注册成功");
}
private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
private static final int STRING_LENGTH = 12;
public static String generateRandomString() {
StringBuilder sb = new StringBuilder(STRING_LENGTH);
Random random = new Random();
for (int i = 0; i < STRING_LENGTH; i++) {
int index = random.nextInt(CHARACTERS.length());
sb.append(CHARACTERS.charAt(index));
}
return sb.toString();
}
@Override
public Map<String, String> login(String telephone, String password) {
@@ -452,7 +488,8 @@ public class UmsMemberServiceImpl implements UmsMemberService {
@Override
public MemberInfoResult getMemberInfo() {
UmsMember loginMember = getCurrentMember();
UmsMember loginMember = new UmsMember();//getCurrentMember();
loginMember.setId(1L);
UmsMember member = memberMapper.selectByPrimaryKey(loginMember.getId());
DmsTeamTotalConsume teamTotalConsume = teamTotalConsumeMapper.selectOneByMemberId(loginMember.getId());
@@ -488,10 +525,46 @@ public class UmsMemberServiceImpl implements UmsMemberService {
}
member.setFreeze(member.getFreeze().add(freezeTransactionAccount));
//查询总收入
BigDecimal totalIncome = BigDecimal.ZERO;
accountTransactionExample = new UmsMemberAccountTransactionExample();
accountTransactionExample.createCriteria()
.andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES)
.andMemberIdEqualTo(member.getId());
List<UmsMemberAccountTransaction> totalList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample);
if(totalList!= null && !totalList.isEmpty()){
Optional<BigDecimal> sum = totalList.stream().map(UmsMemberAccountTransaction::getRevenueAmount).reduce(BigDecimal :: add);
// 检查 Optional 是否包含值
if (sum.isPresent()) {
totalIncome = sum.get();
}
}
//查询今天收入
BigDecimal todayIncome = BigDecimal.ZERO;
accountTransactionExample = new UmsMemberAccountTransactionExample();
accountTransactionExample.createCriteria()
.andTransferPaymentTimeBetween(DateUtil.beginOfDay(nowTime) ,nowTime)
.andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES)
.andMemberIdEqualTo(member.getId());
List<UmsMemberAccountTransaction> todayIncomeList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample);
if(todayIncomeList!= null && !todayIncomeList.isEmpty()){
Optional<BigDecimal> todaySum = todayIncomeList.stream().map(UmsMemberAccountTransaction::getRevenueAmount).reduce(BigDecimal :: add);
// 检查 Optional 是否包含值
if (todaySum.isPresent()) {
todayIncome = todaySum.get();
}
}
MemberInfoResult result = new MemberInfoResult();
result.setBalance(member.getBalance()); //余额
result.setFreeze(member.getFreeze()); //冻结余额
result.setCoupon(0);
result.setTotalIncome(totalIncome.toString());
result.setTodayIncome(todayIncome.toString());
result.setNickname(member.getNickname() == null ? "" : member.getNickname());
result.setHeadPicture(member.getIcon() == null ? "" :member.getIcon());
result.setGender(member.getGender());

View File

@@ -42,4 +42,11 @@ public class OmsPortalOrderServiceTest {
}
@Test
public void registerTest() {
memberService.register("123213111www", "123sad", "dss", "S4ZG2D2D0JCS");
}
}