| | |
| | | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | 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.member.domain.pojo.member.MemberTotal; |
| | | import com.ruoyi.member.domain.vo.*; |
| | | import com.ruoyi.member.mapper.member.MemberMapper; |
| | | import com.ruoyi.member.service.member.*; |
| | | import com.ruoyi.member.service.member.IntegralRecordService; |
| | | import com.ruoyi.member.service.member.MemberArchiveService; |
| | | import com.ruoyi.member.service.member.MemberService; |
| | | import com.ruoyi.member.service.member.MemberTotalService; |
| | | import com.ruoyi.member.util.HttpUtils; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.constant.SecurityConstant; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | |
| | | String errcode = jsonUserPhoneNumber.getString("errcode"); |
| | | String errmsg = jsonUserPhoneNumber.getString("errmsg"); |
| | | if (!"0".equals(errcode)) { |
| | | throw new ServiceException(errmsg); |
| | | //因为生产测试差异,临时更新token |
| | | redisService.deleteObject(SecurityConstant.WX_TOKEN); |
| | | String responseAccessToken = getAccessTokenByWX(); |
| | | JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken); |
| | | accessToken = jsonAccessToken.getString("access_token"); |
| | | 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); |
| | | } |
| | | responseUserPhoneNumber = getMobileByWX(accessToken, appUserRegisterDto.getMobileCode()); |
| | | jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber); |
| | | errcode = jsonUserPhoneNumber.getString("errcode"); |
| | | errmsg = jsonUserPhoneNumber.getString("errmsg"); |
| | | if (!"0".equals(errcode)) { |
| | | throw new ServiceException(errmsg); |
| | | } |
| | | } |
| | | String phoneInfo = jsonUserPhoneNumber.getString("phone_info"); |
| | | JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo); |
| | |
| | | sysUser.setUserName(memberId); |
| | | sysUser.setUserType("03"); |
| | | sysUser.setNickName("鸿瑞堂用户"); |
| | | sysUser.setPhonenumber(mobile); |
| | | sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); |
| | | String password = "hongruitang"; |
| | | sysUser.setPassword(SecurityUtils.encryptPassword(password)); |
| | |
| | | member.setMemberNo(memberNo); |
| | | member.setUserId(sysUser.getUserId()); |
| | | member.setDelFlag(0); |
| | | member.setFrozenFlag(0); |
| | | member.setNickName("鸿瑞堂用户"); |
| | | member.setRealName("鸿瑞堂用户"); |
| | | member.setCustomerSource("小程序"); |
| | |
| | | member.setMemberId(memberId); |
| | | member.setUserId(sysUser.getUserId()); |
| | | member.setDelFlag(0); |
| | | member.setFrozenFlag(0); |
| | | member.setNickName(merMemberAddDto.getNickName()); |
| | | member.setRealName(merMemberAddDto.getNickName()); |
| | | member.setGender(merMemberAddDto.getGender()); |
| | |
| | | */ |
| | | @Override |
| | | public void updateMemberGoodsType(AppMemberGoodsTypeDto appMemberGoodsTypeDto) { |
| | | // 根据用户ID获取会员信息 |
| | | Member member = this.getByUserId(appMemberGoodsTypeDto.getUserId()); |
| | | // 获取商品类型集合和商品护理集合 |
| | | HashSet<String> goodsTypeSet = appMemberGoodsTypeDto.getGoodsTypeSet(); |
| | | HashSet<String> goodsNurseSet = appMemberGoodsTypeDto.getGoodsNurseSet(); |
| | | // 如果会员存在 |
| | | if (member != null) { |
| | | String goodsType = member.getGoodsType(); |
| | | // 标识是否有变化 |
| | | Boolean change = false; |
| | | for (String str : goodsTypeSet) { |
| | | if (goodsType != null) { |
| | | if (!goodsType.contains(str)) { |
| | | goodsType = goodsType + "," + str; |
| | | // 更新商品类型 |
| | | if (goodsTypeSet != null && goodsTypeSet.size() > 0) { |
| | | String goodsType = member.getGoodsType(); |
| | | HashSet<String> goodsTypeOldSet = new HashSet<>(); |
| | | // 如果商品类型不为空 |
| | | if (StringUtils.isNotBlank(goodsType)) { |
| | | goodsTypeOldSet = new HashSet<>(Arrays.asList(goodsType.split(","))); |
| | | // 如果商品类型集合相等 |
| | | if (!goodsTypeSet.equals(goodsTypeOldSet)) { |
| | | change = true; |
| | | } |
| | | } else { |
| | | goodsType = str; |
| | | change = true; |
| | | } |
| | | goodsTypeOldSet.addAll(goodsTypeSet); |
| | | member.setGoodsType(String.join(",", goodsTypeOldSet)); |
| | | } |
| | | // 更新商品护理 |
| | | if (goodsNurseSet != null && goodsNurseSet.size() > 0) { |
| | | String memberNurse = member.getMemberNurse(); |
| | | HashSet<String> memberNurseOldSet = new HashSet<>(); |
| | | // 如果会员护理不为空 |
| | | if (StringUtils.isNotBlank(memberNurse)) { |
| | | memberNurseOldSet = new HashSet<>(Arrays.asList(memberNurse.split(","))); |
| | | // 如果商品护理集合相等 |
| | | if (!goodsNurseSet.equals(memberNurseOldSet)) { |
| | | change = true; |
| | | } |
| | | } else { |
| | | change = true; |
| | | } |
| | | memberNurseOldSet.addAll(goodsNurseSet); |
| | | member.setMemberNurse(String.join(",", memberNurseOldSet)); |
| | | } |
| | | // 如果有变化,则保存或更新会员信息 |
| | | if (change) { |
| | | member.setGoodsType(goodsType); |
| | | this.saveOrUpdate(member); |
| | | } |
| | | } |
| | |
| | | String memberNo = createMemberNo(); |
| | | member.setMemberNo(memberNo); |
| | | member.setDelFlag(0); |
| | | member.setFrozenFlag(0); |
| | | member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); |
| | | member.setBindingFlag(0); |
| | | member.setCreateTime(new Date()); |
| | | member.setCustomerSource("商户订单添加"); |
| | | this.saveOrUpdate(member); |
| | |
| | | if (StringUtils.isNotBlank(merMemberPageDto.getMemberTags())) { |
| | | merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",", "|")); |
| | | } |
| | | //处理生日 |
| | | if(merMemberPageDto.getStartAge()!=null){ |
| | | LocalDate currentDate = LocalDate.now(); |
| | | LocalDate endBirthday = currentDate.minusYears(merMemberPageDto.getStartAge()); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | merMemberPageDto.setEndBirthday(endBirthday.format(formatter)); |
| | | } |
| | | if(merMemberPageDto.getEndAge()!=null){ |
| | | LocalDate currentDate = LocalDate.now(); |
| | | LocalDate startBirthday = currentDate.minusYears(merMemberPageDto.getEndAge()); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | merMemberPageDto.setStartBirthday(startBirthday.format(formatter)); |
| | | } |
| | | //查询获取结果列表 |
| | | List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); |
| | | //处理活跃度返回 |
| | |
| | | member.setUpdateTime(new Date()); |
| | | member.setUpdateUserId(mgtMemberRelEditDto.getUserId()); |
| | | this.saveOrUpdate(member); |
| | | memberMapper.updateById(member); |
| | | } |
| | | } |
| | | } |
| | |
| | | mgtMemberGetVo.setNickName(member.getNickName()); |
| | | mgtMemberGetVo.setAvatar(member.getAvatar()); |
| | | mgtMemberGetVo.setMobile(member.getMobile()); |
| | | mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null); |
| | | if(member.getGender()!=null){ |
| | | if (member.getGender() == 0) { |
| | | mgtMemberGetVo.setGender("男"); |
| | | } else if (member.getGender() == 1) { |
| | | mgtMemberGetVo.setGender("女"); |
| | | } |
| | | }else { |
| | | mgtMemberGetVo.setGender("未知"); |
| | | } |
| | | mgtMemberGetVo.setBirthday(member.getBirthday()); |
| | | mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict()); |
| | | mgtMemberGetVo.setCreateTime(member.getCreateTime()); |
| | |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/7/5 21:18 |
| | | * @param mgtBaseGetDto |
| | | * @param mgtFrozenMemberDto |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){ |
| | | sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId())); |
| | | public void mgtFrozenMember(MgtFrozenMemberDto mgtFrozenMemberDto){ |
| | | Long userId = mgtFrozenMemberDto.getId(); |
| | | Member member = this.getByUserId(userId); |
| | | member.setFrozenFlag(mgtFrozenMemberDto.getFrozenFlag()); |
| | | this.saveOrUpdate(member); |
| | | sysUserService.frozenUser(mgtFrozenMemberDto); |
| | | } |
| | | |
| | | /** |
| | |
| | | case 1: |
| | | changeIntegral = appOtherConfigGetVo.getShareIntegral(); |
| | | integralRecord.setChangeIntegral(changeIntegral); |
| | | integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); |
| | | integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | | integralRecord.setChangeReason("每日任务【分享小程序】获得积分"); |
| | | memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); |
| | | memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | |
| | | case 2: |
| | | changeIntegral = appOtherConfigGetVo.getSuggestPlatformIntegral(); |
| | | integralRecord.setChangeIntegral(changeIntegral); |
| | | integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); |
| | | integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | | integralRecord.setChangeReason("每日任务【提交平台建议】获得积分"); |
| | | memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); |
| | | memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | |
| | | case 3: |
| | | changeIntegral = appOtherConfigGetVo.getSuggestShopIntegral(); |
| | | integralRecord.setChangeIntegral(changeIntegral); |
| | | integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); |
| | | integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | | integralRecord.setChangeReason("每日任务【提交门店建议】获得积分"); |
| | | memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); |
| | | memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | |
| | | case 4: |
| | | changeIntegral = appOtherConfigGetVo.getSignInIntegral(); |
| | | integralRecord.setChangeIntegral(changeIntegral); |
| | | integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); |
| | | integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | | integralRecord.setChangeReason("每日任务【签到】获得积分"); |
| | | memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); |
| | | memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | |
| | | break; |
| | | case 5: |
| | | integralRecord.setChangeIntegral(changeIntegral); |
| | | integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); |
| | | integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); |
| | | integralRecord.setChangeReason("订单【"+integralChangeDto.getOrderNo()+"】获得积分"); |
| | | integralRecord.setOrderId(integralChangeDto.getOrderId()); |
| | | integralRecord.setOrderNo(integralChangeDto.getOrderNo()); |
| | |
| | | public Integer getAreaNewMember(List<Long> shopIdList){ |
| | | return memberMapper.getAreaNewMember(shopIdList); |
| | | } |
| | | |
| | | /** |
| | | * @description 更新会员绑定商户名 |
| | | * @author jqs |
| | | * @date 2023/7/26 17:08 |
| | | * @param mgtMemberShopNameDto |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void updateMemberShopName(MgtMemberShopNameDto mgtMemberShopNameDto){ |
| | | LambdaUpdateWrapper<Member> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(Member::getRelationShopId,mgtMemberShopNameDto.getShopId()); |
| | | updateWrapper.set(Member::getRelationShopName,mgtMemberShopNameDto.getShopName()); |
| | | this.update(updateWrapper); |
| | | } |
| | | } |