优化
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
|
||||
|
@ -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));
|
||||
// }
|
||||
|
||||
|
Reference in New Issue
Block a user