优化
This commit is contained in:
		| @ -56,8 +56,8 @@ public class AppDiningPlatesController { | ||||
|  | ||||
|     @GetMapping("/bindByFace") | ||||
|     @Operation(summary = "人脸绑定餐盘") | ||||
|     public CommonResult<AppUserInfoCardVO> bindByFace(String diningPlatesNum, Long faceId,Long storeId) { | ||||
|         return success(diningPlatesService.bindByFace(diningPlatesNum,faceId,storeId)); | ||||
|     public CommonResult<AppUserInfoCardVO> bindByFace(String diningPlatesNum, Long faceId,Long storeId,String mobile) { | ||||
|         return success(diningPlatesService.bindByFace(diningPlatesNum,faceId,storeId,mobile)); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/checkBind") | ||||
|  | ||||
| @ -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<MemberGroupDO> { | ||||
|  | ||||
|     String getGroupName(Long userId); | ||||
|  | ||||
|     @MapKey("memberId") | ||||
|     Map<Long,String> selectAllUserGroupName(); | ||||
|  | ||||
|     List<MemberGroupUserVo> getGroupList(List<Long> list); | ||||
| } | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
|  | ||||
| @ -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.<DiningPlatesDO>lambdaQuery() | ||||
|                 .eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum) | ||||
|                 .eq(DiningPlatesDO::getStoreId,storeId) | ||||
|                 .last(MemberConstants.LIMIT_ONE)); | ||||
|         checkDiningPlates(diningPlatesDO); | ||||
|         MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery() | ||||
|                 .eq(MemberUserDO::getFaceId, faceId) | ||||
|                 .last(MemberConstants.LIMIT_ONE)); | ||||
|  | ||||
|         LambdaQueryWrapper<MemberUserDO> 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()); | ||||
|  | ||||
| @ -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<OrderDetailsRespVO> getPageOrderDetails(OrderDetailsReqVO reqVO) { | ||||
|         List<Long> userIds = new ArrayList<>(); | ||||
|         ArrayList<MemberUserDO> 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<MemberUserDO>() | ||||
|                             .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<MemberUserDO> list = memberUserMapper.selectList(new LambdaQueryWrapperX<MemberUserDO>() | ||||
|                     .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<MemberUserDO> list = memberUserMapper.selectList(); | ||||
|             userList.addAll(list); | ||||
|         } | ||||
|         Map<String, LocalDateTime> 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<Long, MemberUserDO> userMap = new HashMap<>(); | ||||
|         if (CollectionUtil.isNotEmpty(userList)) { | ||||
|             Map<Long, MemberUserDO> collect = userList.stream().collect(Collectors.toMap(MemberUserDO::getId, s -> s)); | ||||
|             userMap.putAll(collect); | ||||
|         } | ||||
|  | ||||
|         Map<Long, String> groupName = groupMapper.selectAllUserGroupName(); | ||||
|  | ||||
|         //进行分页查询 | ||||
|         PageResult<DishOrderDO> pageResult = dishOrderMapper.selectPageList(reqVO, userIds, startTime, endTime); | ||||
|         List<OrderDetailsRespVO> 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<Long, MemberUserDO> userMap,Map<Long, String> 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<DishOrderDO> dishOrderDOS = dishOrderMapper.selectList(Wrappers.<DishOrderDO>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(); | ||||
|  | ||||
| @ -64,6 +64,10 @@ | ||||
|         SELECT name FROM member_group WHERE | ||||
|         id = (select group_id from member_group_member where member_id = #{userId}) | ||||
|     </select> | ||||
|     <select id="selectAllUserGroupName"  resultType="java.util.Map"> | ||||
|         select member_id,name from member_group_member mm | ||||
|         left join member_group mg on mm.group_id = mg.id | ||||
|     </select> | ||||
|  | ||||
|     <select id="getGroupList" resultType="cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUserVo"> | ||||
|         SELECT mg.name,mm.member_id FROM member_group_member mm left join member_group mg on  mm.group_id = mg.id | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 zengtao01
					zengtao01