From e9e504197c8e2fc9327d0fe6bdf7f513170594ab Mon Sep 17 00:00:00 2001
From: jiangqs <343695869@qq.com>
Date: 星期日, 04 六月 2023 12:30:38 +0800
Subject: [PATCH] 优化部分代码
---
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 550 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 411 insertions(+), 139 deletions(-)
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index 37d8d0c..c13df1f 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -1,28 +1,38 @@
package com.ruoyi.member.service.impl.member;
+import com.google.common.collect.Lists;
+import java.util.Date;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.*;
+import com.ruoyi.member.domain.pojo.member.IntegralRecord;
import com.ruoyi.member.domain.pojo.member.MemberNurse;
+import com.ruoyi.member.domain.pojo.member.MemberTotal;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.member.MemberMapper;
-import com.ruoyi.member.service.member.MemberNurseService;
-import com.ruoyi.member.service.member.MemberService;
+import com.ruoyi.member.service.member.*;
+import com.ruoyi.member.util.CodeFactoryUtil;
import com.ruoyi.member.util.HttpUtils;
-import com.ruoyi.system.api.RemoteConfigService;
-import com.ruoyi.system.api.RemoteOrderService;
-import com.ruoyi.system.api.RemoteShopService;
-import com.ruoyi.system.api.RemoteUserService;
+import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
+import com.ruoyi.system.api.domain.poji.config.Activeness;
+import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
+import com.ruoyi.system.api.service.RemoteConfigService;
+import com.ruoyi.system.api.service.RemoteOrderService;
+import com.ruoyi.system.api.service.RemoteShopService;
+import com.ruoyi.system.api.service.RemoteUserService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
@@ -35,6 +45,7 @@
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
+import io.swagger.models.auth.In;
import lombok.extern.log4j.Log4j2;
import com.ruoyi.common.core.utils.StringUtils;
import org.apache.commons.lang3.ArrayUtils;
@@ -44,6 +55,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -77,9 +89,6 @@
private MemberMapper memberMapper;
@Resource
- private StringRedisTemplate stringRedisTemplate;
-
- @Resource
private RemoteShopService shopService;
@Resource
@@ -90,6 +99,19 @@
@Resource
private RemoteConfigService remoteConfigService;
+
+ @Resource
+ private RedisService redisService;
+
+ @Resource
+ private MemberTotalService memberTotalService;
+
+ @Resource
+ private IntegralRecordService integralRecordService;
+
+ @Resource
+ private MemberArchiveService memberArchiveService;
+
/**
* @description: TODO
@@ -129,126 +151,113 @@
sessionKey = session.getSessionKey();
//获取用户
Member member = memberMapper.getOneByMiniOpenid(openid);
- SysUser sysUser;
- if(member==null){
- //创建新用户
- String memberId = IdUtils.simpleUUID();
- sysUser = new SysUser();
- sysUser.setUserName(memberId);
- sysUser.setUserType("03");
- sysUser.setNickName("鸿瑞堂用户");
- sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
- String password = "hongruitang";
- sysUser.setPassword(SecurityUtils.encryptPassword(password));
- sysUser = sysUserService.registerUser(sysUser).getData();
- log.info("sysUser1-----------------"+sysUser.toString());
- member = new Member();
- member.setUserId(sysUser.getUserId());
- member.setDelFlag(0);
- member.setNickName("鸿瑞堂用户");
- member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
- member.setMemberId(memberId);
- member.setRelationShopId(1L);
- member.setWxUnionid(unionid);
- member.setMiniOpenid(openid);
- member.setBindingFlag(0);
- member.setCreateTime(new Date());
- log.info("member-----------------"+member.toString());
- this.saveOrUpdate(member);
-
- }else{
- log.info("member2"+member.toString());
- R<SysUser> sysUser1 = sysUserService.getSysUser(member.getUserId());
- log.info("sysUser1"+ sysUser1.getCode() + " : " + sysUser1.getMsg());
- sysUser = sysUser1.getData();
- log.info("sysUser"+sysUser.toString());
+ SysUser sysUser = null;
+ if(member!=null){
+ sysUser = sysUserService.getSysUser(member.getUserId()).getData();
}
appMiniLoginVo.setMiniOpenid(openid);
appMiniLoginVo.setWxUnionid(unionid);
appMiniLoginVo.setSysUser(sysUser);
appMiniLoginVo.setSessionKey(sessionKey);
- stringRedisTemplate.opsForValue().set(SecurityConstant.SESSION_KEY+openid,sessionKey);
- }else{
- log.info("null");
- return null;
+ redisService.setCacheObject(SecurityConstant.SESSION_KEY+openid,sessionKey,1L,TimeUnit.DAYS);
}
log.info("appMiniLoginVo"+appMiniLoginVo.toString());
return appMiniLoginVo;
}
/**
- * 获取授权信息
- * @param appUserAuthorizeDto
+ * 小程序注册
+ * @param appUserRegisterDto
* @return
*/
@Override
- public AppUserAuthorizeVo getAppUserAuthorize(AppUserAuthorizeDto appUserAuthorizeDto){
- Member member = this.getById(appUserAuthorizeDto.getUserId());
- AppUserAuthorizeVo appUserAuthorizeVo = new AppUserAuthorizeVo();
+ public AppMiniRegisterVo miniRegister(AppMiniRegisterDto appUserRegisterDto){
+ AppMiniRegisterVo appUserRegisterVo = new AppMiniRegisterVo();
String mobile = null;
- if(StringUtils.isBlank(member.getMobile())){
- //获取code接口在redis里存放的sessionkey用于解密
- String sessionkey = stringRedisTemplate.opsForValue().get(SecurityConstant.SESSION_KEY+ member.getMiniOpenid());
- if(StringUtils.isBlank(sessionkey)){
- throw new ServiceException(AppErrorConstant.USER_NOT_LOGIN);
- }
- try {
- String accessToken = stringRedisTemplate.opsForValue().get("wx_access_token");
- if (StringUtils.isBlank(accessToken)) {
- String responseAccessToken = getAccessTokenByWX();
- JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken);
- accessToken = jsonAccessToken.getString("access_token");
- String errmsg = jsonAccessToken.getString("errmsg");
- Long expiresIn = jsonAccessToken.getLong("expires_in");
- if (StringUtils.isBlank(accessToken)) {
- throw new ServiceException(errmsg);
- } else {
- expiresIn = expiresIn - 100;
- stringRedisTemplate.opsForValue().set("wx_access_token", accessToken, expiresIn.intValue(), TimeUnit.SECONDS);
- }
- }
- String responseUserPhoneNumber = getMobileByWX(accessToken, appUserAuthorizeDto.getMobileCode());
- JSONObject jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber);
- String errcode = jsonUserPhoneNumber.getString("errcode");
- String errmsg = jsonUserPhoneNumber.getString("errmsg");
- if (!errcode.equals("0")) {
- throw new ServiceException(errmsg);
- }
- String phoneInfo = jsonUserPhoneNumber.getString("phone_info");
- JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo);
- mobile = jsonUserPhoneInfo.getString("purePhoneNumber");
- } catch (Exception e) {
- e.printStackTrace();
- }
- Member oldMember = this.getByMobile(mobile);
- if(oldMember!=null){
- member.setNickName(oldMember.getNickName());
- member.setGender(oldMember.getGender());
- member.setReferrer(oldMember.getReferrer());
- member.setBirthday(oldMember.getBirthday());
- member.setBindingFlag(1);
- member.setRelationShopId(oldMember.getRelationShopId());
- oldMember.setDelFlag(1);
- oldMember.setMiniOpenid(oldMember.getMiniOpenid()+"已删除");
- this.saveOrUpdate(oldMember);
- }else{
- //更新用户手机信息
- SysUser sysUser = new SysUser();
- sysUser.setUserId(appUserAuthorizeDto.getUserId());
- sysUser.setPhonenumber(mobile);
- sysUserService.updateUserMobile(sysUser);
- member.setNickName(sysUser.getNickName());
- }
- member.setMobile(mobile);
- this.saveOrUpdate(member);
- }else{
- mobile = member.getMobile();
+ //获取code接口在redis里存放的sessionkey用于解密
+ String sessionkey = redisService.getCacheObject(SecurityConstant.SESSION_KEY+ appUserRegisterDto.getMiniOpenid());
+ if(StringUtils.isBlank(sessionkey)){
+ throw new ServiceException(AppErrorConstant.USER_NOT_LOGIN);
}
- appUserAuthorizeVo.setMobile(mobile);
- appUserAuthorizeVo.setNickName(member.getNickName());
- appUserAuthorizeVo.setOpenid(member.getMiniOpenid());
- appUserAuthorizeVo.setUnionid(member.getWxUnionid());
- return appUserAuthorizeVo;
+ try {
+ //获取微信token用于解密手机
+ String accessToken = redisService.getCacheObject(SecurityConstant.WX_TOKEN);
+ if (StringUtils.isBlank(accessToken)) {
+ String responseAccessToken = getAccessTokenByWX();
+ JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken);
+ accessToken = jsonAccessToken.getString("access_token");
+ String errmsg = jsonAccessToken.getString("errmsg");
+ Long expiresIn = jsonAccessToken.getLong("expires_in");
+ if (StringUtils.isBlank(accessToken)) {
+ throw new ServiceException(errmsg);
+ } else {
+ expiresIn = expiresIn - 100;
+ redisService.setCacheObject(SecurityConstant.WX_TOKEN, accessToken, Long.valueOf(expiresIn), TimeUnit.SECONDS);
+ }
+ }
+ //解密手机
+ String responseUserPhoneNumber = getMobileByWX(accessToken, appUserRegisterDto.getMobileCode());
+ JSONObject jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber);
+ String errcode = jsonUserPhoneNumber.getString("errcode");
+ String errmsg = jsonUserPhoneNumber.getString("errmsg");
+ if (!"0".equals(errcode)) {
+ throw new ServiceException(errmsg);
+ }
+ String phoneInfo = jsonUserPhoneNumber.getString("phone_info");
+ JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo);
+ mobile = jsonUserPhoneInfo.getString("purePhoneNumber");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if(StringUtils.isBlank(mobile)){
+ return null;
+ }
+ //判断openid是否被其他手机号占用
+ Member checkMember = memberMapper.getOneByMiniOpenid(appUserRegisterDto.getMiniOpenid());
+ if(checkMember!=null&&!checkMember.getMobile().equals(mobile)){
+ throw new ServiceException("微信号换绑手机需联系客服");
+ }
+ Member member = memberMapper.selectMemberByMobile(mobile);
+ SysUser sysUser;
+ //获取用户为空则新建
+ if(member == null){
+ //创建新用户
+ String memberId = IdUtils.simpleUUID();
+ sysUser = new SysUser();
+ sysUser.setUserName(memberId);
+ sysUser.setUserType("03");
+ sysUser.setNickName("鸿瑞堂用户");
+ sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+ String password = "hongruitang";
+ sysUser.setPassword(SecurityUtils.encryptPassword(password));
+ sysUser = sysUserService.registerUser(sysUser).getData();
+ member = new Member();
+ String memberNo = createMemberNo();
+ member.setMemberNo(memberNo);
+ member.setUserId(sysUser.getUserId());
+ member.setDelFlag(0);
+ member.setNickName("鸿瑞堂用户");
+ member.setRealName("鸿瑞堂用户");
+ member.setCustomerSource("小程序");
+ member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+ member.setMemberId(memberId);
+ member.setBindingFlag(0);
+ member.setCreateTime(DateUtils.getNowDate());
+ member.setMobile(mobile);
+ initMemberTotal(memberId);
+ }else{
+ sysUser = sysUserService.getSysUser(member.getUserId()).getData();
+ }
+ member.setWxUnionid(appUserRegisterDto.getWxUnionid());
+ member.setMiniOpenid(appUserRegisterDto.getMiniOpenid());
+ log.info("member-----------------"+member.toString());
+ this.saveOrUpdate(member);
+ appUserRegisterVo.setMobile(mobile);
+ appUserRegisterVo.setNickName(member.getNickName());
+ appUserRegisterVo.setOpenid(member.getMiniOpenid());
+ appUserRegisterVo.setUnionid(member.getWxUnionid());
+ appUserRegisterVo.setSysUser(sysUser);
+ return appUserRegisterVo;
}
public static String getAccessTokenByWX() throws Exception {
@@ -315,7 +324,7 @@
switch (editType){
case 1:
member.setNickName(editValue);
- member.setUpdateTime(new Date());
+ member.setUpdateTime(DateUtils.getNowDate());
member.setUpdateUserId(appEditUserDto.getUserId());
this.saveOrUpdate(member);
break;
@@ -323,13 +332,13 @@
break;
case 3:
member.setGender(Integer.valueOf(editValue));
- member.setUpdateTime(new Date());
+ member.setUpdateTime(DateUtils.getNowDate());
member.setUpdateUserId(appEditUserDto.getUserId());
this.saveOrUpdate(member);
break;
case 4:
member.setBirthday(editValue);
- member.setUpdateTime(new Date());
+ member.setUpdateTime(DateUtils.getNowDate());
member.setUpdateUserId(appEditUserDto.getUserId());
this.saveOrUpdate(member);
break;
@@ -394,6 +403,7 @@
Member member = this.getByUserId(appMemberBindingDto.getUserId());
member.setBindingFlag(appMemberBindingDto.getBindingFlag());
member.setRelationShopId(appMemberBindingDto.getShopId());
+ member.setRelationShopName(appMemberBindingDto.getShopName());
this.saveOrUpdate(member);
}
@@ -481,8 +491,9 @@
}
SysUser sysUser = sysUserService.getSysUserByMobile(phonenumber).getData();
if(sysUser==null){
+ String memberId = IdUtils.simpleUUID();
sysUser = new SysUser();
- sysUser.setUserName(phonenumber);
+ sysUser.setUserName(memberId);
sysUser.setUserType("03");
sysUser.setNickName(merMemberAddDto.getNickName());
sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
@@ -490,27 +501,32 @@
sysUser.setPassword(SecurityUtils.encryptPassword(password));
log.debug("sysUser"+sysUser.toString());
sysUser = sysUserService.registerUser(sysUser).getData();
+ Member member = new Member();
+ String memberNo = createMemberNo();
+ member.setMemberNo(memberNo);
+ member.setMemberId(memberId);
+ member.setUserId(sysUser.getUserId());
+ member.setDelFlag(0);
+ member.setNickName(merMemberAddDto.getNickName());
+ member.setRealName(merMemberAddDto.getNickName());
+ member.setGender(merMemberAddDto.getGender());
+ member.setMobile(phonenumber);
+ member.setReferrer(merMemberAddDto.getReferrer());
+ member.setBirthday(merMemberAddDto.getBirthday());
+ member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+ member.setRelationShopId(merMemberAddDto.getShopId());
+ member.setWxUnionid(null);
+ member.setMiniOpenid(null);
+ member.setBindingFlag(1);
+ member.setRelationShopId(merMemberAddDto.getShopId());
+ member.setCustomerSource("商户添加");
+ member.setCreateTime(DateUtils.getNowDate());
+ log.info("member-----------------"+member.toString());
+ this.saveOrUpdate(member);
+ initMemberTotal(memberId);
}
- log.info("sysUser1-----------------"+sysUser.toString());
- String memberId = IdUtils.simpleUUID();
- Member member = new Member();
- member.setUserId(sysUser.getUserId());
- member.setDelFlag(0);
- member.setNickName(merMemberAddDto.getNickName());
- member.setGender(merMemberAddDto.getGender());
- member.setMobile(phonenumber);
- member.setReferrer(merMemberAddDto.getReferrer());
- member.setBirthday(merMemberAddDto.getBirthday());
- member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
- member.setMemberId(memberId);
- member.setRelationShopId(1L);
- member.setWxUnionid(null);
- member.setMiniOpenid(null);
- member.setBindingFlag(1);
- member.setRelationShopId(merMemberAddDto.getShopId());
- member.setCreateTime(new Date());
- log.info("member-----------------"+member.toString());
- this.saveOrUpdate(member);
+
+
}
/**
@@ -535,7 +551,7 @@
member.setLevel(merMemberEditDto.getLevel());
member.setBirthday(merMemberEditDto.getBirthday());
member.setUpdateUserId(merMemberEditDto.getUserId());
- member.setUpdateTime(new Date());
+ member.setUpdateTime(DateUtils.getNowDate());
log.info("member-----------------"+member.toString());
this.saveOrUpdate(member);
SysUser sysUser = new SysUser();
@@ -585,4 +601,260 @@
}
}
}
+
+
+ /**
+ * 订单创建新用户
+ * @param member
+ */
+ @Override
+ public void createNewMember(Member member){
+ String memberNo = createMemberNo();
+ member.setMemberNo(memberNo);
+ member.setDelFlag(0);
+ member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+ member.setBindingFlag(0);
+ member.setCreateTime(DateUtils.getNowDate());
+ member.setCustomerSource("商户订单添加");
+ this.saveOrUpdate(member);
+ initMemberTotal(member.getMemberId());
+ }
+
+ /**
+ * 生成会员统计
+ * @param memberId
+ * @return
+ */
+ private void initMemberTotal(String memberId){
+ MemberTotal memberTotal = new MemberTotal();
+ memberTotal.setMemberId(memberId);
+ memberTotal.setDelFlag(0);
+ memberTotal.setTotalIntegral(0);
+ memberTotal.setUsedIntegral(0);
+ memberTotal.setUseableIntegral(0);
+ memberTotal.setTotalPayMoney(new BigDecimal("0.00"));
+ memberTotal.setTotalPayCount(0);
+ memberTotal.setLastPayMoney(new BigDecimal("0.00"));
+ memberTotal.setTotalServiceCount(0);
+ memberTotal.setUsedServiceCount(0);
+ memberTotal.setUseableServiceCount(0);
+ memberTotal.setTotalActivityCount(0);
+ memberTotal.setTotalCycleOrder(0);
+ memberTotal.setToltaExperienceOrder(0);
+ memberTotal.setTotalServiceOrder(0);
+ memberTotal.setTotalGoodsOrder(0);
+ memberTotalService.saveOrUpdate(memberTotal);
+ }
+
+ /**
+ * 生成会员编号
+ * @return
+ */
+ private String createMemberNo(){
+ int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>().eq(Member::getDelFlag, 0));
+ String memberNo = CodeFactoryUtil.getMemberNo(Long.valueOf(memberTotal+1));
+ return memberNo;
+ }
+
+
+ /**
+ * 平台分页获取会员列表
+ * @param page
+ * @param merMemberPageDto
+ * @return
+ */
+ @Override
+ public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){
+ List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
+ Date nowDay = DateUtils.getNowDate();
+ //处理活跃度筛选
+ activenessList.stream()
+ .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId()))
+ .findFirst()
+ .ifPresent(activeness -> {
+ merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay, activeness.getEndDay()));
+ merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay, activeness.getStartDay()));
+ });
+ //查询获取结果列表
+ List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto);
+ //处理活跃度返回
+ if(memberPageVoList!=null&&!memberPageVoList.isEmpty()){
+ if(activenessList!=null&&!activenessList.isEmpty()){
+ //生成活跃度时间段列表
+ List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>();
+ MgtActivenessJudgeVo mgtActivenessJudgeVo;
+ for(Activeness activeness : activenessList){
+ mgtActivenessJudgeVo = new MgtActivenessJudgeVo();
+ mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(DateUtils.getNowDate(),activeness.getEndDay()));
+ mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(DateUtils.getNowDate(),activeness.getStartDay()-1));
+ mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName());
+ }
+ //活跃度赋值
+ Date lastPayTime;
+ for(MgtMemberPageVo mgtMemberPageVo : memberPageVoList){
+ lastPayTime = mgtMemberPageVo.getLastPayTime();
+ StringJoiner sj = new StringJoiner(",");
+ if(lastPayTime!=null){
+ for(MgtActivenessJudgeVo entity: mgtActivenessJudgeVoList){
+ if(lastPayTime.compareTo(entity.getStartDay())>=0&&lastPayTime.compareTo(entity.getEndDay())<=0){
+ sj.add(entity.getActivenessName());
+ }
+ }
+ if(sj.length()>0){
+ mgtMemberPageVo.setActiveness(sj.toString());
+ }
+ }
+ }
+ }
+ }
+ return memberPageVoList;
+ }
+
+
+ /**
+ * 修改会员关联商户
+ * @param mgtMemberRelEditDto
+ */
+ @Override
+ public void editMemberRelationShop(MgtMemberRelEditDto mgtMemberRelEditDto){
+ Member member = this.getByUserId(mgtMemberRelEditDto.getMemberUserId());
+ Shop shop = shopService.getShop(mgtMemberRelEditDto.getShopId()).getData();
+ member.setRelationShopId(shop.getShopId());
+ member.setRelationShopName(shop.getShopName());
+ member.setBindingFlag(1);
+ member.setUpdateTime(DateUtils.getNowDate());
+ member.setUpdateUserId(mgtMemberRelEditDto.getUserId());
+ this.saveOrUpdate(member);
+ }
+
+
+ /**
+ * 删除会员关联商户
+ * @param mgtMemberRelDelDto
+ */
+ @Override
+ public void deleteMemberRelationShop(MgtMemberRelDelDto mgtMemberRelDelDto){
+ Member member = this.getById(mgtMemberRelDelDto.getMemberUserId());
+ member.setBindingFlag(0);
+ member.setUpdateTime(DateUtils.getNowDate());
+ member.setUpdateUserId(mgtMemberRelDelDto.getUserId());
+ this.saveOrUpdate(member);
+ }
+
+ /**
+ * 修改会员积分
+ * @param mgtMemberIntEditDto
+ */
+ @Override
+ public void editMemberIntegral(MgtMemberIntEditDto mgtMemberIntEditDto){
+ MemberIntegralChangeDto memberIntegralChangeDto = new MemberIntegralChangeDto();
+ Member member = this.getByUserId(mgtMemberIntEditDto.getMemberUserId());
+ memberIntegralChangeDto.setUserId(mgtMemberIntEditDto.getMemberUserId());
+ memberIntegralChangeDto.setMemberId(member.getMemberId());
+ memberIntegralChangeDto.setChangeType(1);
+ memberIntegralChangeDto.setRecordType(3);
+ memberIntegralChangeDto.setIntegral(mgtMemberIntEditDto.getIntegral());
+ //调用积分变动
+ memberIntegralChange(memberIntegralChangeDto);
+ }
+
+
+
+ /**
+ * 会员积分变动
+ * @param memberIntegralChangeDto
+ */
+ @Override
+ public void memberIntegralChange(MemberIntegralChangeDto memberIntegralChangeDto){
+ MemberTotal memberTotal = memberTotalService.getById(memberIntegralChangeDto.getMemberId());
+ Integer recordType = memberIntegralChangeDto.getRecordType();
+ Integer changeType = memberIntegralChangeDto.getChangeType();
+ Integer integer = memberIntegralChangeDto.getIntegral();
+ Integer totalIntegral = memberTotal.getTotalIntegral();
+ Integer usedIntegral = memberTotal.getUsedIntegral();
+ Integer useableIntegral = memberTotal.getUseableIntegral();
+ //变动统计
+ if(changeType==1){
+ totalIntegral = totalIntegral + integer;
+ useableIntegral = useableIntegral + integer;
+ memberTotal.setTotalIntegral(totalIntegral);
+ memberTotal.setUseableIntegral(useableIntegral);
+ }else if(changeType==2){
+ usedIntegral = usedIntegral + integer;
+ useableIntegral = useableIntegral - integer;
+ if(useableIntegral<0){
+ throw new ServiceException(AppErrorConstant.INTEGRAL_USE_FAILED);
+ }
+ memberTotal.setTotalIntegral(totalIntegral);
+ memberTotal.setUseableIntegral(useableIntegral);
+ memberTotal.setUsedIntegral(usedIntegral);
+ }
+ memberTotalService.saveOrUpdate(memberTotal);
+ //记录变动
+ IntegralRecord integralRecord = new IntegralRecord();
+ integralRecord.setDelFlag(0);
+ integralRecord.setUserId(memberIntegralChangeDto.getUserId());
+ integralRecord.setChangeType(recordType);
+ if(changeType==1){
+ integralRecord.setChangeIntegral(integer);
+ }else if(changeType==2){
+ integralRecord.setChangeIntegral( 0-integer);
+ }
+ integralRecord.setSurpIntegral(useableIntegral);
+ integralRecord.setCreateTime(DateUtils.getNowDate());
+ integralRecord.setOrderId(memberIntegralChangeDto.getOrderId());
+ integralRecord.setOrderNo(memberIntegralChangeDto.getOrderNo());
+ switch (recordType){
+ case 1:
+ integralRecord.setChangeReason("购物赠送");
+ break;
+ case 2:
+ integralRecord.setChangeReason("活动赠送");
+ break;
+ case 3:
+ integralRecord.setChangeReason("平台赠送");
+ break;
+ default:
+ break;
+ }
+ integralRecordService.saveOrUpdate(integralRecord);
+ }
+
+ /**
+ * 平台获取会员信息
+ * @param userId
+ * @return
+ */
+ @Override
+ public MgtMemberGetVo getMgtMemberInfo(Long userId){
+ MgtMemberGetVo mgtMemberGetVo = new MgtMemberGetVo();
+ Member member = this.getByUserId(userId);
+ MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
+ List<MemberArchiveVo> memberArchiveVoList = memberArchiveService.listVoByUserId(member.getUserId());
+ if(memberArchiveVoList!=null&&!memberArchiveVoList.isEmpty()){
+ //去掉未完善信息
+ memberArchiveVoList.removeIf(o -> Objects.isNull(o.getFieldValue()));
+ }
+ mgtMemberGetVo.setMemberId(member.getMemberId());
+ mgtMemberGetVo.setUserId(member.getUserId());
+ mgtMemberGetVo.setMemberNo(member.getMemberNo());
+ mgtMemberGetVo.setRealName(member.getRealName());
+ mgtMemberGetVo.setNickName(member.getNickName());
+ mgtMemberGetVo.setMobile(member.getMobile());
+ mgtMemberGetVo.setGender(member.getGender()==0 ? "男" : member.getGender()==1 ? "女" : null);
+ mgtMemberGetVo.setBirthday(member.getBirthday());
+ mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict());
+ mgtMemberGetVo.setCreateTime(member.getCreateTime());
+ mgtMemberGetVo.setLastPayTime(memberTotal.getLastPayTime());
+ mgtMemberGetVo.setGoodsType(member.getGoodsType());
+ mgtMemberGetVo.setRelationShopName(member.getRelationShopName());
+ mgtMemberGetVo.setIntegral(memberTotal.getTotalIntegral());
+ mgtMemberGetVo.setMemberFrom(member.getCustomerSource());
+ mgtMemberGetVo.setTotalActivityCount(memberTotal.getTotalActivityCount());
+ mgtMemberGetVo.setTotalPayMoney(memberTotal.getTotalPayMoney());
+ mgtMemberGetVo.setMemberRemark(null);
+ mgtMemberGetVo.setMemberArchiveVoList(memberArchiveVoList);
+ mgtMemberGetVo.setMemberTags(member.getUserTags());
+ return mgtMemberGetVo;
+ }
}
--
Gitblit v1.7.1