diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/HomeController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/HomeController.java index edbbd20a..972b7353 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/user/HomeController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/HomeController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/user/home") public class HomeController { + @GetMapping("/homePageUp") public CzgResult homePageUp() { return CzgResult.success(JSONObject.parseObject(""" diff --git a/cash-api/product-server/src/main/java/com/czg/controller/user/HomeController.java b/cash-api/product-server/src/main/java/com/czg/controller/user/HomeController.java new file mode 100644 index 00000000..f01387d5 --- /dev/null +++ b/cash-api/product-server/src/main/java/com/czg/controller/user/HomeController.java @@ -0,0 +1,41 @@ +package com.czg.controller.user; + +import com.alibaba.fastjson2.JSONObject; +import com.czg.product.service.HomePageService; +import com.czg.resp.CzgResult; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 小程序主页相关接口 + * @author Administrator + */ +@RestController +@RequestMapping("/user/home") +public class HomeController { + + @Resource + private HomePageService homePageService; + + @GetMapping("/homePageUp") + public CzgResult homePageUp() { + return CzgResult.success(homePageService.getHomeInfo()); + } + + /** + * 获取首页商品 + * @param lng 纬度 + * @param lat 经度 + * @param address 城市 + * @param classify 分类 0双人餐 1饮品明细 2咖啡饮品 + * @param orderType 排序规则 0离我最近 1销量优先 2价格优先 + * @param distanceType 1一千米 + * @return 商品列表 + */ + @GetMapping("/product") + public CzgResult home(String lng, String lat, String address, Integer classify, Integer orderType, Integer distanceType) { + return CzgResult.success(homePageService.getProd(lng, lat, address, classify, orderType, distanceType)); + } +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/PlatformDictDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/PlatformDictDTO.java new file mode 100644 index 00000000..4579c153 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/PlatformDictDTO.java @@ -0,0 +1,120 @@ + +package com.czg.account.dto; + +import java.io.Serializable; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 平台配置 实体类。 + * + * @author zs + * @since 2025-02-28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PlatformDictDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Integer id; + + /** + * 标签前小图标 + */ + private String shareImg; + + /** + * 描述 同类型下 name唯一 + */ + private String name; + + /** + * 值 + */ + private String value; + + /** + * 字体色 + */ + private String fontColor; + + /** + * 背景色 + */ + private String backColor; + + /** + * homeDistrict--金刚区(首页) +carousel--轮播图 +proTag--商品标签 +shopTag--店铺标签 +icon--小图标 +subShop--预约到店顶部图 +group--团购卷分类对应顶部图 value为团购卷Id +ownMenu--个人中心菜单 + */ + private String type; + + /** + * 展示图 + */ + private String coverImg; + + /** + * 视频URL地址 + */ + private String video; + + /** + * 视频封面图 + */ + private String videoCoverImg; + + /** + * 类型: scan:拉起相机;relative:内部页面;absolute:外链url + */ + private String jumpType; + + /** + * 跳转地址 + */ + private String absUrl; + + /** + * 创建时间 + */ + private Long createdAt; + + /** + * 更新时间 + */ + private Long updatedAt; + + /** + * 收银端展示 0:不展示 1:展示 + */ + private Integer isShowCash; + + /** + * 小程序端展示 0:不展示 1:展示 + */ + private Integer isShowMall; + + /** + * APP端展示 0:不展示 1:展示 + */ + private Integer isShowApp; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/PlatformDictTypeDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/PlatformDictTypeDTO.java new file mode 100644 index 00000000..a5f17ee3 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/PlatformDictTypeDTO.java @@ -0,0 +1,46 @@ + +package com.czg.account.dto; + +import java.io.Serializable; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 平台配置类型 实体类。 + * + * @author zs + * @since 2025-02-28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PlatformDictTypeDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + private Integer id; + + /** + * 类型标识 + */ + private String key; + + /** + * 类型名称 + */ + private String name; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/SysDictDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/SysDictDTO.java new file mode 100644 index 00000000..585e1eaf --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/SysDictDTO.java @@ -0,0 +1,95 @@ + +package com.czg.account.dto; + +import java.io.Serializable; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据字典 实体类。 + * + * @author zs + * @since 2025-02-28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysDictDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * ID + */ + private Long id; + + /** + * 父id + */ + private Integer releId; + + /** + * name + */ + private String dictName; + + /** + * 字典名称 + */ + private String name; + + /** + * 值 + */ + private String value; + + /** + * 类型:通用-common;首页-home;热销-hot; + */ + private String type; + + /** + * 是否展示 0否 1是 + */ + private Integer status; + + /** + * 是否有子类 0否1是 + */ + private Integer isChild; + + /** + * 创建者 + */ + private String createBy; + + /** + * 更新者 + */ + private String updateBy; + + /** + * 创建日期 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PlatformDict.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PlatformDict.java new file mode 100644 index 00000000..bfb23f5d --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PlatformDict.java @@ -0,0 +1,126 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 平台配置 实体类。 + * + * @author zs + * @since 2025-02-28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_platform_dict") +public class PlatformDict implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Integer id; + + /** + * 标签前小图标 + */ + private String shareImg; + + /** + * 描述 同类型下 name唯一 + */ + private String name; + + /** + * 值 + */ + private String value; + + /** + * 字体色 + */ + private String fontColor; + + /** + * 背景色 + */ + private String backColor; + + /** + * homeDistrict--金刚区(首页) +carousel--轮播图 +proTag--商品标签 +shopTag--店铺标签 +icon--小图标 +subShop--预约到店顶部图 +group--团购卷分类对应顶部图 value为团购卷Id +ownMenu--个人中心菜单 + */ + private String type; + + /** + * 展示图 + */ + private String coverImg; + + /** + * 视频URL地址 + */ + private String video; + + /** + * 视频封面图 + */ + private String videoCoverImg; + + /** + * 类型: scan:拉起相机;relative:内部页面;absolute:外链url + */ + private String jumpType; + + /** + * 跳转地址 + */ + private String absUrl; + + /** + * 创建时间 + */ + private Long createdAt; + + /** + * 更新时间 + */ + private Long updatedAt; + + /** + * 收银端展示 0:不展示 1:展示 + */ + private Integer isShowCash; + + /** + * 小程序端展示 0:不展示 1:展示 + */ + private Integer isShowMall; + + /** + * APP端展示 0:不展示 1:展示 + */ + private Integer isShowApp; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PlatformDictType.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PlatformDictType.java new file mode 100644 index 00000000..6bb49284 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/PlatformDictType.java @@ -0,0 +1,52 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 平台配置类型 实体类。 + * + * @author zs + * @since 2025-02-28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_platform_dict_type") +public class PlatformDictType implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @Id(keyType = KeyType.Auto) + private Integer id; + + /** + * 类型标识 + */ + private String key; + + /** + * 类型名称 + */ + private String name; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysDict.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysDict.java new file mode 100644 index 00000000..88b7729e --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysDict.java @@ -0,0 +1,107 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据字典 实体类。 + * + * @author zs + * @since 2025-02-28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("sys_dict") +public class SysDict implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 父id + */ + private Integer releId; + + /** + * name + */ + private String dictName; + + /** + * 字典名称 + */ + private String name; + + /** + * 值 + */ + private String value; + + /** + * 类型:通用-common;首页-home;热销-hot; + */ + private String type; + + /** + * 是否展示 0否 1是 + */ + private Integer status; + + /** + * 是否有子类 0否1是 + */ + private Integer isChild; + + /** + * 创建者 + */ + private String createBy; + + /** + * 更新者 + */ + private String updateBy; + + /** + * 创建日期 + */ + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + + /** + * 排序 + */ + private Integer sort; + + @Column(ignore = true) + private List detail; + + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/BannerInfoVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/BannerInfoVo.java new file mode 100644 index 00000000..5fd2f2b9 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/BannerInfoVo.java @@ -0,0 +1,30 @@ +package com.czg.account.vo.home; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + +/** + * @author lyf + */ +@Data +@Accessors(chain = true) +public class BannerInfoVo { + /** + * 昵称 + */ + private String name; + /** + * 昵称 + */ + private String logo; + + /** + * 免单了多少钱 + */ + private String money; + + + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HomeCarouselVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HomeCarouselVo.java new file mode 100644 index 00000000..c4224f00 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HomeCarouselVo.java @@ -0,0 +1,30 @@ +package com.czg.account.vo.home; + +import lombok.Data; + +/** + * 轮播图VO + * @author Administrator + */ +@Data +public class HomeCarouselVo { + + /** + * 描述 同类型下 name唯一 + */ + private String name; + /** + * 轮播图url + */ + private String coverImg; + /** + * 跳转类型 如 拉起相机 跳转小程序 跳转第三方url + */ + private String jumpType; + /** + * 绝对跳转地址 + */ + private String absUrl; + +} + diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HomePageVO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HomePageVO.java new file mode 100644 index 00000000..45b93b6a --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HomePageVO.java @@ -0,0 +1,43 @@ +package com.czg.account.vo.home; + +import com.czg.account.entity.PlatformDict; +import com.czg.account.entity.SysDict; +import com.czg.product.entity.Product; +import lombok.Data; + +import java.util.List; + +/** + * @author Administrator + */ +@Data +public class HomePageVO { + /** + * 轮播图列表 + */ + private List bannerList; + /** + * 免单轮播列表 + */ + private List freeBannerList; + /** + * 功能入口按钮组 + */ + private List district; + /** + * 热销信息 + */ + private HotRankingVO hotRanking; + + /** + * 今日上新商品信息 + */ + private List todayProInfo; + + /** + * 菜单列表 + */ + private List menuList; + + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HotRankingVO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HotRankingVO.java new file mode 100644 index 00000000..9f5f60b1 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/home/HotRankingVO.java @@ -0,0 +1,20 @@ +package com.czg.account.vo.home; + +import com.czg.product.entity.Product; +import lombok.Data; + +import java.util.List; + +/** + * @author lyf + */ +@Data +public class HotRankingVO { + /** + * 榜单名称 + */ + private String name = "飙升热榜"; + private String date = "8点更新"; + List hotList; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/HomePageService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/HomePageService.java new file mode 100644 index 00000000..883db90b --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/HomePageService.java @@ -0,0 +1,13 @@ +package com.czg.product.service; + +import com.czg.account.vo.home.HomePageVO; + +/** + * @author Administrator + */ +public interface HomePageService { + HomePageVO getHomeInfo(); + + Object getProd(String lng, String lat, String address, Integer classify, Integer orderType, Integer distanceType); + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/PlatformDictService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/PlatformDictService.java new file mode 100644 index 00000000..1487203d --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/PlatformDictService.java @@ -0,0 +1,14 @@ +package com.czg.product.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.PlatformDict; + +/** + * 平台配置 服务层。 + * + * @author zs + * @since 2025-02-28 + */ +public interface PlatformDictService extends IService { + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/PlatformDictTypeService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/PlatformDictTypeService.java new file mode 100644 index 00000000..0cab891c --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/PlatformDictTypeService.java @@ -0,0 +1,14 @@ +package com.czg.product.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.PlatformDictType; + +/** + * 平台配置类型 服务层。 + * + * @author zs + * @since 2025-02-28 + */ +public interface PlatformDictTypeService extends IService { + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/SysDictService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/SysDictService.java new file mode 100644 index 00000000..b1ce80f2 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/SysDictService.java @@ -0,0 +1,14 @@ +package com.czg.product.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.SysDict; + +/** + * 数据字典 服务层。 + * + * @author zs + * @since 2025-02-28 + */ +public interface SysDictService extends IService { + +} diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/enums/LogoEnum.java b/cash-common/cash-common-tools/src/main/java/com/czg/enums/LogoEnum.java new file mode 100644 index 00000000..002519a9 --- /dev/null +++ b/cash-common/cash-common-tools/src/main/java/com/czg/enums/LogoEnum.java @@ -0,0 +1,85 @@ +package com.czg.enums; + +/** + * @author 12847 + */ + +public enum LogoEnum { + url1(1,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/IMG_0299.PNG"), + url2(2,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/ffaab08f6a62103593646bf36dbaa24c.jpeg"), + url3(3,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/fe6c4572004f9aa7716bff89c4c56783.jpeg"), + url4(4,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/fb56ef7c59d46835e6ff4b5c494aed5a.jpeg"), + url5(5,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/f8469a7760c7f584ab55e47b60cd3829.jpeg"), + url6(6,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/f73810e20530a70dd068e0e0a82677d4.jpeg"), + url7(7,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/f66361c48515ba9b2a03d9d72829d675.jpeg"), + url8(8,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/f2be456f85849922ba838e7eb4694272.jpeg"), + url9(9,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e9fca54f0320644291848338184b6c08.jpeg"), + url10(10,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e9e574fdedb43831801697a610603044.jpeg"), + url11(11,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e913ec3afe3520b9a638e16d298b401f.jpeg"), + url12(12,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e87d19da0cb5af9b53f485117b665cc9.jpeg"), + url13(13,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e847667f37d86dc4a48ffcf69bb1a964.jpeg"), + url14(14,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e731f8a883ab1ef2a71487f2eb5b0e38.jpeg"), + url15(15,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e681a9a281760f275f4b9d11c01a5869.jpeg"), + url16(16,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e41fa3916c86d43904a66d1174b81080.jpeg"), + url17(17,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e138425037e7ba3eded9ab828e3f39d2.jpeg"), + url18(18,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e0d4e933083418e6c4795fb6bf5db628.jpeg"), + url19(19,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/e07b1933b0ad75f428339ffc79ee4fef.jpeg"), + url20(20,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/d4ac63680f417b49210aa54cf6e03e77.jpeg"), + url21(21,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/d44a8bccd46f4fa6c340e825bba5c338.jpeg"), + url22(22,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/cd794c0c5dd3b212e7c46eaa7c3a85cc.jpeg"), + url23(23,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/ccf1f255cd30c2aed0b421213df01863.jpeg"), + url24(24,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/cbe7897bee2d057eaaeaa1604d5bd167.jpeg"), + url25(25,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/cae19ed2c2c1c749e388730ef1cbb596.jpeg"), + url26(26,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/c90a7e5d7a9a95a48dac8aecfab5c8e1.jpeg"), + url27(27,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/c72ec32dbb7c0a42ca6a0a483a0d99ab.jpeg"), + url28(28,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/c72ec32dbb7c0a42ca6a0a483a0d99ab.jpeg"), + url29(29,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/c451f57dde1fcbbe4afe5766184084da.jpeg"), + url30(30,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/a9a9e9eb047009f79bc22290470c2932.jpeg"), + url31(31,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/aef489a444793e37e2f33aeb3fe1fe13.jpeg"), + url32(32,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/b0f4a2d7ab851fb2ea01446b722c5631.jpeg"), + url33(33,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/b2d643c11850042ff2932451c84940c3.jpeg"), + url34(34,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/bdf1ebd620f759f703631b805216ca11.jpeg"), + url35(35,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/be1e70097583d1a08a9951925d66ef33.jpeg"), + url36(36,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/c3f38f6604713f13474a5e2f1145e481.jpeg"), + url37(37,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/c27da8b2c154998ebf7300c49cef649a.jpeg"), + url38(38,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/c26400a670209b60abcd28bfc6d22171.jpeg"), + url39(39,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/a906414986b1bee60cec709dabf2103b.jpeg"), + url40(40,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/a6d8629c155b59814e4d772fb5e6ec6a.jpeg"), + url41(41,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/a6a78d2a64c49cf62e37475eb66e351c.jpeg"), + url42(42,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/a571ccde02b075656f354b593533b00c.jpeg"), + url43(43,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/a0be3632c238d1a8e24e51ff8942efc6.jpeg"), + url44(44,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/9fca88b43ed09ddbeb4803ceab4f356f.jpeg"), + url45(45,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/86ad712e29369b9f56ca93a94f7a5d67.jpeg"), + url46(46,"https://cashier-oss.oss-cn-beijing.aliyuncs.com/status/%E6%BE%B6%E6%9D%91%E5%84%9A/88d4ca4146196992b48a52f62a690bf0.jpeg"), + ; + + private Integer key; + + private String url; + + public Integer getKey() { + return key; + } + + public String getUrl() { + return url; + } + + LogoEnum(Integer key, String url) { + this.key = key; + this.url = url; + } + + public static String getValueByKey(Integer key) { + if(key == null){ + return ""; + } + LogoEnum[] urlEnums = values(); + for (LogoEnum logo : urlEnums) { + if (logo.key.equals(key)) { + return logo.getUrl(); + } + } + return ""; + } +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ProductMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ProductMapper.java deleted file mode 100644 index 3bd7f1df..00000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ProductMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.czg.service.account.mapper; - -import com.czg.product.entity.Product; -import com.mybatisflex.core.BaseMapper; - -/** - * 商品 映射层。 - * - * @author zs - * @since 2025-02-20 - */ -public interface ProductMapper extends BaseMapper { - -} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/mapper/PlatformDictMapper.java b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/PlatformDictMapper.java new file mode 100644 index 00000000..ffb492b4 --- /dev/null +++ b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/PlatformDictMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.product.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.PlatformDict; + +/** + * 平台配置 映射层。 + * + * @author zs + * @since 2025-02-28 + */ +public interface PlatformDictMapper extends BaseMapper { + +} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/mapper/PlatformDictTypeMapper.java b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/PlatformDictTypeMapper.java new file mode 100644 index 00000000..f12db9b4 --- /dev/null +++ b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/PlatformDictTypeMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.product.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.PlatformDictType; + +/** + * 平台配置类型 映射层。 + * + * @author zs + * @since 2025-02-28 + */ +public interface PlatformDictTypeMapper extends BaseMapper { + +} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java index fd02f72d..5c5c01b2 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/ProductMapper.java @@ -32,4 +32,7 @@ public interface ProductMapper extends BaseMapper { List selectGroupProductList(@Param("shopId") Long shopId); ShopProductInfoVo selectOneProductInfo(@Param("id") Long id, @Param("shopId") Long shopId); -} \ No newline at end of file + + List selectCouponProBySaleNum(); + +} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/mapper/SysDictMapper.java b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/SysDictMapper.java new file mode 100644 index 00000000..cbbc9d76 --- /dev/null +++ b/cash-service/product-service/src/main/java/com/czg/service/product/mapper/SysDictMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.product.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.SysDict; + +/** + * 数据字典 映射层。 + * + * @author zs + * @since 2025-02-28 + */ +public interface SysDictMapper extends BaseMapper { + +} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/HomePageServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/HomePageServiceImpl.java new file mode 100644 index 00000000..ffd21139 --- /dev/null +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/HomePageServiceImpl.java @@ -0,0 +1,120 @@ +package com.czg.service.product.service.impl; + +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import com.czg.account.entity.PlatformDict; +import com.czg.account.entity.ShopInfo; +import com.czg.account.entity.SysDict; +import com.czg.product.service.HomePageService; +import com.czg.product.service.PlatformDictService; +import com.czg.product.service.SysDictService; +import com.czg.account.vo.home.BannerInfoVo; +import com.czg.account.vo.home.HomePageVO; +import com.czg.account.vo.home.HotRankingVO; +import com.czg.enums.LogoEnum; +import com.czg.product.entity.Product; +import com.czg.product.service.ProdSkuService; +import com.czg.product.service.ProductService; +import com.czg.service.product.mapper.ProductMapper; +import com.czg.utils.JoinQueryWrapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.mybatisflex.core.query.QueryWrapper; +import jakarta.annotation.Resource; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author Administrator + */ +@Service +public class HomePageServiceImpl implements HomePageService { + private static final Character[] CHINESE_CHARS_ARRAY = { + '你', '我', '他', '她', '它', '们', '这', '里', '那', '里', '多', '少', '是', '否', + '好', '坏', '快', '慢', '上', '下', '左', '右', '前', '后', '高', '低', '大', '小', + '长', '短', '方', '圆', '胖', '瘦', '黑', '白', '红', '绿', '蓝', '黄', '紫', '粉', + '红', '桔', '红', '橙', '黄', '棕', '灰', '褐' + }; + + + @Resource + private PlatformDictService platformDictService; + @Resource + private SysDictService sysDictService; + @Resource + private ProductService productService; + @Resource + private ProductMapper productMapper; + @Resource + private ProdSkuService prodSkuService; + + /** + * 小条幅随机数据 + * @return + */ + private List bannerVoRandom(){ + List bannerInfoList = new ArrayList<>(); + for (int i = 0; i < 10; i++) { + String nickName = RandomUtil.randomEle(CHINESE_CHARS_ARRAY) + "***"; + BannerInfoVo bannerInfoVo = new BannerInfoVo(); + bannerInfoVo.setName(nickName); + bannerInfoVo.setLogo(LogoEnum.getValueByKey(RandomUtil.randomInt())); + // 生成 0 到 1000 之间的随机金额,保留两位小数 + double amount = RandomUtil.randomDouble(0, 1000); + // 格式化为两位小数 + bannerInfoVo.setMoney(String.format("%.2f", amount)); + bannerInfoList.add(bannerInfoVo); + } + return bannerInfoList; + } + + @Override + public HomePageVO getHomeInfo() { + HomePageVO homeUpVO = new HomePageVO(); + //轮播图 + + List platformDictList = platformDictService.list(new QueryWrapper().in(PlatformDict::getType, "carousel", "homeDistrict"));; + Map> groupedByType = platformDictList.stream() + .collect(Collectors.groupingBy(PlatformDict::getType)); + //轮播图 + homeUpVO.setBannerList(groupedByType.get("carousel")); + //金刚区 + homeUpVO.setDistrict(groupedByType.get("homeDistrict")); + //小条幅 + homeUpVO.setFreeBannerList(bannerVoRandom()); + + // 销量榜 + List productList = productMapper.selectCouponProBySaleNum(); + HotRankingVO hotRankingVO = new HotRankingVO(); + hotRankingVO.setHotList(productList); + homeUpVO.setHotRanking(hotRankingVO); + + List sysDictList = sysDictService.list(new QueryWrapper().eq(SysDict::getType, "home").eq(SysDict::getStatus, 1)); + for (SysDict sysDict : sysDictList) { + if (sysDict.getIsChild().equals(1)) { + sysDict.setDetail(sysDictService.list(new QueryWrapper().eq(SysDict::getReleId, sysDict.getId()).eq(SysDict::getStatus, 1))); + } + sysDict.setIsChild((sysDict.getIsChild() == null || sysDict.getIsChild().equals(0)) ? 0 : 1); + } + homeUpVO.setMenuList(sysDictList); + + return homeUpVO; + } + + @Override + public Object getProd(String lng, String lat, String address, Integer classify, Integer orderType, Integer distanceType) { + QueryWrapper queryWrapper = new QueryWrapper(); + if (StrUtil.isNotBlank(address)) { + queryWrapper.and(JoinQueryWrapper.column(ShopInfo::getCities).like(address).or(JoinQueryWrapper.column(ShopInfo::getDistricts).like(address))); + } + if (classify != null) { + queryWrapper.eq(Product::getCategoryId, classify); + } + return null; + } +} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/PlatformDictServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/PlatformDictServiceImpl.java new file mode 100644 index 00000000..4a8c9f2a --- /dev/null +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/PlatformDictServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.service.product.service.impl; + +import com.czg.service.product.mapper.PlatformDictMapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.PlatformDict; +import com.czg.product.service.PlatformDictService; +import org.springframework.stereotype.Service; + +/** + * 平台配置 服务层实现。 + * + * @author zs + * @since 2025-02-28 + */ +@Service +public class PlatformDictServiceImpl extends ServiceImpl implements PlatformDictService{ + +} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/PlatformDictTypeServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/PlatformDictTypeServiceImpl.java new file mode 100644 index 00000000..ef22214c --- /dev/null +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/PlatformDictTypeServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.service.product.service.impl; + +import com.czg.service.product.mapper.PlatformDictTypeMapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.PlatformDictType; +import com.czg.product.service.PlatformDictTypeService; +import org.springframework.stereotype.Service; + +/** + * 平台配置类型 服务层实现。 + * + * @author zs + * @since 2025-02-28 + */ +@Service +public class PlatformDictTypeServiceImpl extends ServiceImpl implements PlatformDictTypeService{ + +} diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/SysDictServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/SysDictServiceImpl.java new file mode 100644 index 00000000..d957d51b --- /dev/null +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/SysDictServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.service.product.service.impl; + +import com.czg.service.product.mapper.SysDictMapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.SysDict; +import com.czg.product.service.SysDictService; +import org.springframework.stereotype.Service; + +/** + * 数据字典 服务层实现。 + * + * @author zs + * @since 2025-02-28 + */ +@Service +public class SysDictServiceImpl extends ServiceImpl implements SysDictService{ + +} diff --git a/cash-service/product-service/src/main/resources/mapper/PlatformDictMapper.xml b/cash-service/product-service/src/main/resources/mapper/PlatformDictMapper.xml new file mode 100644 index 00000000..9cd55a8d --- /dev/null +++ b/cash-service/product-service/src/main/resources/mapper/PlatformDictMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/product-service/src/main/resources/mapper/PlatformDictTypeMapper.xml b/cash-service/product-service/src/main/resources/mapper/PlatformDictTypeMapper.xml new file mode 100644 index 00000000..87fdc6e6 --- /dev/null +++ b/cash-service/product-service/src/main/resources/mapper/PlatformDictTypeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml b/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml index 83f15b4b..5917f1c6 100644 --- a/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml +++ b/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml @@ -150,4 +150,13 @@ and t1.id = #{id} - \ No newline at end of file + + + diff --git a/cash-service/account-service/src/main/resources/mapper/ProductMapper.xml b/cash-service/product-service/src/main/resources/mapper/SysDictMapper.xml similarity index 73% rename from cash-service/account-service/src/main/resources/mapper/ProductMapper.xml rename to cash-service/product-service/src/main/resources/mapper/SysDictMapper.xml index 0fe4cf13..d5290655 100644 --- a/cash-service/account-service/src/main/resources/mapper/ProductMapper.xml +++ b/cash-service/product-service/src/main/resources/mapper/SysDictMapper.xml @@ -2,6 +2,6 @@ - +