From f52355f9be7f130b6f4655c05418d5dc3cbe4d2f Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 13 五月 2026 14:35:32 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 543 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 439 insertions(+), 104 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 33dc998..e0efcdd 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -3,6 +3,7 @@
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.alibaba.fastjson.JSONObject;
+import com.doumee.biz.system.OperationConfigBiz;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.jwt.JwtTokenUtil;
import com.doumee.config.wx.WxMiniConfig;
@@ -12,15 +13,28 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.IdentityInfoMapper;
import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.CouponMapper;
+import com.doumee.dao.business.MemberCouponMapper;
import com.doumee.dao.business.OrdersMapper;
-import com.doumee.dao.business.model.IdentityInfo;
+import com.doumee.dao.business.ShopInfoMapper;
+import com.doumee.dao.business.SmsrecordMapper;
import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.MemberRevenue;
+import com.doumee.dao.business.model.Coupon;
+import com.doumee.dao.business.model.MemberCoupon;
import com.doumee.dao.business.model.Orders;
+import com.doumee.dao.business.model.ShopInfo;
+import com.doumee.dao.business.model.MemberRevenue;
+import com.doumee.dao.business.model.Smsrecord;
+import com.doumee.dao.dto.MemberListQueryDTO;
+import com.doumee.dao.dto.OperationConfigDTO;
+import com.doumee.dao.dto.UpdMobileRequest;
import com.doumee.dao.dto.WxPhoneRequest;
import com.doumee.dao.vo.AccountResponse;
+import com.doumee.dao.vo.MemberContactVO;
+import com.doumee.dao.vo.MemberDetailVO;
+import com.doumee.dao.vo.MemberListVO;
+import com.doumee.dao.vo.PlatformAboutVO;
import com.doumee.dao.vo.UserCenterVO;
import com.doumee.service.business.MemberService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -32,6 +46,7 @@
import io.swagger.annotations.ApiModelProperty;
import me.chanjar.weixin.common.error.WxErrorException;
import nonapi.io.github.classgraph.json.Id;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
@@ -39,8 +54,13 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
import java.util.Date;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.Random;
import java.util.concurrent.TimeUnit;
@@ -51,6 +71,7 @@
* @author 姹熻箘韫�
* @date 2025/07/09 12:00
*/
+@Slf4j
@Service
public class MemberServiceImpl implements MemberService {
@@ -58,10 +79,7 @@
private MemberMapper memberMapper;
@Autowired
- private IdentityInfoMapper identityInfoMapper;
-
- @Autowired
- private OrdersMapper ordersMapper;
+ private SmsrecordMapper smsrecordMapper;
@Autowired
private JwtTokenUtil jwtTokenUtil;
@@ -71,6 +89,21 @@
@Autowired
private RedisTemplate<String,Object> redisTemplate;
+
+ @Autowired
+ private ShopInfoMapper shopInfoMapper;
+
+ @Autowired
+ private OrdersMapper ordersMapper;
+
+ @Autowired
+ private OperationConfigBiz operationConfigBiz;
+
+ @Autowired
+ private CouponMapper couponMapper;
+
+ @Autowired
+ private MemberCouponMapper memberCouponMapper;
@Override
@@ -120,8 +153,8 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
if(StringUtils.isNotBlank(member.getCoverImage())){
- String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
- +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MEMBER_FILES).getCode();
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
+ +systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILES).getCode();
member.setFullCoverImage(path + member.getCoverImage());
}
return member;
@@ -183,15 +216,6 @@
if (pageWrap.getModel().getName() != null) {
queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName());
}
- if (pageWrap.getModel().getWorkerIdentity() != null) {
- queryWrapper.lambda().eq(Member::getWorkerIdentity, pageWrap.getModel().getWorkerIdentity());
- }
- if (pageWrap.getModel().getDriverIdentity() != null) {
- queryWrapper.lambda().eq(Member::getDriverIdentity, pageWrap.getModel().getDriverIdentity());
- }
- if (pageWrap.getModel().getChefIdentity() != null) {
- queryWrapper.lambda().eq(Member::getChefIdentity, pageWrap.getModel().getChefIdentity());
- }
if (pageWrap.getModel().getAmount() != null) {
queryWrapper.lambda().eq(Member::getAmount, pageWrap.getModel().getAmount());
}
@@ -229,12 +253,6 @@
if (pageWrap.getModel().getArea() != null) {
queryWrapper.lambda().eq(Member::getArea, pageWrap.getModel().getArea());
}
- //濡傛灉鏌ヨ鎺ュ崟鏂�
- queryWrapper.lambda().and(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ONE ),w1->{
- w1.eq(Member::getWorkerIdentity,Constants.TWO )
- .or().eq(Member::getChefIdentity,Constants.TWO )
- .or().eq(Member::getDriverIdentity,Constants.TWO );
- });
queryWrapper.lambda().ge(pageWrap.getModel().getStartTime()!=null, Member::getCreateTime,pageWrap.getModel().getStartTime());
queryWrapper.lambda().le(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime());
@@ -275,8 +293,10 @@
if (StringUtils.isBlank(openId)) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
}
- Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenid, openId).eq(Member::getUserType,Constants.ZERO)
- .eq(Member::getDeleted, Constants.ZERO).ne(Member::getStatus, Constants.TWO).last("limit 1"));
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenid, openId)
+ .ne(Member::getUserType,Constants.ONE)
+ .eq(Member::getDeleted, Constants.ZERO)
+ .ne(Member::getStatus, Constants.TWO).last("limit 1"));
AccountResponse accountResponse = new AccountResponse();
accountResponse.setOpenid(openId);
if(Objects.isNull(member)){
@@ -295,8 +315,6 @@
}
-
-
@Override
public AccountResponse wxAuthPhone(WxPhoneRequest wxPhoneRequest) {
if(Objects.isNull(wxPhoneRequest)
@@ -310,7 +328,9 @@
if(Objects.isNull(mobile)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈幏鍙栧埌鎵嬫満鍙�");
}
- Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getTelephone,mobile).eq(Member::getUserType,Constants.ZERO)
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getTelephone,mobile)
+ .ne(Member::getUserType,Constants.ONE)
.ne(Member::getStatus, Constants.TWO).last("limit 1"));
if(Objects.nonNull(member)){
if(!Constants.equalsInteger(member.getStatus(),Constants.ZERO)){
@@ -325,11 +345,7 @@
member.setDeleted(Constants.ZERO);
member.setOpenid(wxPhoneRequest.getOpenid());
member.setTelephone(mobile);
- member.setNickName(mobile);
-// member.setCoverImage("1.png");
- member.setWorkerIdentity(Constants.ZERO);
- member.setDriverIdentity(Constants.ZERO);
- member.setChefIdentity(Constants.ZERO);
+ member.setNickName(mobile.substring(0, 3) + "****" + mobile.substring(7));
member.setAmount(Constants.ZERO.longValue());
member.setTotalAmount(Constants.ZERO.longValue());
member.setStatus(Constants.ZERO);
@@ -338,7 +354,7 @@
member.setReceiveNum(Constants.ZERO.longValue());
member.setPublishNum(Constants.ZERO.longValue());
member.setAutoReceiveStatus(Constants.ONE);
- member.setUseIdentity(Constants.ZERO);
+ member.setUserType(Constants.ZERO);
memberMapper.insert(member);
}
String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate);
@@ -352,6 +368,56 @@
}
}
+ /**
+ * 闂ㄥ簵鐢ㄦ埛韬唤鏃讹紝濉厖闂ㄥ簵瀹℃牳鐘舵��
+ */
+ private void fillShopInfo(UserCenterVO userCenterVO, Member member) {
+ // 鏌ヨ姝e紡鐗堟湰闂ㄥ簵
+ ShopInfo official = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+ .eq(ShopInfo::getRegionMemberId, member.getId())
+ .eq(ShopInfo::getVersionType, Constants.ZERO)
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (official != null) {
+ userCenterVO.setShopId(official.getId());
+ if (Constants.equalsInteger(official.getAuditStatus(), Constants.THREE)) {
+ // 姝e紡鐗堟湰宸叉敮浠樻娂閲戯紝鏌ヨ鏈�鏂板彉鏇寸増鏈姸鎬�
+ ShopInfo changeVersion = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+ .eq(ShopInfo::getRelationShopId, official.getId())
+ .eq(ShopInfo::getVersionType, Constants.ONE)
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .orderByDesc(ShopInfo::getCreateTime)
+ .last("limit 1"));
+ if (changeVersion != null) {
+ if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.THREE)) {
+ userCenterVO.setShopAuditStatus(Constants.THREE);
+ } else if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.ZERO)) {
+ userCenterVO.setShopAuditStatus(4); // 鍙樻洿涓�
+ } else if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.TWO)) {
+ userCenterVO.setShopAuditStatus(5); // 鍙樻洿鏈�氳繃
+ } else {
+ userCenterVO.setShopAuditStatus(Constants.THREE);
+ }
+ } else {
+ // 鏃犲彉鏇寸増鏈紝淇濇寔姝e紡鐗堟湰鐘舵��
+ userCenterVO.setShopAuditStatus(Constants.THREE);
+ }
+ } else {
+ // 姝e紡鐗堟湰鏈敮浠樻娂閲戯紝鐩存帴杩斿洖褰撳墠鐘舵��
+ userCenterVO.setShopAuditStatus(official.getAuditStatus());
+ }
+ }
+ // 鏍规嵁openid鏌ヨ褰撳墠缁戝畾鐨勯棬搴�
+ if (StringUtils.isNotBlank(member.getOpenid())) {
+ ShopInfo bindShop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+ .eq(ShopInfo::getOpenid, member.getOpenid())
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (bindShop != null) {
+ userCenterVO.setBindShopId(String.valueOf(bindShop.getId()));
+ }
+ }
+ }
@Override
@@ -373,84 +439,97 @@
}
-// @Override
-// public void editUseIdentity(Member member){
-// if(Objects.isNull(member)
-// || Objects.isNull(member.getUseIdentity())){
-// throw new BusinessException(ResponseStatus.BAD_REQUEST);
-// }
-// if(Constants.equalsInteger(member.getUseIdentity(),Constants.ZERO)){
-// member.setUseIdentity(Constants.ZERO);
-// memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getUseIdentity,Constants.ZERO).eq(Member::getId,member.getId()));
-// }else{
-// if(identityInfoMapper.selectCount(new QueryWrapper<IdentityInfo>().lambda().eq(IdentityInfo::getDeleted,Constants.ZERO)
-// .eq(IdentityInfo::getMemberId,member.getId())
-// .eq(IdentityInfo::getAuditStatus,Constants.TWO))>Constants.ZERO){
-// memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getUseIdentity,Constants.ONE).eq(Member::getId,member.getId()));
-// }else{
-// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鏃犲彲鐢ㄦ帴鍗曡韩浠�!");
-// }
-// }
-// }
-
-
@Override
- public Member getMemberInfo(Integer memberId){
- Member member = this.findById(memberId);
+ public UserCenterVO getMemberInfo(Integer memberId){
+ Member member = memberMapper.selectById(memberId);
if(Objects.isNull(member)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- if(StringUtils.isNotBlank(member.getCoverImage())){
- String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
- +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MEMBER_FILES).getCode();
- member.setFullCoverImage(path + member.getCoverImage());
- }
-// UserCenterVO userCenterVO = new UserCenterVO();
-// userCenterVO.setReleaseTaskTotal(Constants.ZERO);
-// userCenterVO.setWaitReceiveTotal(Constants.ZERO);
-// userCenterVO.setDoingTotal(Constants.ZERO);
-// userCenterVO.setWaitCommentTotal(Constants.ZERO);
-// userCenterVO.setTaskingTotal(Constants.ZERO);
-// userCenterVO.setDoneTotal(Constants.ZERO);
-// userCenterVO.setReceiveTotal(Constants.ZERO);
-// List<Orders> releaseOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO)
-// .eq(Orders::getReleaseMemberId,member.getId()));
-// if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(releaseOrders)){
-// userCenterVO.setReleaseTaskTotal(releaseOrders.size());
-// userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())&&Constants.equalsInteger(i.getCommentStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
-// userCenterVO.setDoingTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size());
-// userCenterVO.setWaitReceiveTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.wait.getKey())).collect(Collectors.toList()).size());
-// }
-// List<Orders> acceptOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO).eq(Orders::getAcceptMemberId,member.getId()));
-// if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(acceptOrders)){
-// userCenterVO.setReceiveTotal(acceptOrders.size());
-// userCenterVO.setTaskingTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size());
-// userCenterVO.setDoneTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())).collect(Collectors.toList()).size());
-// }
-// member.setUserCenterVO(userCenterVO);
- return member;
- }
-
-
-
-
- @Override
- public UserCenterVO getPlatformAboutUs(){
+ // 鐢ㄦ埛涓績鏁版嵁
UserCenterVO userCenterVO = new UserCenterVO();
- userCenterVO.setAboutUs(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ABOUT_US).getCode()));
- userCenterVO.setUserAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.USER_AGREEMENT).getCode()));
- userCenterVO.setPrivacyAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRIVACY_AGREEMENT).getCode()));
-
-// userCenterVO.setFeeStandards(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FEE_STANDARDS).getCode()));
-// userCenterVO.setServerIntroduce(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_INTRODUCE).getCode()));
-// userCenterVO.setServerPhone(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_PHONE).getCode()));
+ userCenterVO.setNickName(member.getNickName());
+ userCenterVO.setName(member.getName());
+ userCenterVO.setTelephone(member.getTelephone());
+ userCenterVO.setCoverImage(member.getCoverImage());
+ userCenterVO.setOpenid(member.getOpenid());
+ if(StringUtils.isNotBlank(member.getCoverImage())){
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
+ +systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILES).getCode();
+ userCenterVO.setFullCoverImage(path + member.getCoverImage());
+ }
+ userCenterVO.setHasMessage(false);
+ // 寰呮敮浠樿鍗曟暟閲�
+ Long waitPayCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getMemberId, memberId)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .eq(Orders::getStatus, Constants.OrderStatus.waitPay.getStatus()));
+ userCenterVO.setWaitPayCount(waitPayCount.intValue());
+ // 寰呮敹璐ц鍗曟暟閲�
+ int[] waitReceiveStatuses = Constants.OrderCombinedStatus.waitReceive.getStatuses();
+ Long waitReceiveCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getMemberId, memberId)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .in(Orders::getStatus, Arrays.stream(waitReceiveStatuses).boxed().collect(Collectors.toList())));
+ userCenterVO.setWaitReceiveCount(waitReceiveCount.intValue());
+ // 閫�娆句腑璁㈠崟鏁伴噺
+ Long refundingCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getMemberId, memberId)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .eq(Orders::getStatus, 98));
+ userCenterVO.setRefundingCount(refundingCount.intValue());
+ // 闂ㄥ簵鐢ㄦ埛韬唤鏃讹紝杩斿洖鐢宠鐨勯棬搴楃姸鎬�
+ fillShopInfo(userCenterVO, member);
return userCenterVO;
}
+
+
+
@Override
- public void logOut(String token,Integer memberId){
- memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" openid = null ").eq(Member::getId,memberId));
- jwtTokenUtil.logoutForH5(token);
+ public PlatformAboutVO getPlatformAboutUs(){
+ PlatformAboutVO vo = new PlatformAboutVO();
+ vo.setAboutUs(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ABOUT_US).getCode()));
+ vo.setStoreRiskCommitment(getDictValue(Constants.STORE_RISK_COMMITMENT));
+ vo.setStoreCooperationAgreement(getDictValue(Constants.STORE_COOPERATION_AGREEMENT));
+ vo.setStoreLuggageStorageNotice(getDictValue(Constants.STORE_LUGGAGE_STORAGE_NOTICE));
+ vo.setStorePrivacyPolicy(getDictValue(Constants.STORE_PRIVACY_POLICY));
+ vo.setOwnerLuggageStorageNotice(getDictValue(Constants.OWNER_LUGGAGE_STORAGE_NOTICE));
+ vo.setOwnerServiceAgreement(getDictValue(Constants.OWNER_SERVICE_AGREEMENT));
+ vo.setOwnerRiskCommitment(getDictValue(Constants.OWNER_RISK_COMMITMENT));
+ vo.setErrandRiskCommitment(getDictValue(Constants.ERRAND_RISK_COMMITMENT));
+ vo.setErrandServiceAgreement(getDictValue(Constants.ERRAND_SERVICE_AGREEMENT));
+ vo.setErrandLuggageStorageNotice(getDictValue(Constants.ERRAND_LUGGAGE_STORAGE_NOTICE));
+ vo.setUserServiceAgreement(getDictValue(Constants.USER_SERVICE_AGREEMENT));
+ vo.setUserPrivacyPolicy(getDictValue(Constants.USER_PRIVACY_POLICY));
+ vo.setDriverPrivacyPolicy(getDictValue(Constants.DRIVER_PRIVACY_POLICY));
+ vo.setPriceDescription(getDictValue(Constants.PRICE_DESCRIPTION));
+ vo.setProhibitedItems(getDictValue(Constants.PROHIBITED_ITEMS));
+ vo.setServerPhone(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.SERVER_PHONE).getCode()));
+ return vo;
+ }
+
+ private String getDictValue(String key) {
+ try {
+ return StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM, key).getCode());
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ @Override
+ public void logOut(String token,Integer userId,Integer userType){
+ if(Constants.equalsInteger(userType,Constants.ZERO)){
+ memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" openid = null ").eq(Member::getId,userId));
+ }else if (Constants.equalsInteger(userType,Constants.TWO)){
+ try {
+ Integer lastIndex = token.lastIndexOf("_")+1;
+ Integer tokenId = Integer.valueOf(token.substring(lastIndex));
+ memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" LOGIN_SHOP_ID = null ").eq(Member::getId,tokenId));
+ }catch (Exception e){
+
+ }
+ }
+ jwtTokenUtil.logout(token);
}
@@ -467,4 +546,260 @@
redisTemplate.delete(token);
}
+ @Override
+ public MemberContactVO getContactInfo(Integer memberId) {
+ MemberContactVO vo = new MemberContactVO();
+ // 浼樺厛浠庡巻鍙茶鍗曞彇鏀朵欢浜轰俊鎭�
+ Orders lastOrder = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getMemberId, memberId)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .isNotNull(Orders::getTakeUser)
+ .ne(Orders::getTakeUser, "")
+ .orderByDesc(Orders::getId)
+ .last("limit 1"));
+ if (lastOrder != null && StringUtils.isNotBlank(lastOrder.getTakeUser())) {
+ vo.setName(lastOrder.getTakeUser());
+ vo.setPhone(lastOrder.getTakePhone());
+ return vo;
+ }
+ // 鍙栫敤鎴蜂俊鎭�
+ Member member = memberMapper.selectById(memberId);
+ if (member != null) {
+ vo.setName(member.getName() != null ? member.getName() : "");
+ vo.setPhone(member.getTelephone() != null ? member.getTelephone() : "");
+ }
+ return vo;
+ }
+
+
+ /***************绠$悊绔細鍛樺垪琛ㄦ帴鍙�*************/
+
+ @Override
+ public PageData<MemberListVO> findMemberListPage(PageWrap<MemberListQueryDTO> pageWrap) {
+ IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ MemberListQueryDTO query = pageWrap.getModel();
+ QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(Member::getDeleted, Constants.ZERO);
+ queryWrapper.lambda().eq(Member::getUserType, Constants.ZERO);
+ if (query != null) {
+ if (StringUtils.isNotBlank(query.getKeyword())) {
+ queryWrapper.lambda().and(w -> w
+ .like(Member::getName, query.getKeyword())
+ .or().like(Member::getTelephone, query.getKeyword()));
+ }
+ if (query.getStatus() != null) {
+ queryWrapper.lambda().eq(Member::getStatus, query.getStatus());
+ }
+ if (query.getStartTime() != null) {
+ queryWrapper.lambda().ge(Member::getCreateTime, query.getStartTime());
+ }
+ if (query.getEndTime() != null) {
+ queryWrapper.lambda().le(Member::getCreateTime, Utils.Date.getEnd(query.getEndTime()));
+ }
+ }
+ queryWrapper.lambda().orderByDesc(Member::getId);
+ IPage<Member> memberPage = memberMapper.selectPage(page, queryWrapper);
+ IPage<MemberListVO> voPage = memberPage.convert(this::toListVO);
+ return PageData.from(voPage);
+ }
+
+ @Override
+ public MemberDetailVO findMemberDetail(Integer id) {
+ Member member = memberMapper.selectById(id);
+ if (Objects.isNull(member) || Constants.equalsInteger(member.getDeleted(), Constants.ONE)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ MemberDetailVO detail = new MemberDetailVO();
+ detail.setId(member.getId());
+ detail.setNickName(member.getNickName());
+ detail.setName(member.getName());
+ detail.setTelephone(member.getTelephone());
+ detail.setAmount(member.getAmount());
+ detail.setTotalAmount(member.getTotalAmount());
+ detail.setStatus(member.getStatus());
+ detail.setUseIdentity(member.getUseIdentity());
+ detail.setOpenid(member.getOpenid());
+ detail.setUserType(member.getUserType());
+ detail.setBusinessStatus(member.getBusinessStatus());
+ detail.setScore(member.getScore());
+ detail.setReceiveNum(member.getReceiveNum());
+ detail.setPublishNum(member.getPublishNum());
+ detail.setCreateTime(member.getCreateTime());
+ detail.setLoginTime(member.getLoginTime());
+ detail.setLoginTimes(member.getLoginTimes());
+ detail.setProvince(member.getProvince());
+ detail.setCity(member.getCity());
+ detail.setArea(member.getArea());
+ detail.setAutoReceiveStatus(member.getAutoReceiveStatus());
+ if (StringUtils.isNotBlank(member.getCoverImage())) {
+ String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILES).getCode();
+ detail.setFullCoverImage(path + member.getCoverImage());
+ }
+ return detail;
+ }
+
+ private MemberListVO toListVO(Member member) {
+ MemberListVO vo = new MemberListVO();
+ vo.setId(member.getId());
+ vo.setNickName(member.getNickName());
+ vo.setName(member.getName());
+ vo.setTelephone(member.getTelephone());
+ vo.setCreateTime(member.getCreateTime());
+ vo.setStatus(member.getStatus());
+ return vo;
+ }
+
+
+
+
+ @Override
+ public void verifyUserPhone(UpdMobileRequest request){
+ if(Objects.isNull(request)
+ || Objects.isNull(request.getMemberId())
+ || StringUtils.isBlank(request.getPhone())
+ || StringUtils.isBlank(request.getCode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Member member = memberMapper.selectById(request.getMemberId());
+ if(StringUtils.isNotBlank(member.getTelephone())&&!member.getTelephone().equals(request.getPhone())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵嬫満鍙烽敊璇�");
+ }
+ this.verifyPhoneCode(request.getCode(),request.getPhone());
+ }
+
+ public void verifyPhoneCode(String code,String phone){
+ //楠岃瘉鐮�
+ Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda()
+ .eq(Smsrecord::getDeleted,Constants.ZERO)
+ .eq(Smsrecord::getCode,code)
+ .eq(Smsrecord::getPhone,phone)
+ .last(" limit 1")
+ );
+ if(Objects.isNull(smsrecord)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮侀敊璇紒");
+ }
+ if(!Constants.equalsInteger(smsrecord.getStatus(),Constants.ZERO)){
+ if(Constants.equalsInteger(smsrecord.getStatus(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮佸凡浣跨敤");
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮佸凡杩囨湡");
+ }
+ }
+ smsrecordMapper.update(new UpdateWrapper<Smsrecord>().lambda()
+ .set(Smsrecord::getStatus,Constants.ONE)
+ .eq(Smsrecord::getId,smsrecord.getId())
+ );
+ }
+
+ @Override
+ public void updateUserPhone(UpdMobileRequest request){
+ if(Objects.isNull(request)
+ || Objects.isNull(request.getMemberId())
+ || StringUtils.isBlank(request.getPhone())
+ || StringUtils.isBlank(request.getCode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ //鍒ゆ柇鏂版墜鏈哄彿鏄惁宸茶浣跨敤
+ if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
+ .eq(Member::getDeleted,Constants.ZERO)
+ .eq(Member::getUserType,Constants.ZERO)
+ .eq(Member::getTelephone,request.getPhone()))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,鏂版墜鏈哄彿宸茶缁戝畾,鏃犳硶杩涜鎹㈢粦锛�");
+ }
+ Member member = memberMapper.selectById(request.getMemberId());
+ if(StringUtils.isNotBlank(member.getTelephone())&&member.getTelephone().equals(request.getPhone())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶鏇存崲鐩稿悓鎵嬫満鍙�");
+ }
+ this.verifyPhoneCode(request.getCode(),request.getPhone());
+ memberMapper.update(new UpdateWrapper<Member>().lambda()
+ .set(Member::getTelephone,request.getPhone())
+ .eq(Member::getId,request.getMemberId())
+ );
+ }
+
+ @Override
+ public void giftRegisterCoupon() {
+ // 1. 璇诲彇閰嶇疆
+ OperationConfigDTO config = operationConfigBiz.getConfig();
+ String yearsStr = config.getRegisterCouponYears();
+ String maxGiftStr = config.getRegisterCouponGiftCount();
+ String couponIdStr = config.getRegisterCouponId();
+ if (StringUtils.isBlank(yearsStr) || StringUtils.isBlank(maxGiftStr) || StringUtils.isBlank(couponIdStr)) {
+ return;
+ }
+ int configYears = Integer.parseInt(yearsStr);
+ int maxGiftCount = Integer.parseInt(maxGiftStr);
+ int couponId = Integer.parseInt(couponIdStr);
+ if (configYears <= 0 || maxGiftCount <= 0) {
+ return;
+ }
+
+ // 2. 鏍¢獙浼樻儬鍒稿瓨鍦ㄤ笖鍚敤
+ Coupon coupon = couponMapper.selectById(couponId);
+ if (coupon == null || !Constants.equalsInteger(coupon.getIsdeleted(), Constants.ZERO)
+ || !Constants.equalsInteger(coupon.getStatus(), Constants.ZERO)) {
+ return;
+ }
+
+ // 3. 鏌ヨ鎵�鏈夋櫘閫氫細鍛�
+ List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+ .eq(Member::getDeleted, Constants.ZERO)
+ .eq(Member::getStatus, Constants.ZERO)
+ .eq(Member::getUserType, Constants.ZERO)
+ .isNotNull(Member::getCreateTime));
+
+ Date now = new Date();
+ long msPerYear = 365L * 24 * 60 * 60 * 1000;
+ int giftedMemberCount = 0;
+
+ for (Member member : members) {
+ int alreadyGifted = member.getRegisterCouponGiftCount() != null ? member.getRegisterCouponGiftCount() : 0;
+ // 宸叉敞鍐屽勾鏁帮紙鍙栨暣锛�
+ int registeredYears = (int) ((now.getTime() - member.getCreateTime().getTime()) / msPerYear);
+ // 搴旇禒閫佹�绘鏁�
+ int shouldGiftTotal = registeredYears / configYears;
+ // 瀹為檯杩橀渶璧犻�佹鏁�
+ int remainGift = Math.min(shouldGiftTotal, maxGiftCount) - alreadyGifted;
+ if (remainGift <= 0) {
+ continue;
+ }
+
+ // 4. 璧犻�佷紭鎯犲埜
+ for (int i = 0; i < remainGift; i++) {
+ MemberCoupon mc = new MemberCoupon();
+ mc.setCouponId(couponId);
+ mc.setMemberId(member.getId());
+ mc.setStatus(Constants.CouponStatus.waitClaim.getKey());
+ // 鎺ㄩ�佸悗棰嗗彇鏈夋晥鏈�
+ Calendar validCal = Calendar.getInstance();
+ validCal.add(Calendar.DAY_OF_MONTH, coupon.getPushDays() != null ? coupon.getPushDays() : 7);
+ mc.setValidDate(validCal.getTime());
+ // 鎷疯礉浼樻儬鍒镐俊鎭�
+ mc.setName(coupon.getName());
+ mc.setInfo(coupon.getInfo());
+ mc.setType(coupon.getType());
+ mc.setLimitPrice(coupon.getLimitPrice());
+ mc.setPrice(coupon.getPrice());
+ mc.setGetMethod(coupon.getGetMethod());
+ mc.setCouponType(coupon.getCouponType());
+ mc.setPushDays(coupon.getPushDays());
+ mc.setValidDays(coupon.getValidDays());
+ mc.setIsdeleted(Constants.ZERO);
+ mc.setCreateDate(now);
+ mc.setEditDate(now);
+ memberCouponMapper.insert(mc);
+ }
+
+ // 5. 鏇存柊浼氬憳宸茶禒閫佹鏁�
+ memberMapper.update(new UpdateWrapper<Member>().lambda()
+ .set(Member::getRegisterCouponGiftCount, alreadyGifted + remainGift)
+ .eq(Member::getId, member.getId()));
+ giftedMemberCount++;
+ }
+ log.info("娉ㄥ唽婊″勾璧犻�佷紭鎯犲埜瀹屾垚锛屽叡澶勭悊{}鍚嶄細鍛�", giftedMemberCount);
+ }
+
}
--
Gitblit v1.9.3