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 | 122 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 116 insertions(+), 6 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 f3e00a0..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,6 +19,7 @@
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;
@@ -67,7 +68,7 @@
import java.util.stream.Collectors;
/**
- * 鐢ㄦ埛淇℃伅琛⊿ervice瀹炵幇
+ * 瀹㈡埛淇℃伅琛⊿ervice瀹炵幇
* @author 姹熻箘韫�
* @date 2023/03/21 15:48
*/
@@ -77,9 +78,13 @@
@Autowired
private MemberMapper memberMapper;
-
+ @Autowired
+ private IntegralMapper integralMapper;
@Autowired
private ShopMapper shopMapper;
+ @Autowired
+ private UserActionMapper userActionMapper;
+
@Autowired
private SmsrecordMapper smsrecordMapper;
@@ -139,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) {
@@ -182,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());
@@ -482,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());
@@ -614,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->{
@@ -659,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)
--
Gitblit v1.9.3