From 80fd41ea0dc602ac3ca33778f17fce5bc2e817b1 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 16 一月 2026 18:58:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 419 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 362 insertions(+), 57 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index afb5b60..0ee1f97 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -19,17 +19,19 @@
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 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.*;
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;
@@ -41,6 +43,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
+import io.swagger.util.Yaml;
import lombok.extern.log4j.Log4j;
import me.chanjar.weixin.common.error.WxErrorException;
import okhttp3.OkHttpClient;
@@ -64,7 +68,7 @@
import java.util.stream.Collectors;
/**
- * 鐢ㄦ埛淇℃伅琛⊿ervice瀹炵幇
+ * 瀹㈡埛淇℃伅琛⊿ervice瀹炵幇
* @author 姹熻箘韫�
* @date 2023/03/21 15:48
*/
@@ -74,6 +78,16 @@
@Autowired
private MemberMapper memberMapper;
+ @Autowired
+ private IntegralMapper integralMapper;
+ @Autowired
+ private ShopMapper shopMapper;
+ @Autowired
+ private UserActionMapper userActionMapper;
+
+
+ @Autowired
+ private SmsrecordMapper smsrecordMapper;
@Autowired
@@ -130,6 +144,109 @@
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) {
@@ -173,13 +290,15 @@
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());
@@ -235,38 +354,38 @@
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());
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenId, openId)
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .last(" limit 1"));
//鍒涘缓token
- JwtPayLoad payLoad = new JwtPayLoad(member.getId());
+ JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
String token = JwtTokenUtil.generateToken(payLoad);
AccountResponse accountResponse = new AccountResponse();
- accountResponse.setToken(token);
accountResponse.setSessionKey(session.getSessionKey());
- accountResponse.setMember(member);
+ if(Objects.nonNull(member)){
+ if(Objects.isNull(member.getRecId())){
+ member.setRecId(recId);
+ }
+ memberMapper.updateById(member);
+ member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl());
+ accountResponse.setToken(token);
+ accountResponse.setMember(member);
+ }else{
+ accountResponse.setOpenid(openId);
+ }
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);
+ JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+memberId);
String token = JwtTokenUtil.generateToken(payLoad);
AccountResponse accountResponse = new AccountResponse();
accountResponse.setToken(token);
@@ -274,9 +393,82 @@
}
+ /**
+ * 鏍规嵁openid鑾峰彇鏄惁缁戝畾浜嗗晢鎴�
+ * @param openid
+ * @param memberId
+ * @return
+ */
+ public AccountResponse shopOpenidLogin(String openid, Integer memberId){
+ Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getOpenId, openid)
+ .eq(Shop::getIsdeleted,Constants.ZERO)
+ .last("limit 1")
+ );
+ AccountResponse accountResponse = new AccountResponse();
+ accountResponse.setOpenid(openid);
+ if(Objects.nonNull(shop)){
+ if(Objects.isNull(memberId)
+ && ( Objects.isNull(shop.getMemberId())
+ || !Constants.equalsInteger(shop.getMemberId(),memberId))){
+ shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
+ .set(Shop::getMemberId,memberId)
+ .eq(Shop::getId,shop.getId())
+ );
+ }
+ JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId());
+ String token = JwtTokenUtil.generateToken(payLoad);
+ accountResponse.setToken(token);
+ }
+ return accountResponse;
+ }
+
+
+ /**
+ * 鍟嗘埛璐﹀彿瀵嗙爜鐧诲綍
+ * @param userName
+ * @param password
+ * @param openid
+ * @param memberId
+ * @return
+ */
+ public AccountResponse shopPasswordLogin(String userName,String password,String openid,String memberId){
+ if(StringUtils.isBlank(userName)
+ || StringUtils.isBlank(password)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛鍚嶆垨瀵嗙爜涓嶈兘涓虹┖");
+ }
+ Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getUsername, userName)
+ .eq(Shop::getIsdeleted,Constants.ZERO)
+ .last("limit 1")
+ );
+ if(shop==null){
+ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+ }
+ //鍔犲瘑瀵嗙爜
+ String pwd = Utils.Secure.encryptPassword(password, shop.getSalt());
+ if(!pwd.equals(shop.getPassword())){
+ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+ }
+ //鍒涘缓token
+ JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId());
+ String token = JwtTokenUtil.generateToken(payLoad);
+ AccountResponse accountResponse = new AccountResponse();
+ accountResponse.setToken(token);
+ shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
+ .set(Shop::getOpenId,openid)
+ .set(Shop::getMemberId,memberId)
+ .eq(Shop::getId,shop.getId())
+ );
+ shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
+ .set(Shop::getOpenId,null)
+ .eq(Shop::getOpenId,openid)
+ .ne(Shop::getId,shop.getId())
+ );
+ return accountResponse;
+ }
+
@Override
- public void wxPhone(WxPhoneRequest wxPhoneRequest){
+ public AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest){
try {
WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(
wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
@@ -285,49 +477,88 @@
if(Objects.isNull(phone)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈幏鍙栧埌鎵嬫満鍙�");
}
- Member member = memberMapper.selectById(wxPhoneRequest.getMemberId());
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenId, wxPhoneRequest.getOpenid())
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .last(" limit 1"));
+ 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(wxPhoneRequest.getRecId());
+ member.setOpenId(wxPhoneRequest.getOpenid());
+ }
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());
- // 姝e紡鐗堜负 "release"锛屼綋楠岀増涓� "trial"锛屽紑鍙戠増涓� "develop"銆傞粯璁ゆ槸姝e紡鐗堛��
- body.put("env_version", "release");
- // 閫忔槑锛屾牴鎹綘鐨勫満鏅嚜琛岃缃産ody鍙傛暟
- 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();
+ if(Objects.isNull(member.getId())){
+ memberMapper.insert(member);
+ member.setSharingCode(this.createShareCode(member.getId()));
+ memberMapper.updateById(member);
+ }else{
+ if(StringUtils.isBlank(member.getSharingCode())){
+ member.setSharingCode(this.createShareCode(member.getId()));
}
+ memberMapper.updateById(member);
}
- memberMapper.updateById(member);
+ JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
+ String token = JwtTokenUtil.generateToken(payLoad);
+ AccountResponse accountResponse = new AccountResponse();
+ accountResponse.setToken(token);
+ accountResponse.setMember(member);
+ return accountResponse;
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏇存柊鎵嬫満鍙峰け璐�");
}
}
+
+
+ public String createShareCode(Integer memberId){
+ //鐢熸垚鍒嗕韩鐮�
+ String accessToken = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ACCESS_TOKEN).getCode();
+ //鐢熸垚鍥剧墖涓婁紶OSS
+ Map<String,Object> body = new HashMap<>();
+ // 鍦烘櫙鐮侊紝涓庡墠绔害瀹氾紝鏈�缁堟槸闇�瑕佸墠绔В鏋�
+ body.put("scene", memberId);
+ // 姝e紡鐗堜负 "release"锛屼綋楠岀増涓� "trial"锛屽紑鍙戠増涓� "develop"銆傞粯璁ゆ槸姝e紡鐗堛��
+ body.put("env_version", "release");
+ // 閫忔槑锛屾牴鎹綘鐨勫満鏅嚜琛岃缃産ody鍙傛暟
+ 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,memberId.toString());
+ inputStream.close();
+ return fileModel.getFileUrl();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+
@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());
@@ -339,6 +570,9 @@
systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+dbMember.getImgurl());
return dbMember;
}
+
+
+
@Override
public MemberOwnDTO getMemberOwnDTO(Integer memberId) {
@@ -358,7 +592,7 @@
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());
@@ -405,6 +639,68 @@
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) {
@@ -428,7 +724,7 @@
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->{
@@ -473,7 +769,7 @@
Member member = memberMapper.selectById(memberRechargeDTO.getMemberId());
- //濡傛灉鎵i櫎閲戦澶т簬鐢ㄦ埛鎷ラ噾棰� 鍙栫敤鎴峰墿浣欓噾棰�
+ //濡傛灉鎵i櫎閲戦澶т簬瀹㈡埛鎷ラ噾棰� 鍙栧鎴峰墿浣欓噾棰�
BigDecimal integralNum = new BigDecimal(memberRechargeDTO.getNum());
if (Constants.equalsInteger(memberRechargeDTO.getIntegralType(),Constants.ONE)
&& (member.getIntegral().compareTo(integralNum) == -1)
@@ -494,4 +790,13 @@
Integer integer = integralService.dealIntegral(dealIntegralRequest);
return integer;
}
+
+
+
+
+
+
+
+
+
}
--
Gitblit v1.9.3