From 4a44cce1f1189836fee37f39c50fe631261891d1 Mon Sep 17 00:00:00 2001 From: sdhkjh <2450473462@qq.com> Date: Wed, 18 Sep 2024 10:10:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=94=B6=E4=BB=B6?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ShopAddressController.java | 95 +++++++++++++++++++ .../com/skyeye/store/dao/ShopAddressDao.java | 19 ++++ .../com/skyeye/store/entity/ShopAddress.java | 66 +++++++++++++ .../skyeye/store/entity/ShopTradeCart.java | 9 ++ .../store/service/ShopAddressService.java | 22 +++++ .../service/impl/ShopAddressServiceImpl.java | 93 ++++++++++++++++++ .../impl/ShopTradeCartServiceImpl.java | 11 ++- 7 files changed, 312 insertions(+), 3 deletions(-) create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopAddressController.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopAddressDao.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopAddress.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopAddressService.java create mode 100644 skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopAddressServiceImpl.java diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopAddressController.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopAddressController.java new file mode 100644 index 00000000..bec3fff5 --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/controller/ShopAddressController.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye + ******************************************************************************/ + +package com.skyeye.store.controller; + +import com.skyeye.annotation.api.Api; +import com.skyeye.annotation.api.ApiImplicitParam; +import com.skyeye.annotation.api.ApiImplicitParams; +import com.skyeye.annotation.api.ApiOperation; +import com.skyeye.common.entity.search.CommonPageInfo; +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.store.entity.ShopAddress; +import com.skyeye.store.service.ShopAddressService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName: ShopAddressController + * @Description: 收件地址管理控制类 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:06 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +@RestController +@Api(value = "收件地址管理", tags = "收件地址管理", modelName = "收件地址管理") +public class ShopAddressController { + + @Autowired + private ShopAddressService shopAddressService; + + /** + * 新增/编辑收件地址信息 + * + * @param inputObject 入参以及用户信息等获取对象 + * @param outputObject 出参以及提示信息的返回值对象 + */ + @ApiOperation(id = "writeShopAddress", value = "新增/编辑收件地址信息", method = "POST", allUse = "2") + @ApiImplicitParams(classBean = ShopAddress.class) + @RequestMapping("/post/ShopAddressController/writeShopAddress") + public void writeShopAddress(InputObject inputObject, OutputObject outputObject) { + shopAddressService.saveOrUpdateEntity(inputObject, outputObject); + } + + /** + * 批量删除收件地址信息 + * + * @param inputObject 入参以及用户信息等获取对象 + * @param outputObject 出参以及提示信息的返回值对象 + */ + @ApiOperation(id = "deleteShopAddressByIds", value = "批量删除收件地址信息", method = "DELETE", allUse = "2") + @ApiImplicitParams({ + @ApiImplicitParam(id = "ids", name = "ids", value = "主键id列表,多个id用逗号分隔", required = "required")}) + @RequestMapping("/post/ShopAddressController/deleteShopAddressByIds") + public void deleteShopAddressByIds(InputObject inputObject, OutputObject outputObject) { + shopAddressService.deleteById(inputObject, outputObject); + } + + /** + * 分页获取收件地址信息 + * + * @param inputObject 入参以及用户信息等获取对象 + * @param outputObject 出参以及提示信息的返回值对象 + */ + @ApiOperation(id = "queryMyShopAddress", value = "分页获取收件地址信息", method = "POST", allUse = "2") + @ApiImplicitParams(classBean = CommonPageInfo.class) + @RequestMapping("/post/ShopAddressController/queryMyShopAddress") + public void queryMyShopAddress(InputObject inputObject, OutputObject outputObject) { + shopAddressService.queryPageList(inputObject, outputObject); + } + + /** + * 获取默认收件地址信息 + * + * @param inputObject 入参以及用户信息等获取对象 + * @param outputObject 出参以及提示信息的返回值对象 + */ + @ApiOperation(id = "queryDefaultShopAddress", value = "获取默认收件地址信息", method = "POST", allUse = "2") + @RequestMapping("/post/ShopAddressController/queryDefaultShopAddress") + public void queryDefaultShopAddress(InputObject inputObject, OutputObject outputObject) { + shopAddressService.queryList(inputObject, outputObject); + } + + @ApiOperation(id = "queryShopAddressByCreateId", value = "获取默认收件地址信息", method = "POST", allUse = "2") + @ApiImplicitParams({ + @ApiImplicitParam(id = "userId", name = "userId", value = "用户主键id", required = "required")}) + @RequestMapping("/post/ShopAddressController/queryShopAddressByCreateId") + public void queryShopAddressByCreateId(InputObject inputObject, OutputObject outputObject) { + shopAddressService.queryShopAddressByCreateId(inputObject, outputObject); + } + +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopAddressDao.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopAddressDao.java new file mode 100644 index 00000000..45f07437 --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/dao/ShopAddressDao.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye + ******************************************************************************/ + +package com.skyeye.store.dao; + +import com.skyeye.eve.dao.SkyeyeBaseMapper; +import com.skyeye.store.entity.ShopAddress; + +/** + * @ClassName: ShopAddressDao + * @Description: 收件地址管理数据接口层 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:06 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +public interface ShopAddressDao extends SkyeyeBaseMapper { +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopAddress.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopAddress.java new file mode 100644 index 00000000..e12d9ca3 --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopAddress.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye + ******************************************************************************/ + +package com.skyeye.store.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.skyeye.annotation.api.ApiModel; +import com.skyeye.annotation.api.ApiModelProperty; +import com.skyeye.annotation.cache.RedisCacheField; +import com.skyeye.common.constans.RedisConstants; +import com.skyeye.common.entity.features.OperatorUserInfo; +import lombok.Data; + +/** + * @ClassName: ShopAddress + * @Description: 收件地址实体类 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:06 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +@Data +@RedisCacheField(name = "shop:address", cacheTime = RedisConstants.THIRTY_DAY_SECONDS) +@TableName(value = "shop_address") +@ApiModel("收件地址管理实体类") +public class ShopAddress extends OperatorUserInfo { + + @TableId("id") + @ApiModelProperty("主键id。为空时新增,不为空时编辑") + private String id; + + @TableField("name") + @ApiModelProperty(value = "收件人名称", required = "required") + private String name; + + @TableField("mobile") + @ApiModelProperty(value = "手机号", required = "required") + private String mobile; + + @TableField("province_id") + @ApiModelProperty(value = "省") + private String provinceId; + + @TableField("city_id") + @ApiModelProperty(value = "市") + private String cityId; + + @TableField("area_id") + @ApiModelProperty(value = "县区") + private String areaId; + + @TableField("township_id") + @ApiModelProperty(value = "乡镇") + private String townshipId; + + @TableField("absolute_address") + @ApiModelProperty(value = "详细地址") + private String absoluteAddress; + + @TableField("is_default") + @ApiModelProperty(value = "是否是默认地址,参考#WhetherEnum", required = "required,num") + private Integer isDefault; +} \ No newline at end of file diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java index 13f91263..b7b7af93 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java @@ -32,6 +32,15 @@ public class ShopTradeCart extends OperatorUserInfo { @ApiModelProperty("主键id。为空时新增,不为空时编辑") private String id; + + @TableField("store_id") + @ApiModelProperty(value = "门店id", required = "required") + private String storeId; + + @TableField(exist = false) + @ApiModelProperty(value = "门店信息") + private Map storeMation; + @TableField("material_id") @ApiModelProperty(value = "商品id", required = "required") private String materialId; diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopAddressService.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopAddressService.java new file mode 100644 index 00000000..73fd6812 --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/ShopAddressService.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye + ******************************************************************************/ + +package com.skyeye.store.service; + +import com.skyeye.base.business.service.SkyeyeBusinessService; +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.store.entity.ShopAddress; + +/** + * @ClassName: ShopAddressService + * @Description: 收件地址管理服务接口层 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:06 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +public interface ShopAddressService extends SkyeyeBusinessService { + void queryShopAddressByCreateId(InputObject inputObject, OutputObject outputObject); +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopAddressServiceImpl.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopAddressServiceImpl.java new file mode 100644 index 00000000..76db045a --- /dev/null +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopAddressServiceImpl.java @@ -0,0 +1,93 @@ +/******************************************************************************* + * Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye + ******************************************************************************/ + +package com.skyeye.store.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.skyeye.annotation.service.SkyeyeService; +import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; +import com.skyeye.common.constans.CommonCharConstants; +import com.skyeye.common.constans.CommonConstants; +import com.skyeye.common.constans.CommonNumConstants; +import com.skyeye.common.enumeration.WhetherEnum; +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.common.util.mybatisplus.MybatisPlusUtil; +import com.skyeye.store.dao.ShopAddressDao; +import com.skyeye.store.entity.ShopAddress; +import com.skyeye.store.service.ShopAddressService; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * @ClassName: ShopAddressServiceImpl + * @Description: 收件地址管理服务层 + * @author: skyeye云系列--卫志强 + * @date: 2022/2/4 10:06 + * @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved. + * 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的 + */ +@Service +@SkyeyeService(name = "收件地址管理", groupName = "收件地址管理") +public class ShopAddressServiceImpl extends SkyeyeBusinessServiceImpl implements ShopAddressService { + + @Override + public void writePostpose(ShopAddress shopAddress, String userId) { + if (WhetherEnum.ENABLE_USING.getKey().equals(shopAddress.getIsDefault())) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.ne(CommonConstants.ID, shopAddress.getId()); + updateWrapper.eq(MybatisPlusUtil.toColumns(ShopAddress::getCreateId), userId); + updateWrapper.eq(MybatisPlusUtil.toColumns(ShopAddress::getIsDefault), WhetherEnum.ENABLE_USING.getKey()); + ShopAddress one = getOne(updateWrapper); + if (ObjectUtil.isEmpty(one)) { + return; + } + updateWrapper.set(MybatisPlusUtil.toColumns(ShopAddress::getIsDefault), WhetherEnum.DISABLE_USING.getKey()); + update(updateWrapper); + refreshCache(one.getId()); + } + } + + @Override + public void deleteById(InputObject inputObject, OutputObject outputObject) { + String ids = inputObject.getParams().get("ids").toString(); + List idList = Arrays.asList(ids.split(CommonCharConstants.COMMA_MARK)); + super.deleteById(idList); + } + + @Override + public List> queryPageDataList(InputObject inputObject) { + String userId = InputObject.getLogParamsStatic().get("id").toString(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(MybatisPlusUtil.toColumns(ShopAddress::getCreateId), userId); + List list = list(queryWrapper); + return JSONUtil.toList(JSONUtil.toJsonStr(list), null); + } + + @Override + public List> queryDataList(InputObject inputObject){ + String userId = InputObject.getLogParamsStatic().get("id").toString(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(MybatisPlusUtil.toColumns(ShopAddress::getCreateId), userId); + queryWrapper.eq(MybatisPlusUtil.toColumns(ShopAddress::getIsDefault), CommonNumConstants.NUM_ONE); + List list = list(queryWrapper); + return JSONUtil.toList(JSONUtil.toJsonStr(list), null); + } + + @Override + public void queryShopAddressByCreateId(InputObject inputObject, OutputObject outputObject) { + String userId = inputObject.getParams().get("userId").toString(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(MybatisPlusUtil.toColumns(ShopAddress::getCreateId), userId); + List list = list(queryWrapper); + outputObject.setBeans(list); + outputObject.settotal(list.size()); + } +} diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java index 84c6d785..65d2bdba 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java @@ -19,7 +19,6 @@ import com.skyeye.common.enumeration.WhetherEnum; import com.skyeye.common.object.InputObject; import com.skyeye.common.object.OutputObject; import com.skyeye.common.util.CalculationUtil; -import com.skyeye.common.util.StringUtil; import com.skyeye.common.util.mybatisplus.MybatisPlusUtil; import com.skyeye.erp.service.IMaterialNormsService; import com.skyeye.erp.service.IMaterialService; @@ -27,8 +26,8 @@ import com.skyeye.exception.CustomException; import com.skyeye.rest.shopmaterialnorms.sevice.IShopMaterialNormsService; import com.skyeye.store.dao.ShopTradeCartDao; import com.skyeye.store.entity.ShopTradeCart; +import com.skyeye.store.service.ShopStoreService; import com.skyeye.store.service.ShopTradeCartService; -import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -56,6 +55,9 @@ public class ShopTradeCartServiceImpl extends SkyeyeBusinessServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq(MybatisPlusUtil.toColumns(ShopTradeCart::getCreateId), userId); + wrapper.orderByDesc(MybatisPlusUtil.toColumns(ShopTradeCart::getCreateTime)); + wrapper.groupBy(MybatisPlusUtil.toColumns(ShopTradeCart::getStoreId)); List beans = list(wrapper); iMaterialNormsService.setDataMation(beans, ShopTradeCart::getNormsId); iMaterialService.setDataMation(beans, ShopTradeCart::getMaterialId); + shopStoreService.setDataMation(beans, ShopTradeCart::getStoreId); return JSONUtil.toList(JSONUtil.toJsonStr(beans), null); } @Override - public String createEntity(ShopTradeCart shopTradeCart, String userId){ + public String createEntity(ShopTradeCart shopTradeCart, String userId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(MybatisPlusUtil.toColumns(ShopTradeCart::getMaterialId), shopTradeCart.getMaterialId()); queryWrapper.eq(MybatisPlusUtil.toColumns(ShopTradeCart::getNormsId), shopTradeCart.getNormsId());