From 804cbcc655008f480e730c869089a1acf620e0d5 Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Mon, 7 Oct 2024 16:55:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppDiningPlatesController.java | 4 +- .../dal/mysql/group/MemberGroupMapper.java | 5 ++ .../diningplates/DiningPlatesService.java | 2 +- .../diningplates/DiningPlatesServiceImpl.java | 15 ++++-- .../service/order/OrderServiceImpl.java | 49 +++++++++++++++---- .../mapper/group/MemberGroupMapper.xml | 4 ++ .../service/devuce/DevuceServiceImpl.java | 1 + 7 files changed, 63 insertions(+), 17 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java index f165d488..27562b9b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java @@ -56,8 +56,8 @@ public class AppDiningPlatesController { @GetMapping("/bindByFace") @Operation(summary = "人脸绑定餐盘") - public CommonResult bindByFace(String diningPlatesNum, Long faceId,Long storeId) { - return success(diningPlatesService.bindByFace(diningPlatesNum,faceId,storeId)); + public CommonResult bindByFace(String diningPlatesNum, Long faceId,Long storeId,String mobile) { + return success(diningPlatesService.bindByFace(diningPlatesNum,faceId,storeId,mobile)); } @GetMapping("/checkBind") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java index 2be23974..eceec0ad 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java @@ -8,10 +8,12 @@ import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageV import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUserVo; import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 用户分组 Mapper @@ -48,5 +50,8 @@ public interface MemberGroupMapper extends BaseMapperX { String getGroupName(Long userId); + @MapKey("memberId") + Map selectAllUserGroupName(); + List getGroupList(List list); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java index 3504883c..9548acef 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java @@ -86,7 +86,7 @@ public interface DiningPlatesService { */ AppUserInfoCardVO bind(String diningPlatesNum,String cardId,Long storeId); - AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId,Long storeId); + AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId, Long storeId,String mobile); Boolean checkBind(String diningPlatesNum,Long storeId); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java index bc216e28..f200c936 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java @@ -216,15 +216,22 @@ public class DiningPlatesServiceImpl implements DiningPlatesService { @Override @Transactional(rollbackFor = Exception.class) - public AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId,Long storeId) { + public AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId,Long storeId,String mobile) { DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.lambdaQuery() .eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum) .eq(DiningPlatesDO::getStoreId,storeId) .last(MemberConstants.LIMIT_ONE)); checkDiningPlates(diningPlatesDO); - MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.lambdaQuery() - .eq(MemberUserDO::getFaceId, faceId) - .last(MemberConstants.LIMIT_ONE)); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if(faceId!=null){ + wrapper.eq(MemberUserDO::getFaceId, faceId); + } + if(StrUtil.isNotBlank(mobile) && faceId==null){ + wrapper.eq(MemberUserDO::getMobile, mobile); + } + wrapper.last(MemberConstants.LIMIT_ONE); + MemberUserDO memberUserDO = memberUserMapper.selectOne(wrapper); checkMemberUser(memberUserDO, true); //订单验证 checkOrder(memberUserDO.getId()); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java index af7ba3bc..f9192310 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java @@ -166,7 +166,7 @@ public class OrderServiceImpl implements OrderService { appOrderDetailRespVOS.forEach(respVo -> { DishesRespDto dishesRespDto = dishMap.get(respVo.getDishesId()); - if(ObjectUtil.isNotEmpty(dishesRespDto)){ + if (ObjectUtil.isNotEmpty(dishesRespDto)) { respVo.setDishesBasePrice(dishesRespDto.getDishesBasePrice()) .setDishesSumPrice(dishesRespDto.getDishesSumPrice()) .setDishesNumber(dishesRespDto.getDishesNumber()); @@ -185,6 +185,7 @@ public class OrderServiceImpl implements OrderService { @Override public PageResult getPageOrderDetails(OrderDetailsReqVO reqVO) { List userIds = new ArrayList<>(); + ArrayList userList = new ArrayList<>(); if (ObjUtil.isNotEmpty(reqVO.getUserName()) || ObjUtil.isNotEmpty(reqVO.getUserAccount()) || ObjUtil.isNotEmpty(reqVO.getUserJob()) @@ -192,13 +193,17 @@ public class OrderServiceImpl implements OrderService { || ObjUtil.isNotEmpty(reqVO.getGroupId()) ) { //根据用户属性获取ids - userIds = memberUserMapper.selectList(new LambdaQueryWrapperX() - .likeIfPresent(MemberUserDO::getNickname, reqVO.getUserName()) - .eqIfPresent(MemberUserDO::getMobile, reqVO.getUserAccount()) - .eqIfPresent(MemberUserDO::getCardId, reqVO.getUserJob()) - .eqIfPresent(MemberUserDO::getId, reqVO.getUserId()) - .inIfPresent(MemberUserDO::getId, groupMapper.getMemberList(reqVO.getGroupId()))) - .stream().map(MemberUserDO::getId).collect(Collectors.toList()); + List list = memberUserMapper.selectList(new LambdaQueryWrapperX() + .likeIfPresent(MemberUserDO::getNickname, reqVO.getUserName()) + .eqIfPresent(MemberUserDO::getMobile, reqVO.getUserAccount()) + .eqIfPresent(MemberUserDO::getCardId, reqVO.getUserJob()) + .eqIfPresent(MemberUserDO::getId, reqVO.getUserId()) + .inIfPresent(MemberUserDO::getId, groupMapper.getMemberList(reqVO.getGroupId()))); + userIds = list.stream().map(MemberUserDO::getId).collect(Collectors.toList()); + userList.addAll(list); + } else { + List list = memberUserMapper.selectList(); + userList.addAll(list); } Map timePeriod = this.getTimePeriod(reqVO.getTimePeriod()); LocalDateTime startTime = null; @@ -207,12 +212,20 @@ public class OrderServiceImpl implements OrderService { startTime = timePeriod.get("start"); endTime = timePeriod.get("end"); } + HashMap userMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(userList)) { + Map collect = userList.stream().collect(Collectors.toMap(MemberUserDO::getId, s -> s)); + userMap.putAll(collect); + } + + Map groupName = groupMapper.selectAllUserGroupName(); + //进行分页查询 PageResult pageResult = dishOrderMapper.selectPageList(reqVO, userIds, startTime, endTime); List list = new ArrayList<>(); for (DishOrderDO dishOrderDO : pageResult.getList()) { OrderDetailsRespVO bean = BeanUtils.toBean(dishOrderDO, OrderDetailsRespVO.class); - userDetails(bean); + userDetails(bean, userMap,groupName); list.add(bean); } return new PageResult<>(list, pageResult.getTotal()); @@ -236,6 +249,22 @@ public class OrderServiceImpl implements OrderService { bean.setTimePeriod(TimePeriodEnum.getTimeName(bean.getCreateTime())); BigDecimal moneyByUsr = cardMapper.getMoneyByUsr(bean.getUserId()); bean.setMoney(moneyByUsr); + + + } + + private void userDetails(OrderDetailsRespVO bean, HashMap userMap,Map groupName) { + MemberUserDO userDO = userMap.get(bean.getUserId()); + if (ObjectUtil.isNotEmpty(userDO)) { + bean.setGroupName(groupName.get(bean.getUserId())); + bean.setUserName(userDO.getNickname()); + bean.setUserJob(userDO.getMobile()); + bean.setAvatar(userDO.getAvatar()); + bean.setPayMethods("钱包"); + bean.setUserAccount(userDO.getMobile()); + bean.setTimePeriod(TimePeriodEnum.getTimeName(bean.getCreateTime())); + } + } /** @@ -362,7 +391,7 @@ public class OrderServiceImpl implements OrderService { List dishOrderDOS = dishOrderMapper.selectList(Wrappers.lambdaQuery() .eq(DishOrderDO::getStoreId, storeId) .apply("DATE(create_time) = DATE(NOW())")); - if(CollectionUtil.isNotEmpty(dishOrderDOS)){ + if (CollectionUtil.isNotEmpty(dishOrderDOS)) { BigDecimal reduce = dishOrderDOS.stream().map(DishOrderDO::getTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add); total = reduce; size = dishOrderDOS.stream().map(DishOrderDO::getUserId).distinct().collect(Collectors.toList()).size(); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/group/MemberGroupMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/group/MemberGroupMapper.xml index 2a0eaf1d..f8600bc1 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/group/MemberGroupMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/group/MemberGroupMapper.xml @@ -64,6 +64,10 @@ SELECT name FROM member_group WHERE id = (select group_id from member_group_member where member_id = #{userId}) +