| | |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.ShopMapper; |
| | | import com.doumee.dao.business.SmsrecordMapper; |
| | |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 用户信息表Service实现 |
| | | * 客户信息表Service实现 |
| | | * @author 江蹄蹄 |
| | | * @date 2023/03/21 15:48 |
| | | */ |
| | |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private IntegralMapper integralMapper; |
| | | @Autowired |
| | | private ShopMapper shopMapper; |
| | | @Autowired |
| | | private UserActionMapper userActionMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private SmsrecordMapper smsrecordMapper; |
| | |
| | | member.setEditor(user.getId()); |
| | | memberMapper.updateById(member); |
| | | } |
| | | @Override |
| | | @Transactional |
| | | public void updateShop(Member member) { |
| | | if(member.getBindShopId()==null || member.getId()==null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Member.class); |
| | | queryWrapper.selectAs(Shop::getName,Member::getShopName); |
| | | queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId); |
| | | queryWrapper.eq(Member::getId,member.getId()); |
| | | Member model = memberMapper.selectJoinOne(Member.class,queryWrapper); |
| | | if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"客户信息查询无效!"); |
| | | } |
| | | if(model.getBindShopId() == null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"客户尚未绑定经销商信息,无法更换!"); |
| | | } |
| | | if(Constants.equalsInteger(model.getBindShopId() ,member.getBindShopId())){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"请选择新的经销商!"); |
| | | } |
| | | |
| | | Shop shop = shopMapper.selectById(member.getBindShopId()); |
| | | if(shop == null ||Constants.equalsObject(shop.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"经销商信息查询无效!"); |
| | | } |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | Date date = new Date(); |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .eq(Member::getId,member.getId()) |
| | | .set(Member::getEditDate,date) |
| | | .set(Member::getEditor,user.getId()) |
| | | .set(Member::getBindShopId,member.getBindShopId()) |
| | | ); |
| | | //更换日志记录 |
| | | UserActionServiceImpl.saveUserActionBiz(user,member.getId(), |
| | | Constants.UserActionType.CHANGE_SHOP, |
| | | userActionMapper, |
| | | date, |
| | | new String[]{user.getUsername(),DateUtil.getPlusTime2(date)}, |
| | | JSONObject.toJSONString(member) , |
| | | model.getShopName(), shop.getName()); |
| | | } |
| | | @Override |
| | | @Transactional |
| | | public void updateIntegral(Integral param) { |
| | | if(param.getMemberId()==null || param.getType()==null |
| | | || param.getType()<0 |
| | | || param.getType()>2 |
| | | || Constants.formatBigdecimal(param.getNum()).compareTo(new BigDecimal(0))<=0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | |
| | | MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Member.class); |
| | | queryWrapper.selectAs(Shop::getName,Member::getShopName); |
| | | queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId); |
| | | queryWrapper.eq(Member::getId,param.getMemberId()); |
| | | Member model = memberMapper.selectJoinOne(Member.class,queryWrapper); |
| | | if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"客户信息查询无效!"); |
| | | } |
| | | |
| | | BigDecimal num = param.getNum(); |
| | | if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){ |
| | | //如果是减少,判断用户余额是否满足 |
| | | num = num.multiply(new BigDecimal(-1));//减少 |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户账户余额不足!"); |
| | | } |
| | | |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | Date date = new Date(); |
| | | //账户余额 |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .eq(Member::getId,model.getId()) |
| | | .set(Member::getEditDate,date) |
| | | .set(Member::getEditor,user.getId()) |
| | | .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加 |
| | | .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum()) |
| | | .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum())); |
| | | |
| | | Constants.IntegralObjType integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT; |
| | | |
| | | Integral integral = new Integral(); |
| | | integral.setMemberId(model.getId()); |
| | | integral.setCreateDate(new Date()); |
| | | integral.setCreator(user.getId()); |
| | | integral.setIsdeleted(Constants.ZERO); |
| | | integral.setTitle(integralObjType.getName()); |
| | | integral.setContent(integralObjType.getNoteinfo()); |
| | | integral.setObjId(model.getId()); |
| | | integral.setObjType(integralObjType.getKey()); |
| | | integral.setType(param.getType()); |
| | | integral.setRemark(param.getRemark()); |
| | | integral.setNum(param.getNum()); |
| | | integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum())); |
| | | integral.setOrderCode(null); |
| | | integral.setUserType(Constants.ZERO); |
| | | integralMapper.insert(integral); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<Member> members) { |
| | |
| | | MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.selectAll(Member.class); |
| | | queryWrapper.selectAs(Shop::getName,Member::getShopName); |
| | | queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId); |
| | | queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickname()),ms->ms.like(Member::getNickname,pageWrap.getModel().getNickname()) |
| | | .or().like(Member::getName,pageWrap.getModel().getNickname()) |
| | | .or().like(Member::getPhone,pageWrap.getModel().getNickname()) |
| | | ); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getShopName()),Shop::getStatus,pageWrap.getModel().getShopName()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Member::getStatus,pageWrap.getModel().getStatus()); |
| | | queryWrapper.eq(Member::getIsdeleted,Constants.ZERO); |
| | | |
| | | queryWrapper.ge(pageWrap.getModel().getStarttime()!=null, Member::getCreateDate,pageWrap.getModel().getStarttime()); |
| | | queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Member::getCreateDate, pageWrap.getModel().getEndtime()); |
| | | |
| | |
| | | |
| | | Integer mId = Optional.ofNullable(userInfo) |
| | | .map(s -> s.getMemberId()) |
| | | .orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "用户ID缺失")); |
| | | .orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "客户ID缺失")); |
| | | Member member = new Member(); |
| | | member.setId(mId); |
| | | member.setEditor(userInfo.getId()); |
| | |
| | | if(phoneNums.size() != members.size()){ |
| | | List<String> collect = members.stream().map(s -> s.getPhone()).collect(Collectors.toList()); |
| | | List<String> unFindMember = phoneNums.stream().filter(s -> !collect.contains(s)).collect(Collectors.toList()); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),unFindMember.toString()+"不存在该手机号码用户"); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),unFindMember.toString()+"不存在该手机号码客户"); |
| | | } |
| | | Map<String, MemberRechargeDTO> collect = dataList.stream().collect(Collectors.toMap(s -> s.getPhone(), s -> s)); |
| | | members.forEach(s->{ |
| | |
| | | |
| | | Member member = memberMapper.selectById(memberRechargeDTO.getMemberId()); |
| | | |
| | | //如果扣除金额大于用户拥金额 取用户剩余金额 |
| | | //如果扣除金额大于客户拥金额 取客户剩余金额 |
| | | BigDecimal integralNum = new BigDecimal(memberRechargeDTO.getNum()); |
| | | if (Constants.equalsInteger(memberRechargeDTO.getIntegralType(),Constants.ONE) |
| | | && (member.getIntegral().compareTo(integralNum) == -1) |