package com.doumee.service.business.impl;
|
|
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
|
import com.alibaba.fastjson.JSONObject;
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.config.Jwt.JwtPayLoad;
|
import com.doumee.config.Jwt.JwtTokenUtil;
|
import com.doumee.core.annotation.excel.ExcelImporter;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.oss.FileModel;
|
import com.doumee.core.oss.UploadFileService;
|
import com.doumee.core.utils.CodeVerifyUtils;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.DateUtil;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.core.wx.WxMiniConfig;
|
import com.doumee.dao.business.MemberMapper;
|
import com.doumee.dao.business.SmsrecordMapper;
|
import com.doumee.dao.business.join.MemberJoinMapper;
|
import com.doumee.dao.business.model.Areas;
|
import com.doumee.dao.business.model.Goodsorder;
|
import com.doumee.dao.business.model.Member;
|
import com.doumee.dao.business.model.Smsrecord;
|
import com.doumee.dao.system.SystemUserMapper;
|
import com.doumee.dao.system.dto.MemberRechargeDTO;
|
import com.doumee.dao.web.dto.MemberOwnDTO;
|
import com.doumee.dao.web.dto.shop.Position;
|
import com.doumee.dao.system.model.SystemUser;
|
import com.doumee.dao.web.request.DealIntegralRequest;
|
import com.doumee.dao.web.request.UpdMobileRequest;
|
import com.doumee.dao.web.request.UpdateMemberRequest;
|
import com.doumee.dao.web.request.WxPhoneRequest;
|
import com.doumee.dao.web.response.AccountResponse;
|
import com.doumee.service.business.AreasService;
|
import com.doumee.service.business.IntegralService;
|
import com.doumee.service.business.MemberService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import lombok.extern.log4j.Log4j;
|
import me.chanjar.weixin.common.error.WxErrorException;
|
import okhttp3.OkHttpClient;
|
import okhttp3.Request;
|
import okhttp3.Response;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
import org.apache.shiro.SecurityUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.ByteArrayInputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.math.BigDecimal;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* 用户信息表Service实现
|
* @author 江蹄蹄
|
* @date 2023/03/21 15:48
|
*/
|
@Service
|
@Log4j
|
public class MemberServiceImpl implements MemberService {
|
|
@Autowired
|
private MemberMapper memberMapper;
|
|
@Autowired
|
private SmsrecordMapper smsrecordMapper;
|
|
|
@Autowired
|
private MemberJoinMapper memberJoinMapper;
|
|
|
@Autowired
|
private SystemUserMapper systemUserMapper;
|
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
|
@Autowired
|
private UploadFileService uploadFileService;
|
|
@Autowired
|
private AreasService areasService;
|
|
@Autowired
|
private IntegralService integralService;
|
|
@Override
|
public Integer create(Member member) {
|
memberMapper.insert(member);
|
return member.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
memberMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(Member member) {
|
UpdateWrapper<Member> deleteWrapper = new UpdateWrapper<>(member);
|
memberMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
memberMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void updateById(Member member) {
|
if(member.getStatus()==null){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),ResponseStatus.BAD_REQUEST.getMessage());
|
}
|
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
member.setEditDate(new Date());
|
member.setEditor(user.getId());
|
memberMapper.updateById(member);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<Member> members) {
|
if (CollectionUtils.isEmpty(members)) {
|
return;
|
}
|
for (Member member: members) {
|
this.updateById(member);
|
}
|
}
|
|
@Override
|
public Member findById(Integer id) {
|
return memberMapper.selectById(id);
|
}
|
|
|
|
@Override
|
public Member findOne(Member member) {
|
QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
|
return memberMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<Member> findList(Member member) {
|
QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
|
return memberMapper.selectList(wrapper);
|
}
|
|
@Override
|
public List<Member> findList(List<Integer> memberIds) {
|
QueryWrapper<Member> wrapper = new QueryWrapper<>();
|
wrapper.lambda().in(Member::getId,memberIds);
|
return memberMapper.selectList(wrapper);
|
}
|
|
@Override
|
public PageData<Member> findPage(PageWrap<Member> pageWrap) {
|
IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
queryWrapper.selectAll(Member.class);
|
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.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());
|
|
queryWrapper.orderByDesc(Member::getCreateDate);
|
|
IPage<Member> result = memberJoinMapper.selectJoinPage(page, Member.class, queryWrapper);
|
|
String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILE).getCode();
|
|
if(org.apache.commons.collections.CollectionUtils.isNotEmpty(result.getRecords())){
|
for(Member model:result.getRecords()){
|
if(StringUtils.isNotBlank(model.getImgurl())){
|
model.setImgFullUrl(path);
|
}
|
}
|
}
|
return PageData.from(result);
|
}
|
|
|
@Override
|
public List<Member> findAll(PageWrap<Member> pageWrap) {
|
MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
queryWrapper.selectAll(Member.class);
|
queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickname()),ms->ms.like(Member::getNickname,pageWrap.getModel().getNickname())
|
.or().like(Member::getPhone,pageWrap.getModel().getNickname())
|
);
|
queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Member::getStatus,pageWrap.getModel().getStatus());
|
queryWrapper.eq(Member::getIsdeleted,Constants.ZERO);
|
queryWrapper.orderByDesc(Member::getCreateDate);
|
List<Member> result = memberJoinMapper.selectJoinList(Member.class, queryWrapper);
|
return result;
|
}
|
|
@Override
|
public long count(Member member) {
|
QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
|
return memberMapper.selectCount(wrapper);
|
}
|
|
|
/****************************************移动端接口开始********************************************************************/
|
|
|
|
@Override
|
public AccountResponse wxLogin(String code,Integer recId){
|
try {
|
//获取微信敏感数据
|
WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
|
String openId = session.getOpenid();
|
if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"获取openid失败!请联系管理员");
|
}
|
Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPEN_ID", openId));
|
if (member == null) {
|
member = new Member();
|
member.setImgurl("20230410/4010b821-2137-4e6d-86e4-5ab9c06184a4.png");
|
member.setNickname("微信用户"+ CodeVerifyUtils.createVerificationCode(4));
|
member.setCreateDate(new Date());
|
member.setIsdeleted(Constants.ZERO);
|
member.setType(Constants.ZERO);
|
member.setOrigin(Constants.ZERO);
|
member.setRecId(recId);
|
member.setOpenId(openId);
|
memberMapper.insert(member);
|
}
|
member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
|
systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl());
|
//创建token
|
JwtPayLoad payLoad = new JwtPayLoad(member.getId());
|
String token = JwtTokenUtil.generateToken(payLoad);
|
AccountResponse accountResponse = new AccountResponse();
|
accountResponse.setToken(token);
|
accountResponse.setSessionKey(session.getSessionKey());
|
accountResponse.setMember(member);
|
return accountResponse;
|
} catch (WxErrorException e) {
|
e.printStackTrace();
|
}
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员");
|
}
|
@Override
|
public AccountResponse wxLoginTest( Integer memberId){
|
//创建token
|
JwtPayLoad payLoad = new JwtPayLoad(memberId);
|
String token = JwtTokenUtil.generateToken(payLoad);
|
AccountResponse accountResponse = new AccountResponse();
|
accountResponse.setToken(token);
|
return accountResponse;
|
}
|
|
|
|
@Override
|
public void wxPhone(WxPhoneRequest wxPhoneRequest){
|
try {
|
WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(
|
wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
|
//获取手机号
|
String phone= userPhoneInfo.getPurePhoneNumber();
|
if(Objects.isNull(phone)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未获取到手机号");
|
}
|
Member member = memberMapper.selectById(wxPhoneRequest.getMemberId());
|
member.setPhone(phone);
|
member.setEditDate(new Date());
|
member.setEditor(wxPhoneRequest.getMemberId());
|
member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
|
systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl());
|
//生成分享码
|
String accessToken = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ACCESS_TOKEN).getCode();
|
if(StringUtils.isBlank(member.getSharingCode())){
|
//生成图片上传OSS
|
Map<String,Object> body = new HashMap<>();
|
// 场景码,与前端约定,最终是需要前端解析
|
body.put("scene", member.getId());
|
// 正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
|
body.put("env_version", "release");
|
// 透明,根据你的场景自行设置body参数
|
body.put("is_hyaline", true);
|
OkHttpClient client = new OkHttpClient().newBuilder().build();
|
okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/json");
|
okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(mediaType, JSONObject.toJSONString(body));
|
Request request = new Request.Builder().url("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken)
|
.method("POST", requestBody).build();
|
try {
|
Response response = client.newCall(request).execute();
|
if (response.isSuccessful()) {
|
InputStream inputStream = new ByteArrayInputStream(response.body().bytes());
|
FileModel fileModel = uploadFileService.uploadWxCode(inputStream,member.getId().toString());
|
member.setSharingCode(fileModel.getFileUrl());
|
inputStream.close();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
memberMapper.updateById(member);
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"更新手机号失败");
|
}
|
}
|
|
@Override
|
public Member updateMember(UpdateMemberRequest updateMemberRequest){
|
if(StringUtils.isBlank(updateMemberRequest.getImgurl())
|
&& StringUtils.isBlank(updateMemberRequest.getNickname())
|
&& StringUtils.isBlank(updateMemberRequest.getName())
|
){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
Member member = new Member();
|
BeanUtils.copyProperties(updateMemberRequest,member);
|
member.setId(updateMemberRequest.getMemberId());
|
member.setEditor(updateMemberRequest.getMemberId());
|
member.setEditDate(new Date());
|
memberMapper.updateById(member);
|
Member dbMember = memberMapper.selectById(updateMemberRequest.getMemberId());
|
dbMember.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
|
systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+dbMember.getImgurl());
|
return dbMember;
|
}
|
|
|
|
|
@Override
|
public MemberOwnDTO getMemberOwnDTO(Integer memberId) {
|
|
Member member = memberMapper.selectById(memberId);
|
MemberOwnDTO memberOwnDTO = new MemberOwnDTO();
|
BeanUtils.copyProperties(member,memberOwnDTO);
|
return memberOwnDTO;
|
}
|
|
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
|
@Override
|
public void updateMemberOwnDTO(MemberOwnDTO memberOwnDTO) {
|
|
|
LoginUserInfo userInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
|
|
Integer mId = Optional.ofNullable(userInfo)
|
.map(s -> s.getMemberId())
|
.orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "用户ID缺失"));
|
Member member = new Member();
|
member.setId(mId);
|
member.setEditor(userInfo.getId());
|
member.setEditDate(new Date());
|
|
member.setNickname(memberOwnDTO.getNickname());
|
member.setImgurl(memberOwnDTO.getImgurl());
|
member.setBirthday(memberOwnDTO.getBirthday());
|
member.setName(memberOwnDTO.getName());
|
member.setPhone(memberOwnDTO.getPhone());
|
member.setSex(memberOwnDTO.getSex());
|
memberMapper.updateById(member);
|
|
UpdateWrapper<SystemUser> wrapper = new UpdateWrapper<>();
|
wrapper.lambda().eq(SystemUser::getMemberId,mId);
|
SystemUser systemUser = new SystemUser();
|
systemUser.setRealname(memberOwnDTO.getName());
|
systemUser.setBirthday(memberOwnDTO.getBirthday());
|
systemUser.setSex(String.valueOf(memberOwnDTO.getSex()));
|
systemUser.setUpdateTime(new Date());
|
systemUser.setUpdateUser(userInfo.getId());
|
systemUserMapper.update(systemUser,wrapper);
|
}
|
|
@Override
|
public Areas getMemberAreas(Position position, Integer memberId) {
|
|
Areas area = areasService.getAreasByPosition(position);
|
UpdateWrapper<Member> wrapper = new UpdateWrapper<>();
|
wrapper.lambda().eq(Member::getId,memberId);
|
Member member = new Member();
|
member.setLongitude(position.getLongitude());
|
member.setLatitude(position.getLatitude());
|
member.setCityId(area.getCityId());
|
memberMapper.update(member,wrapper);
|
return area;
|
}
|
|
@Override
|
public void updateMemberCity(Integer cityId, Integer memberId) {
|
Member member = new Member();
|
member.setId(memberId);
|
member.setCityId(cityId);
|
memberMapper.updateById(member);
|
}
|
|
@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.getPhone())&&!member.getPhone().equals(request.getPhone())){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"手机号错误");
|
}
|
this.verifyPhoneCode(request.getCode(),request.getMemberId());
|
}
|
|
public void verifyPhoneCode(String code,Integer memberId){
|
//验证码
|
Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda()
|
.eq(Smsrecord::getIsdeleted,Constants.ZERO)
|
.eq(Smsrecord::getCode,code)
|
.eq(Smsrecord::getMemberId,memberId)
|
.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);
|
}
|
Member member = memberMapper.selectById(request.getMemberId());
|
if(StringUtils.isNotBlank(member.getPhone())&&member.getPhone().equals(request.getPhone())){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"无法更换相同手机号");
|
}
|
this.verifyPhoneCode(request.getCode(),request.getMemberId());
|
memberMapper.update(new UpdateWrapper<Member>().lambda()
|
.eq(Member::getPhone,request.getPhone())
|
.eq(Member::getId,request.getMemberId())
|
);
|
}
|
|
|
|
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
|
@Override
|
public Integer importMemberRechargeBatch(MultipartFile file) {
|
|
try {
|
ExcelImporter ie = new ExcelImporter(file,0,0);
|
List<MemberRechargeDTO> dataList = ie.getDataList(MemberRechargeDTO.class, null);
|
|
if(dataList == null || dataList.size() ==0){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
|
}
|
List<String> phoneNums = dataList.stream().map(s -> s.getPhone()).distinct().collect(Collectors.toList());
|
if ( dataList.size() != phoneNums.size()){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"手机号码有重复");
|
}
|
|
QueryWrapper<Member> wrapper = new QueryWrapper<>();
|
wrapper.lambda().in(Member::getPhone,phoneNums);
|
List<Member> members = memberMapper.selectList(wrapper);
|
|
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()+"不存在该手机号码用户");
|
}
|
Map<String, MemberRechargeDTO> collect = dataList.stream().collect(Collectors.toMap(s -> s.getPhone(), s -> s));
|
members.forEach(s->{
|
|
MemberRechargeDTO memberRechargeDTO = collect.get(s.getPhone());
|
if (Objects.isNull(memberRechargeDTO.getIntegralType())
|
|| (memberRechargeDTO.getIntegralType() > Constants.ONE)
|
|| (memberRechargeDTO.getIntegralType() < Constants.ZERO)){
|
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"调整类型不符合规范");
|
}
|
|
BigDecimal integralNum = new BigDecimal(memberRechargeDTO.getNum());
|
if (Constants.equalsInteger(memberRechargeDTO.getIntegralType(),Constants.ONE)
|
&& (s.getIntegral().compareTo(integralNum) == -1)
|
){
|
integralNum = s.getIntegral();
|
}
|
|
Constants.IntegralObjType integralObjType = Constants.equalsInteger(memberRechargeDTO.getIntegralType(),Constants.ONE) ?
|
Constants.IntegralObjType.SYSTEM_DEDUCT : Constants.IntegralObjType.SYSTEM_RECHARGE;
|
DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
|
dealIntegralRequest.setIntegralObjType(integralObjType);
|
dealIntegralRequest.setIntegralNum(integralNum);
|
dealIntegralRequest.setMemberId(s.getId());
|
dealIntegralRequest.setObjId(s.getId());
|
dealIntegralRequest.setOrderCode(null);
|
dealIntegralRequest.setDealType(memberRechargeDTO.getIntegralType());
|
integralService.dealIntegral(dealIntegralRequest);
|
});
|
// integralService.dealIntegral()
|
} catch (Exception e) {
|
log.error(String.format("批量插入异常%s ",e.getMessage()));
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),e.getMessage());
|
}
|
|
return null;
|
}
|
|
@Override
|
public Integer changeMemberRechargeBatch(MemberRechargeDTO memberRechargeDTO) {
|
|
Member member = memberMapper.selectById(memberRechargeDTO.getMemberId());
|
|
//如果扣除金额大于用户拥金额 取用户剩余金额
|
BigDecimal integralNum = new BigDecimal(memberRechargeDTO.getNum());
|
if (Constants.equalsInteger(memberRechargeDTO.getIntegralType(),Constants.ONE)
|
&& (member.getIntegral().compareTo(integralNum) == -1)
|
){
|
integralNum = member.getIntegral();
|
}
|
|
Constants.IntegralObjType integralObjType = Constants.equalsInteger(memberRechargeDTO.getIntegralType(),Constants.ONE) ?
|
Constants.IntegralObjType.SYSTEM_DEDUCT : Constants.IntegralObjType.SYSTEM_RECHARGE;
|
|
DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
|
dealIntegralRequest.setIntegralObjType(integralObjType);
|
dealIntegralRequest.setIntegralNum(integralNum);
|
dealIntegralRequest.setMemberId(memberRechargeDTO.getMemberId());
|
dealIntegralRequest.setObjId(memberRechargeDTO.getMemberId());
|
dealIntegralRequest.setOrderCode(null);
|
dealIntegralRequest.setDealType(memberRechargeDTO.getIntegralType());
|
Integer integer = integralService.dealIntegral(dealIntegralRequest);
|
return integer;
|
}
|
}
|