@ -0,0 +1,59 @@ | |||
package org.jeecg.modules.applet.service; | |||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
import com.baomidou.mybatisplus.core.metadata.IPage; | |||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
import org.jeecg.modules.demo.appletShippingAddress.entity.AppletShippingAddress; | |||
public interface AppletApiAddressService { | |||
/** | |||
* 分页查询地址 | |||
* | |||
* @param page | |||
* @return | |||
*/ | |||
IPage<AppletShippingAddress> page(Page<AppletShippingAddress> page, AppletShippingAddress appletShippingAddress); | |||
/** | |||
* 添加地址 | |||
* | |||
* @param appletShippingAddress | |||
*/ | |||
void save(AppletShippingAddress appletShippingAddress); | |||
/** | |||
* 通过id查询 | |||
* | |||
* @param id | |||
* @return | |||
*/ | |||
AppletShippingAddress getById(String id); | |||
/** | |||
* 修改地址 | |||
* | |||
* @param appletShippingAddress | |||
*/ | |||
void updateById(AppletShippingAddress appletShippingAddress); | |||
// /** | |||
// * 通过id删除 | |||
// * | |||
// * @param id | |||
// */ | |||
// void removeById(String id); | |||
// | |||
// /** | |||
// * 批量删除 | |||
// * | |||
// * @param list | |||
// */ | |||
// | |||
// void removeByIds(List<String> list); | |||
// | |||
} |
@ -0,0 +1,54 @@ | |||
package org.jeecg.modules.applet.service; | |||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
import com.baomidou.mybatisplus.core.metadata.IPage; | |||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
import org.jeecg.modules.demo.appletCar.entity.AppletCar; | |||
import java.util.List; | |||
public interface AppletApiCarService { | |||
/** | |||
* 查询购物车列表 | |||
* | |||
* @param page | |||
* @param queryWrapper | |||
* @return | |||
*/ | |||
IPage<AppletCar> page(Page<AppletCar> page, AppletCar appletCar); | |||
/** | |||
* 添加购物车 | |||
* | |||
* @param appletCar | |||
*/ | |||
void save(AppletCar appletCar); | |||
/** | |||
* 根据id查询购物车 | |||
* | |||
* @param id | |||
* @return | |||
*/ | |||
AppletCar getById(String id); | |||
/** | |||
* 修改购物车 | |||
* | |||
* @param appletCar | |||
*/ | |||
void updateById(AppletCar appletCar); | |||
/** | |||
* 批量删除购物车 | |||
* | |||
* @param list | |||
*/ | |||
void removeByIds(List<String> list); | |||
} |
@ -0,0 +1,108 @@ | |||
package org.jeecg.modules.applet.service.impl; | |||
import cn.hutool.core.util.StrUtil; | |||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
import com.baomidou.mybatisplus.core.metadata.IPage; | |||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.jeecg.common.system.util.AppletUserUtil; | |||
import org.jeecg.modules.applet.service.AppletApiAddressService; | |||
import org.jeecg.modules.demo.appletShippingAddress.entity.AppletShippingAddress; | |||
import org.jeecg.modules.demo.appletShippingAddress.service.IAppletShippingAddressService; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
@Service | |||
@Slf4j | |||
public class AppletApiAddressServiceImpl implements AppletApiAddressService { | |||
@Autowired | |||
private IAppletShippingAddressService appletShippingAddressService; | |||
/** | |||
* 查询地址列表 | |||
* | |||
* @param page | |||
* @param address | |||
* @return | |||
*/ | |||
@Override | |||
public IPage<AppletShippingAddress> page(Page<AppletShippingAddress> page, AppletShippingAddress address) { | |||
String userId = AppletUserUtil.getCurrentAppletUserId(); | |||
Page<AppletShippingAddress> page1 = appletShippingAddressService | |||
.lambdaQuery() | |||
.eq(AppletShippingAddress::getUserId, userId)//getId -> getUserId | |||
.orderByDesc(AppletShippingAddress::getDefaultFlag) | |||
//如果你要写查询条件,这样写 | |||
//.eq(AppletShippingAddress::getCity, address.getCity())//这个是 等于 | |||
//.eq(StrUtil.isNotBlank((address.getCity()), AppletShippingAddress::getCity, address.getCity())//这样加条件不为空 | |||
.page(page); | |||
return page1; | |||
} | |||
/** | |||
* 新增地址 | |||
* | |||
* @param appletShippingAddress | |||
*/ | |||
@Override | |||
public void save(AppletShippingAddress appletShippingAddress) { | |||
if (appletShippingAddress == null) { | |||
throw new IllegalArgumentException("地址信息不能为空"); | |||
} | |||
if (StrUtil.isBlank(appletShippingAddress.getName())) { | |||
throw new IllegalArgumentException("收货人不能为空"); | |||
} | |||
if (StrUtil.isBlank(appletShippingAddress.getPhone())) { | |||
throw new IllegalArgumentException("联系电话不能为空"); | |||
} | |||
if (StrUtil.isBlank(appletShippingAddress.getDetail())) { | |||
throw new IllegalArgumentException("详细地址不能为空"); | |||
} | |||
String userId = AppletUserUtil.getCurrentAppletUserId(); | |||
appletShippingAddress.setUserId(userId); | |||
appletShippingAddressService.save(appletShippingAddress); | |||
} | |||
/** | |||
* 根据id查询地址 | |||
* | |||
* @param id | |||
* @return | |||
*/ | |||
@Override | |||
public AppletShippingAddress getById(String id) { | |||
AppletShippingAddress byId = appletShippingAddressService.getById(id); | |||
return byId; | |||
} | |||
/** | |||
* 修改地址 | |||
* | |||
* @param appletShippingAddress | |||
*/ | |||
@Override | |||
public void updateById(AppletShippingAddress appletShippingAddress) { | |||
if (appletShippingAddress == null || StrUtil.isBlank(appletShippingAddress.getId())) { | |||
throw new IllegalArgumentException("地址信息或ID不能为空"); | |||
} | |||
if (StrUtil.isBlank(appletShippingAddress.getName())) { | |||
throw new IllegalArgumentException("收货人不能为空"); | |||
} | |||
if (StrUtil.isBlank(appletShippingAddress.getPhone())) { | |||
throw new IllegalArgumentException("联系电话不能为空"); | |||
} | |||
if (StrUtil.isBlank(appletShippingAddress.getDetail())) { | |||
throw new IllegalArgumentException("详细地址不能为空"); | |||
} | |||
appletShippingAddressService.updateById(appletShippingAddress); | |||
} | |||
} |
@ -0,0 +1,113 @@ | |||
package org.jeecg.modules.applet.service.impl; | |||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
import com.baomidou.mybatisplus.core.metadata.IPage; | |||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
import org.jeecg.common.system.util.AppletUserUtil; | |||
import org.jeecg.modules.applet.service.AppletApiCarService; | |||
import org.jeecg.modules.demo.appletCar.entity.AppletCar; | |||
import org.jeecg.modules.demo.appletCar.service.IAppletCarService; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.util.List; | |||
import java.util.stream.Collectors; | |||
@Service | |||
public class AppletApiCarServiceImpl implements AppletApiCarService { | |||
@Autowired | |||
private IAppletCarService appletCarService; | |||
/** | |||
* 购物车列表查询 | |||
* | |||
* @param page | |||
* @param appletCar | |||
* @return | |||
*/ | |||
@Override | |||
public IPage<AppletCar> page(Page<AppletCar> page, AppletCar appletCar) { | |||
String userId = AppletUserUtil.getCurrentAppletUserId(); | |||
Page<AppletCar> page1 = appletCarService | |||
.lambdaQuery() | |||
.eq(AppletCar::getUserId, userId) | |||
.page(page); | |||
return page1; | |||
} | |||
/** | |||
* 添加购物车 | |||
* | |||
* @param appletCar | |||
*/ | |||
@Override | |||
public void save(AppletCar appletCar) { | |||
appletCarService.save(appletCar); | |||
} | |||
/** | |||
* 根据id查询购物车 | |||
* | |||
* @param id 购物车id | |||
* @return 购物车对象 | |||
*/ | |||
@Override | |||
public AppletCar getById(String id) { | |||
// 获取当前登录的小程序用户ID | |||
String userId = AppletUserUtil.getCurrentAppletUserId(); | |||
// 使用LambdaQuery构造查询条件,同时匹配购物车ID和用户ID,确保数据隔离 | |||
AppletCar appletCar = appletCarService | |||
.lambdaQuery() | |||
.eq(AppletCar::getId, id) // 匹配购物车ID | |||
.eq(AppletCar::getUserId, userId) // 匹配用户ID | |||
.one(); // 查询单个结果 | |||
return appletCar; | |||
} | |||
/** | |||
* 修改购物车 | |||
* | |||
* @param appletCar | |||
*/ | |||
@Override | |||
public void updateById(AppletCar appletCar) { | |||
// 获取当前登录的小程序用户ID | |||
String userId = AppletUserUtil.getCurrentAppletUserId(); | |||
// 验证该购物车是否属于当前用户 | |||
AppletCar existingCar = appletCarService | |||
.lambdaQuery() | |||
.eq(AppletCar::getId, appletCar.getId()) // 匹配购物车ID | |||
.eq(AppletCar::getUserId, userId) // 匹配用户ID | |||
.one(); | |||
// 如果购物车存在且属于当前用户,则执行更新操作 | |||
if (existingCar != null) { | |||
appletCarService.updateById(appletCar); | |||
} | |||
} | |||
/** | |||
* 批量删除购物车 | |||
* | |||
* @param ids 购物车ID列表 | |||
*/ | |||
@Override | |||
public void removeByIds(List<String> ids) { | |||
// 获取当前登录的小程序用户ID | |||
String userId = AppletUserUtil.getCurrentAppletUserId(); | |||
// 查询这些ID中属于当前用户的购物车项 | |||
List<AppletCar> appletCars = appletCarService | |||
.lambdaQuery() | |||
.in(AppletCar::getId, ids) // 匹配购物车ID列表 | |||
.eq(AppletCar::getUserId, userId) // 匹配用户ID | |||
.list(); | |||
// 提取属于当前用户的购物车ID列表 | |||
List<String> userCarIds = appletCars.stream() | |||
.map(AppletCar::getId) | |||
.collect(Collectors.toList()); | |||
// 执行删除操作(只会删除属于当前用户的购物车项) | |||
if (!userCarIds.isEmpty()) { | |||
appletCarService.removeByIds(userCarIds); | |||
} | |||
} | |||
} |