This commit is contained in:
zengtao01
2024-10-07 16:55:48 +08:00
parent e3aa6e4194
commit 804cbcc655
7 changed files with 63 additions and 17 deletions

View File

@ -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")

View File

@ -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);
}

View File

@ -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);

View File

@ -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());

View File

@ -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();

View File

@ -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

View File

@ -181,6 +181,7 @@ public class DevuceServiceImpl implements DevuceService {
}
return dishesMapper.selectList(new LambdaQueryWrapperX<DishesDO>()
.eq(DishesDO::getCarteenId,carteenId)
.gt(DishesDO::getId,94)
.eq(DishesDO::getDishecType,dishecType).orderByDesc(DishesDO::getId));
// }