From e02d8b44d4c44355fb20800e1c6b8a31ed30fd45 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期五, 26 九月 2025 17:15:57 +0800 Subject: [PATCH] 绑定商店 --- framework/src/main/java/cn/lili/modules/member/entity/dos/Member.java | 2 + framework/src/main/java/cn/lili/modules/member/entity/vo/MemberVO.java | 3 + buyer-api/src/main/java/cn/lili/controller/lmk/MemberController.java | 7 +++ framework/src/main/java/cn/lili/modules/lmk/domain/form/MemberBindStoreForm.java | 34 +++++++++++++++++ framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java | 51 ++++++++++++++++++++++++- framework/src/main/java/cn/lili/modules/member/mapper/MemberMapper.java | 6 +++ framework/src/main/java/cn/lili/modules/member/service/MemberService.java | 3 + 7 files changed, 104 insertions(+), 2 deletions(-) diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/MemberController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/MemberController.java index b94997b..ed49bfe 100644 --- a/buyer-api/src/main/java/cn/lili/controller/lmk/MemberController.java +++ b/buyer-api/src/main/java/cn/lili/controller/lmk/MemberController.java @@ -2,6 +2,7 @@ import cn.lili.base.Result; +import cn.lili.modules.lmk.domain.form.MemberBindStoreForm; import cn.lili.modules.lmk.domain.form.MemberNickNameForm; import cn.lili.modules.member.service.MemberService; import io.swagger.annotations.Api; @@ -30,4 +31,10 @@ public Result updateMemberNickName(@RequestBody MemberNickNameForm form){ return memberService.updateMemberNickName(form); } + + @PutMapping("/bindMemberAndStore") + public Result bindMemberAndStore(@RequestBody MemberBindStoreForm form){ + return memberService.bindMemberAndStore(form); + } + } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/MemberBindStoreForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/MemberBindStoreForm.java new file mode 100644 index 0000000..4249cfb --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/MemberBindStoreForm.java @@ -0,0 +1,34 @@ +package cn.lili.modules.lmk.domain.form; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * lmk-shop-java + * + * @author : zxl + * @date : 2025-09-26 15:05 + **/ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class MemberBindStoreForm { + + /** + * 缁戝畾鍒嗕韩搴楅摵id + */ + private String shareStoreId; + + /** + * 鍒嗕韩鏃堕棿 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date shareTime; +} diff --git a/framework/src/main/java/cn/lili/modules/member/entity/dos/Member.java b/framework/src/main/java/cn/lili/modules/member/entity/dos/Member.java index c66c3e2..c46713d 100644 --- a/framework/src/main/java/cn/lili/modules/member/entity/dos/Member.java +++ b/framework/src/main/java/cn/lili/modules/member/entity/dos/Member.java @@ -102,6 +102,8 @@ @ApiModelProperty(value = "缁忛獙鍊兼暟閲�") private Long experience; + @TableField("share_store_id") + private String shareStoreId; public Member(String username, String password, String mobile) { this.username = username; diff --git a/framework/src/main/java/cn/lili/modules/member/entity/vo/MemberVO.java b/framework/src/main/java/cn/lili/modules/member/entity/vo/MemberVO.java index 6fa585e..ced2121 100644 --- a/framework/src/main/java/cn/lili/modules/member/entity/vo/MemberVO.java +++ b/framework/src/main/java/cn/lili/modules/member/entity/vo/MemberVO.java @@ -106,6 +106,9 @@ @ApiModelProperty(value = "榛戝悕鍗昳d") private String blackId; + @ApiModelProperty(value = "缁戝畾鍟嗗簵鍚�") + private String bindStoreName; + public MemberVO(Member member) { BeanUtil.copyProperties(member, this); } diff --git a/framework/src/main/java/cn/lili/modules/member/mapper/MemberMapper.java b/framework/src/main/java/cn/lili/modules/member/mapper/MemberMapper.java index ed82d84..ac31cfe 100644 --- a/framework/src/main/java/cn/lili/modules/member/mapper/MemberMapper.java +++ b/framework/src/main/java/cn/lili/modules/member/mapper/MemberMapper.java @@ -30,6 +30,12 @@ @Select("select * from li_member ${ew.customSqlSegment}") IPage<MemberVO> pageByMemberVO(IPage<MemberVO> page, @Param(Constants.WRAPPER) Wrapper<Member> queryWrapper); + @Select("select m.*,s.store_name as bindStoreName " + + "from li_member m " + + "LEFT JOIN li_store s on m.share_store_id = s.id " + + " ${ew.customSqlSegment}") + IPage<MemberVO> pageByMemberVOAndBindStore(IPage<MemberVO> page, @Param(Constants.WRAPPER) Wrapper<Member> queryWrapper); + @Select("select * from li_member ${ew.customSqlSegment}") List<MemberVO> exportMember(@Param(Constants.WRAPPER) Wrapper<Member> queryWrapper); diff --git a/framework/src/main/java/cn/lili/modules/member/service/MemberService.java b/framework/src/main/java/cn/lili/modules/member/service/MemberService.java index 4539594..34e1bf0 100644 --- a/framework/src/main/java/cn/lili/modules/member/service/MemberService.java +++ b/framework/src/main/java/cn/lili/modules/member/service/MemberService.java @@ -6,6 +6,7 @@ import cn.lili.common.security.token.Token; import cn.lili.common.vo.PageVO; import cn.lili.modules.connect.entity.dto.ConnectAuthUser; +import cn.lili.modules.lmk.domain.form.MemberBindStoreForm; import cn.lili.modules.lmk.domain.form.MemberNickNameForm; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dto.ManagerMemberEditDTO; @@ -347,4 +348,6 @@ Member findByUUID(String uuid); void registerHandler(Member user); + + Result bindMemberAndStore(MemberBindStoreForm form); } diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java index 455df7b..113c83a 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java @@ -25,6 +25,7 @@ import cn.lili.modules.connect.entity.dto.ConnectAuthUser; import cn.lili.modules.connect.service.ConnectService; import cn.lili.modules.lmk.domain.entity.VideoAccount; +import cn.lili.modules.lmk.domain.form.MemberBindStoreForm; import cn.lili.modules.lmk.domain.form.MemberNickNameForm; import cn.lili.modules.lmk.domain.form.MemberTagForm; import cn.lili.modules.lmk.domain.vo.PrizeRecordVO; @@ -74,6 +75,9 @@ import javax.servlet.http.HttpServletResponse; import java.net.URLEncoder; import java.text.SimpleDateFormat; +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -356,6 +360,49 @@ } @Override + public Result bindMemberAndStore(MemberBindStoreForm form) { + String memberId = UserContext.getCurrentUserId(); + if(StringUtils.isNotBlank(memberId)){ + Member member = baseMapper.selectById(memberId); + + if (member != null){ + //鍒ゆ柇鐢ㄦ埛鐨勫垱寤烘椂闂存槸鍚﹀拰 鍒嗕韩shareTime鍦�24灏忔椂鍐� + LocalDateTime memberCreateTime = member.getCreateTime().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(); + + LocalDateTime shareTime = form.getShareTime().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(); + + // 璁$畻鏃堕棿宸� 绗竴涓弬鏁� 杈冩棭鐨勬椂闂� 鍚庝竴涓緝鏅氱殑鏃堕棿 + Duration duration = Duration.between( + memberCreateTime.isBefore(shareTime) ? memberCreateTime : shareTime, + memberCreateTime.isBefore(shareTime) ? shareTime : memberCreateTime + ); + + long hoursDifference = duration.toHours(); + + if (hoursDifference <= 24) { + // 鍦�24灏忔椂鍐� 涓庡簵閾鸿繘琛岀粦瀹� + if(StringUtils.isNotBlank(member.getShareStoreId())){ + return Result.ok("宸茬粦瀹氬簵閾�"); + } + member.setShareStoreId(form.getShareStoreId()); + baseMapper.updateById(member); + } else { + return Result.ok("鍒嗕韩宸茶繃鏈燂紝鏈夋晥鏈熶负24灏忔椂"); + } + } + + + }else{ + throw new RuntimeException("UserContext.getCurrentUserId()锛氱敤鎴穒d鑾峰彇寮傚父"); + } + return Result.ok("缁戝畾鎴愬姛"); + } + + @Override public Member editOwn(MemberEditDTO memberEditDTO) { //鏌ヨ浼氬憳淇℃伅 Member member = this.findByUsername(Objects.requireNonNull(UserContext.getCurrentUser()).getUsername()); @@ -610,9 +657,9 @@ "SELECT DISTINCT member_id FROM lmk_member_tag WHERE tag_id IN (" + tagIdsStr + ")"); - return this.baseMapper.pageByMemberVO(PageUtil.initPage(page), queryWrapper); + return this.baseMapper.pageByMemberVOAndBindStore(PageUtil.initPage(page), queryWrapper); } - return this.baseMapper.pageByMemberVO(PageUtil.initPage(page),queryWrapper); + return this.baseMapper.pageByMemberVOAndBindStore(PageUtil.initPage(page),queryWrapper); } @Override -- Gitblit v1.8.0