refactor: Member表字段重命名 joinDate→startDate, expireDate→endDate,明确办卡概念
This commit is contained in:
parent
73d64956ed
commit
162f3f11c4
6 changed files with 35 additions and 34 deletions
|
|
@ -18,7 +18,7 @@ public interface DashboardMapper {
|
||||||
@Select("SELECT COUNT(*) FROM members")
|
@Select("SELECT COUNT(*) FROM members")
|
||||||
int countMembers();
|
int countMembers();
|
||||||
|
|
||||||
@Select("SELECT COUNT(*) FROM members WHERE expire_date IS NULL")
|
@Select("SELECT COUNT(*) FROM members WHERE end_date IS NULL OR end_date >= CURDATE()")
|
||||||
int countActiveMembers();
|
int countActiveMembers();
|
||||||
|
|
||||||
@Select("SELECT COUNT(*) FROM courses")
|
@Select("SELECT COUNT(*) FROM courses")
|
||||||
|
|
@ -33,6 +33,6 @@ public interface DashboardMapper {
|
||||||
@Select("SELECT type, COUNT(*) as count FROM courses GROUP BY type")
|
@Select("SELECT type, COUNT(*) as count FROM courses GROUP BY type")
|
||||||
List<Map<String, Object>> countCourseByType();
|
List<Map<String, Object>> countCourseByType();
|
||||||
|
|
||||||
@Select("SELECT DATE_FORMAT(join_date, '%Y-%m') as month, COUNT(*) as count FROM members GROUP BY month ORDER BY month")
|
@Select("SELECT DATE_FORMAT(start_date, '%Y-%m') as month, COUNT(*) as count FROM members GROUP BY month ORDER BY month")
|
||||||
List<Map<String, Object>> countMemberByMonth();
|
List<Map<String, Object>> countMemberByMonth();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ public interface MemberMapper {
|
||||||
"<if test=\"sex != null and sex != 0\"> AND `sex` = #{sex}</if>",
|
"<if test=\"sex != null and sex != 0\"> AND `sex` = #{sex}</if>",
|
||||||
"<if test=\"status != null and status != 1\">",
|
"<if test=\"status != null and status != 1\">",
|
||||||
"<choose>",
|
"<choose>",
|
||||||
"<when test=\"status == 2\"> AND expire_date IS NULL</when>",
|
"<when test=\"status == 2\"> AND end_date IS NULL OR end_date >= CURDATE()</when>",
|
||||||
"<when test=\"status == 3\"> AND expire_date IS NOT NULL</when>",
|
"<when test=\"status == 3\"> AND end_date IS NOT NULL AND end_date < CURDATE()</when>",
|
||||||
"</choose>",
|
"</choose>",
|
||||||
"</if>",
|
"</if>",
|
||||||
"</where>",
|
"</where>",
|
||||||
|
|
@ -28,14 +28,14 @@ public interface MemberMapper {
|
||||||
})
|
})
|
||||||
List<Member> select(MemberQueryDTO memberQueryDTO);
|
List<Member> select(MemberQueryDTO memberQueryDTO);
|
||||||
|
|
||||||
@Insert(value = "INSERT INTO `members`(`name`, `sex`, `phone`, `level`, `remark`, `avatar`, `join_date`, `remain_count`, `total_spend`) VALUES (#{name}, #{sex}, #{phone}, #{level}, #{remark}, #{avatar}, #{joinDate}, #{remainCount}, #{totalSpend})")
|
@Insert(value = "INSERT INTO `members`(`name`, `sex`, `phone`, `level`, `remark`, `avatar`, `start_date`, `end_date`, `remain_count`, `total_spend`) VALUES (#{name}, #{sex}, #{phone}, #{level}, #{remark}, #{avatar}, #{startDate}, #{endDate}, #{remainCount}, #{totalSpend})")
|
||||||
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
|
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
|
||||||
void insert(Member member);
|
void insert(Member member);
|
||||||
|
|
||||||
@Update(value = "UPDATE `members` SET `expire_date` = #{expireDate} WHERE `id` = #{id}")
|
@Update(value = "UPDATE `members` SET `end_date` = #{endDate} WHERE `id` = #{id}")
|
||||||
void cancel(@Param("id") Integer id, @Param("expireDate") String expireDate);
|
void cancel(@Param("id") Integer id, @Param("endDate") String endDate);
|
||||||
|
|
||||||
@Update(value = "UPDATE `members` SET `expire_date` = null WHERE `id` = #{id}")
|
@Update(value = "UPDATE `members` SET `end_date` = DATE_ADD(COALESCE(end_date, CURDATE()), INTERVAL 365 DAY) WHERE `id` = #{id}")
|
||||||
void renew(Integer id);
|
void renew(Integer id);
|
||||||
|
|
||||||
@Delete(value = "DELETE FROM `members` WHERE `id` = #{id}")
|
@Delete(value = "DELETE FROM `members` WHERE `id` = #{id}")
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ public class Member {
|
||||||
private String avatar;
|
private String avatar;
|
||||||
private String phone;
|
private String phone;
|
||||||
private String remark;
|
private String remark;
|
||||||
private String expireDate;
|
private String startDate;
|
||||||
private String joinDate;
|
private String endDate;
|
||||||
private String level;
|
private String level;
|
||||||
private Integer remainCount;
|
private Integer remainCount;
|
||||||
private Integer totalSpend;
|
private Integer totalSpend;
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,8 @@ public class MemberServiceImpl implements MemberService {
|
||||||
member.setPhone(memberAddDTO.getPhone());
|
member.setPhone(memberAddDTO.getPhone());
|
||||||
member.setLevel(memberAddDTO.getLevel());
|
member.setLevel(memberAddDTO.getLevel());
|
||||||
member.setRemark(memberAddDTO.getRemark());
|
member.setRemark(memberAddDTO.getRemark());
|
||||||
member.setJoinDate(DateUtil.today());
|
member.setStartDate(DateUtil.today());
|
||||||
|
member.setEndDate(null);
|
||||||
member.setRemainCount(null);
|
member.setRemainCount(null);
|
||||||
member.setTotalSpend(0);
|
member.setTotalSpend(0);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,25 @@
|
||||||
-- 会员模拟数据
|
-- 会员模拟数据
|
||||||
INSERT INTO `members` (`name`, `sex`, `phone`, `level`, `remark`, `join_date`, `remain_count`, `total_spend`) VALUES
|
INSERT INTO `members` (`name`, `sex`, `phone`, `level`, `remark`, `start_date`, `end_date`, `remain_count`, `total_spend`) VALUES
|
||||||
('张三', 1, '13800138001', '金卡', '年卡会员,喜欢瑜伽', '2024-01-15', NULL, 5999),
|
('张三', 1, '13800138001', '金卡', '年卡会员,喜欢瑜伽', '2024-01-15', '2025-01-15', NULL, 5999),
|
||||||
('李四', 2, '13800138002', '银卡', '季卡会员,减脂塑形', '2024-06-20', NULL, 2999),
|
('李四', 2, '13800138002', '银卡', '季卡会员,减脂塑形', '2024-06-20', '2024-09-20', NULL, 2999),
|
||||||
('王五', 1, '13800138003', '普通', '月卡会员,增肌训练', '2024-09-10', NULL, 999),
|
('王五', 1, '13800138003', '普通', '月卡会员,增肌训练', '2024-09-10', '2024-10-10', NULL, 999),
|
||||||
('赵六', 2, '13800138004', '钻石', '年卡会员,产后恢复', '2023-12-01', NULL, 12999),
|
('赵六', 2, '13800138004', '钻石', '年卡会员,产后恢复', '2023-12-01', NULL, NULL, 12999),
|
||||||
('钱七', 1, '13800138005', '普通', '次卡会员,游泳爱好者', '2024-03-15', 5, 1500),
|
('钱七', 1, '13800138005', '普通', '次卡会员,游泳爱好者', '2024-03-15', '2024-06-15', 5, 1500),
|
||||||
('孙八', 2, '13800138006', '金卡', '年卡会员,搏击训练', '2024-02-28', NULL, 8999),
|
('孙八', 2, '13800138006', '金卡', '年卡会员,搏击训练', '2024-02-28', '2025-02-28', NULL, 8999),
|
||||||
('周九', 1, '13800138007', '银卡', '季卡会员,普拉提', '2024-07-05', NULL, 3499),
|
('周九', 1, '13800138007', '银卡', '季卡会员,普拉提', '2024-07-05', '2024-10-05', NULL, 3499),
|
||||||
('吴十', 2, '13800138008', '普通', '月卡会员,有氧舞蹈', '2024-10-12', NULL, 799),
|
('吴十', 2, '13800138008', '普通', '月卡会员,有氧舞蹈', '2024-10-12', '2024-11-12', NULL, 799),
|
||||||
('郑十一', 1, '13800138009', '金卡', '年卡会员,自由重量', '2024-01-20', NULL, 6999),
|
('郑十一', 1, '13800138009', '金卡', '年卡会员,自由重量', '2024-01-20', '2025-01-20', NULL, 6999),
|
||||||
('冯十二', 2, '13800138010', '普通', '次卡会员,动感单车', '2024-05-18', 8, 1200),
|
('冯十二', 2, '13800138010', '普通', '次卡会员,动感单车', '2024-05-18', '2024-08-18', 8, 1200),
|
||||||
('陈十三', 1, '13800138011', '钻石', '年卡会员,拳击训练', '2023-11-25', NULL, 15999),
|
('陈十三', 1, '13800138011', '钻石', '年卡会员,拳击训练', '2023-11-25', NULL, NULL, 15999),
|
||||||
('楚十四', 2, '13800138012', '银卡', '季卡会员,形体塑造', '2024-08-08', NULL, 2599),
|
('楚十四', 2, '13800138012', '银卡', '季卡会员,形体塑造', '2024-08-08', '2024-11-08', NULL, 2599),
|
||||||
('魏十五', 1, '13800138013', '普通', '月卡会员,康复训练', '2024-10-01', NULL, 599),
|
('魏十五', 1, '13800138013', '普通', '月卡会员,康复训练', '2024-10-01', '2024-11-01', NULL, 599),
|
||||||
('蒋十六', 2, '13800138014', '金卡', '年卡会员,舞蹈培训', '2024-03-10', NULL, 7499),
|
('蒋十六', 2, '13800138014', '金卡', '年卡会员,舞蹈培训', '2024-03-10', '2025-03-10', NULL, 7499),
|
||||||
('沈十七', 1, '13800138015', '普通', '次卡会员,攀岩爱好者', '2024-06-15', 12, 1800),
|
('沈十七', 1, '13800138015', '普通', '次卡会员,攀岩爱好者', '2024-06-15', '2024-09-15', 12, 1800),
|
||||||
('韩十八', 2, '13800138016', '银卡', '季卡会员,有氧操', '2024-09-20', NULL, 2799),
|
('韩十八', 2, '13800138016', '银卡', '季卡会员,有氧操', '2024-09-20', '2024-12-20', NULL, 2799),
|
||||||
('杨十九', 1, '13800138017', '钻石', '年卡会员,力量训练', '2024-01-05', NULL, 18999),
|
('杨十九', 1, '13800138017', '钻石', '年卡会员,力量训练', '2024-01-05', NULL, NULL, 18999),
|
||||||
('朱二十', 2, '13800138018', '普通', '月卡会员,纤体瑜伽', '2024-10-15', NULL, 699),
|
('朱二十', 2, '13800138018', '普通', '月卡会员,纤体瑜伽', '2024-10-15', '2024-11-15', NULL, 699),
|
||||||
('秦廿一', 1, '13800138019', '金卡', '年卡会员,CrossFit', '2024-02-14', NULL, 9499),
|
('秦廿一', 1, '13800138019', '金卡', '年卡会员,CrossFit', '2024-02-14', '2025-02-14', NULL, 9499),
|
||||||
('许廿二', 2, '13800138020', '银卡', '季卡会员,空中瑜伽', '2024-07-22', NULL, 3199);
|
('许廿二', 2, '13800138020', '银卡', '季卡会员,空中瑜伽', '2024-07-22', '2024-10-22', NULL, 3199);
|
||||||
|
|
||||||
-- 课程模拟数据
|
-- 课程模拟数据
|
||||||
INSERT INTO `courses` (`name`, `type`, `coach_name`, `price`, `duration`, `status`, `remark`, `start_time`, `enrolled`, `capacity`) VALUES
|
INSERT INTO `courses` (`name`, `type`, `coach_name`, `price`, `duration`, `status`, `remark`, `start_time`, `enrolled`, `capacity`) VALUES
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ CREATE TABLE IF NOT EXISTS `members` (
|
||||||
`avatar` VARCHAR(255) DEFAULT NULL,
|
`avatar` VARCHAR(255) DEFAULT NULL,
|
||||||
`phone` VARCHAR(20) NOT NULL,
|
`phone` VARCHAR(20) NOT NULL,
|
||||||
`remark` TEXT DEFAULT NULL,
|
`remark` TEXT DEFAULT NULL,
|
||||||
`expire_date` DATE DEFAULT NULL COMMENT '过期日期,NULL表示有效',
|
`start_date` DATE NOT NULL COMMENT '办卡开始日期',
|
||||||
`join_date` DATE NOT NULL COMMENT '入会日期',
|
`end_date` DATE DEFAULT NULL COMMENT '办卡结束日期,NULL表示无限期',
|
||||||
`level` VARCHAR(20) NOT NULL DEFAULT '普通' COMMENT '会员等级:普通/银卡/金卡/钻石',
|
`level` VARCHAR(20) NOT NULL DEFAULT '普通' COMMENT '会员等级:普通/银卡/金卡/钻石',
|
||||||
`remain_count` INT DEFAULT NULL COMMENT '剩余次数,NULL表示不限次',
|
`remain_count` INT DEFAULT NULL COMMENT '剩余次数,NULL表示不限次',
|
||||||
`total_spend` INT DEFAULT 0 COMMENT '累计消费(元)'
|
`total_spend` INT DEFAULT 0 COMMENT '累计消费(元)'
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue