From 567bff5e8100e3e21e46f83064035800ec5d4c47 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 24 九月 2025 11:31:53 +0800
Subject: [PATCH] 商户端订单地址详情
---
framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java | 160 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 147 insertions(+), 13 deletions(-)
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 24799c6..455df7b 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
@@ -4,7 +4,6 @@
import cn.hutool.core.convert.Convert;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.crypto.SecureUtil;
-import cn.hutool.crypto.digest.MD5;
import cn.lili.base.Result;
import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
@@ -28,6 +27,10 @@
import cn.lili.modules.lmk.domain.entity.VideoAccount;
import cn.lili.modules.lmk.domain.form.MemberNickNameForm;
import cn.lili.modules.lmk.domain.form.MemberTagForm;
+import cn.lili.modules.lmk.domain.vo.PrizeRecordVO;
+import cn.lili.modules.lmk.enums.general.PrizeDistributeStatusEnum;
+import cn.lili.modules.lmk.enums.general.PrizeGrantStatusEnums;
+import cn.lili.modules.lmk.enums.general.PrizeStatusEnum;
import cn.lili.modules.lmk.service.MemberTagService;
import cn.lili.modules.lmk.service.VideoAccountService;
import cn.lili.modules.member.aop.annotation.PointLogPoint;
@@ -35,14 +38,12 @@
import cn.lili.modules.member.entity.dto.*;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.entity.enums.QRCodeLoginSessionStatusEnum;
-import cn.lili.modules.member.entity.vo.MemberSearchVO;
-import cn.lili.modules.member.entity.vo.MemberVO;
-import cn.lili.modules.member.entity.vo.QRCodeLoginSessionVo;
-import cn.lili.modules.member.entity.vo.QRLoginResultVo;
+import cn.lili.modules.member.entity.vo.*;
import cn.lili.modules.member.mapper.MemberMapper;
import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.member.token.MemberTokenGenerate;
import cn.lili.modules.member.token.StoreTokenGenerate;
+import cn.lili.modules.order.order.entity.dto.PrizeRecordExportDetailDTO;
import cn.lili.modules.store.entity.dos.Store;
import cn.lili.modules.store.entity.enums.StoreStatusEnum;
import cn.lili.modules.store.service.StoreService;
@@ -57,19 +58,25 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.apache.catalina.security.SecurityUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.*;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
/**
* 浼氬憳鎺ュ彛涓氬姟灞傚疄鐜�
@@ -534,10 +541,13 @@
@Override
public Result updateMemberNickName(MemberNickNameForm form) {
Member member = baseMapper.selectById(form.getMemberId());
+ boolean update = false;
if ("寰俊鐢ㄦ埛".equals(member.getNickName()) || StringUtils.isBlank(member.getNickName())) {
member.setNickName(form.getNickName());
+ update = true;
+ }
+ if (update){
baseMapper.updateById(member);
- return Result.ok().data(member.getNickName());
}
return Result.ok().data(member.getNickName());
}
@@ -546,7 +556,7 @@
public Result resetPassword(String id) {
String password = "111111";
Member member = this.getById(id);
- member.setPassword(new BCryptPasswordEncoder().encode(password));
+ member.setPassword(new BCryptPasswordEncoder().encode(SecureUtil.md5(password)));
this.updateById(member);
return Result.ok("閲嶇疆鎴愬姛");
}
@@ -575,7 +585,129 @@
queryWrapper.eq(CharSequenceUtil.isNotBlank(memberSearchVO.getDisabled()), "disabled",
memberSearchVO.getDisabled().equals(SwitchEnum.OPEN.name()) ? 1 : 0);
queryWrapper.orderByDesc("create_time");
+
return this.baseMapper.pageByMemberVO(PageUtil.initPage(page), queryWrapper);
+ }
+ @Override
+ public IPage<MemberVO> getMemberPageAndTag(MemberSearchVO memberSearchVO, PageVO page) {
+ QueryWrapper<Member> queryWrapper = Wrappers.query();
+ //鐢ㄦ埛鍚嶆煡璇�
+ queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getUsername()), "username", memberSearchVO.getUsername());
+ //鐢ㄦ埛鍚嶆煡璇�
+ queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getNickName()), "nick_name", memberSearchVO.getNickName());
+ //鎸夌収鐢佃瘽鍙风爜鏌ヨ
+ queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getMobile()), "mobile", memberSearchVO.getMobile());
+ //鎸夌収浼氬憳鐘舵�佹煡璇�
+ queryWrapper.eq(CharSequenceUtil.isNotBlank(memberSearchVO.getDisabled()), "disabled",
+ memberSearchVO.getDisabled().equals(SwitchEnum.OPEN.name()) ? 1 : 0);
+ queryWrapper.orderByDesc("create_time");
+ if (CollectionUtils.isNotEmpty(memberSearchVO.getTagIds())) {
+ // 浣跨敤inSql鏂规硶杩涜瀹夊叏鐨勫瓙鏌ヨ
+ String tagIdsStr = memberSearchVO.getTagIds().stream()
+ .map(String::valueOf)
+ .collect(Collectors.joining(","));
+ queryWrapper.inSql("id",
+ "SELECT DISTINCT member_id FROM lmk_member_tag WHERE tag_id IN (" +
+ tagIdsStr + ")");
+
+ return this.baseMapper.pageByMemberVO(PageUtil.initPage(page), queryWrapper);
+ }
+ return this.baseMapper.pageByMemberVO(PageUtil.initPage(page),queryWrapper);
+ }
+
+ @Override
+ public void exportMember(MemberSearchVO memberSearchVO) {
+ HttpServletResponse response = ThreadContextHolder.getHttpResponse();
+ QueryWrapper<Member> queryWrapper = Wrappers.query();
+ //鐢ㄦ埛鍚嶆煡璇�
+ queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getUsername()), "username", memberSearchVO.getUsername());
+ //鐢ㄦ埛鍚嶆煡璇�
+ queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getNickName()), "nick_name", memberSearchVO.getNickName());
+ //鎸夌収鐢佃瘽鍙风爜鏌ヨ
+ queryWrapper.like(CharSequenceUtil.isNotBlank(memberSearchVO.getMobile()), "mobile", memberSearchVO.getMobile());
+ //鎸夌収浼氬憳鐘舵�佹煡璇�
+ queryWrapper.eq(CharSequenceUtil.isNotBlank(memberSearchVO.getDisabled()), "disabled",
+ memberSearchVO.getDisabled().equals(SwitchEnum.OPEN.name()) ? 1 : 0);
+ queryWrapper.orderByDesc("create_time");
+ if (CollectionUtils.isNotEmpty(memberSearchVO.getTagIds())) {
+ // 浣跨敤inSql鏂规硶杩涜瀹夊叏鐨勫瓙鏌ヨ
+ String tagIdsStr = memberSearchVO.getTagIds().stream()
+ .map(String::valueOf)
+ .collect(Collectors.joining(","));
+ queryWrapper.inSql("id",
+ "SELECT DISTINCT member_id FROM lmk_member_tag WHERE tag_id IN (" +
+ tagIdsStr + ")");
+ }
+ List<MemberVO> memberVOS = this.baseMapper.exportMember(queryWrapper);
+ XSSFWorkbook workbook = initExportMember(memberVOS);
+ try {
+ // 璁剧疆鍝嶅簲澶�
+ String fileName = URLEncoder.encode("浼氬憳鍒楄〃", "UTF-8");
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
+
+ ServletOutputStream out = response.getOutputStream();
+ workbook.write(out);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ workbook.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+ public XSSFWorkbook initExportMember(List<MemberVO> list){
+ List<MemberExportVO> exportDetailDTOS = new ArrayList<>();
+ for (MemberVO vo : list){
+ MemberExportVO detailDtO = new MemberExportVO();
+ BeanUtils.copyProperties(vo,detailDtO);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ // 灏咲ate绫诲瀷杞崲涓烘寚瀹氭牸寮忕殑瀛楃涓�
+ Date createTime = vo.getCreateTime();
+ if (createTime != null) {
+ String createTimeStr = sdf.format(createTime);
+ detailDtO.setCreateTime(createTimeStr);
+ }else {
+ detailDtO.setCreateTime("");
+ }
+ Date lastLoginDate1 = vo.getLastLoginDate();
+ if (lastLoginDate1 != null) {
+ String lastLoginDate = sdf.format(lastLoginDate1);
+ detailDtO.setLastLoginDate(lastLoginDate);
+ }else {
+ detailDtO.setLastLoginDate("");
+ }
+ // 璁剧疆鍒癉TO涓�
+ exportDetailDTOS.add(detailDtO);
+ }
+ XSSFWorkbook workbook = new XSSFWorkbook();
+
+ Sheet sheet = workbook.createSheet("浼氬憳鍒楄〃");
+ // 鍒涘缓琛ㄥご
+ Row header = sheet.createRow(0);
+ String[] headers = {
+ "浼氬憳鍚嶇О", "浼氬憳鏄电О","鑱旂郴鏂瑰紡",
+ "娉ㄥ唽鏃堕棿","鏈�鍚庣櫥褰曟椂闂�"
+ };
+ for(int i= 0 ;i< headers.length;i++){
+ Cell cell = header.createCell(i);
+ cell.setCellValue(headers[i]);
+ }
+ for (int i=0;i< exportDetailDTOS.size();i++){
+ MemberExportVO dto = exportDetailDTOS.get(i);
+ Row row = sheet.createRow(i+1);
+ row.createCell(0).setCellValue(dto.getUsername());
+ row.createCell(1).setCellValue(dto.getNickName());
+ row.createCell(2).setCellValue(dto.getMobile());
+ row.createCell(3).setCellValue(dto.getCreateTime());
+ row.createCell(4).setCellValue(dto.getLastLoginDate());
+ }
+
+ return workbook;
+
}
@Override
@@ -826,7 +958,9 @@
public MemberVO getMember(String id) {
MemberVO member = baseMapper.getVoById(id);
if (Objects.nonNull(member)) {
- member.setFace(cosUtil.getPreviewUrl(member.getFace()));
+ if(StringUtils.isNotBlank(member.getFace()) && !member.getFace().contains("https")){
+ member.setFace(cosUtil.getPreviewUrl(member.getFace()));
+ }
}
return member;
}
--
Gitblit v1.8.0