Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
ec7c7d1ec0
|
|
@ -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("""
|
||||
|
|
|
|||
|
|
@ -85,6 +85,17 @@ public class UShopUserController {
|
|||
.eq(ShopUserFlow::getUserId, StpKit.USER.getLoginIdAsLong()).orderBy(ShopUserFlow::getId, false)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取余额余额明细详情
|
||||
* @param id 明细id
|
||||
* @return 明细数据
|
||||
*/
|
||||
@GetMapping("/moneyRecord/detail")
|
||||
public CzgResult<ShopUserFlow> getMoneyRecordDetail(@RequestParam Integer id) {
|
||||
return CzgResult.success(shopUserFlowService.getOne(new QueryWrapper().eq(ShopUserFlow::getShopId, StpKit.USER.getShopId())
|
||||
.eq(ShopUserFlow::getUserId, StpKit.USER.getLoginIdAsLong()).eq(ShopUserFlow::getId, id)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取积分明细
|
||||
* @return 分页数据
|
||||
|
|
@ -95,5 +106,16 @@ public class UShopUserController {
|
|||
.eq(PointsExchangeRecord::getUserId, StpKit.USER.getLoginIdAsLong()).orderBy(PointsExchangeRecord::getId, false)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取积分明细详情
|
||||
* @param id 明细id
|
||||
* @return 明细数据
|
||||
*/
|
||||
@GetMapping("/pointsRecord/detail")
|
||||
public CzgResult<PointsExchangeRecord> getPointsRecordDetail(@RequestParam Integer id) {
|
||||
return CzgResult.success(pointsExchangeRecordService.getOne(new QueryWrapper().eq(PointsExchangeRecord::getShopId, StpKit.USER.getShopId())
|
||||
.eq(PointsExchangeRecord::getUserId, StpKit.USER.getLoginIdAsLong()).eq(PointsExchangeRecord::getId, id)));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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<SysDict> detail;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -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<PlatformDict> bannerList;
|
||||
/**
|
||||
* 免单轮播列表
|
||||
*/
|
||||
private List<BannerInfoVo> freeBannerList;
|
||||
/**
|
||||
* 功能入口按钮组
|
||||
*/
|
||||
private List<PlatformDict> district;
|
||||
/**
|
||||
* 热销信息
|
||||
*/
|
||||
private HotRankingVO hotRanking;
|
||||
|
||||
/**
|
||||
* 今日上新商品信息
|
||||
*/
|
||||
private List<Product> todayProInfo;
|
||||
|
||||
/**
|
||||
* 菜单列表
|
||||
*/
|
||||
private List<SysDict> menuList;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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<Product> hotList;
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
@ -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<PlatformDict> {
|
||||
|
||||
}
|
||||
|
|
@ -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<PlatformDictType> {
|
||||
|
||||
}
|
||||
|
|
@ -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<SysDict> {
|
||||
|
||||
}
|
||||
|
|
@ -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 "";
|
||||
}
|
||||
}
|
||||
|
|
@ -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<Product> {
|
||||
|
||||
}
|
||||
|
|
@ -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<PlatformDict> {
|
||||
|
||||
}
|
||||
|
|
@ -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<PlatformDictType> {
|
||||
|
||||
}
|
||||
|
|
@ -32,4 +32,7 @@ public interface ProductMapper extends BaseMapper<Product> {
|
|||
List<ShopProductVo> selectGroupProductList(@Param("shopId") Long shopId);
|
||||
|
||||
ShopProductInfoVo selectOneProductInfo(@Param("id") Long id, @Param("shopId") Long shopId);
|
||||
}
|
||||
|
||||
List<Product> selectCouponProBySaleNum();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<SysDict> {
|
||||
|
||||
}
|
||||
|
|
@ -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<BannerInfoVo> bannerVoRandom(){
|
||||
List<BannerInfoVo> 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<PlatformDict> platformDictList = platformDictService.list(new QueryWrapper().in(PlatformDict::getType, "carousel", "homeDistrict"));;
|
||||
Map<String, List<PlatformDict>> groupedByType = platformDictList.stream()
|
||||
.collect(Collectors.groupingBy(PlatformDict::getType));
|
||||
//轮播图
|
||||
homeUpVO.setBannerList(groupedByType.get("carousel"));
|
||||
//金刚区
|
||||
homeUpVO.setDistrict(groupedByType.get("homeDistrict"));
|
||||
//小条幅
|
||||
homeUpVO.setFreeBannerList(bannerVoRandom());
|
||||
|
||||
// 销量榜
|
||||
List<Product> productList = productMapper.selectCouponProBySaleNum();
|
||||
HotRankingVO hotRankingVO = new HotRankingVO();
|
||||
hotRankingVO.setHotList(productList);
|
||||
homeUpVO.setHotRanking(hotRankingVO);
|
||||
|
||||
List<SysDict> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<PlatformDictMapper, PlatformDict> implements PlatformDictService{
|
||||
|
||||
}
|
||||
|
|
@ -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<PlatformDictTypeMapper, PlatformDictType> implements PlatformDictTypeService{
|
||||
|
||||
}
|
||||
|
|
@ -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<SysDictMapper, SysDict> implements SysDictService{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.czg.service.product.mapper.PlatformDictMapper">
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.czg.service.product.mapper.PlatformDictTypeMapper">
|
||||
|
||||
</mapper>
|
||||
|
|
@ -150,4 +150,13 @@
|
|||
and t1.id = #{id}
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
<select id="selectCouponProBySaleNum" resultType="com.czg.product.entity.Product">
|
||||
SELECT a.*
|
||||
FROM tb_product AS a
|
||||
LEFT JOIN tb_prod_sku AS b ON a.id = b.product_id
|
||||
WHERE a.type = 'coupon'
|
||||
ORDER BY b.real_sales_number
|
||||
LIMIT 2
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.czg.service.account.mapper.ProductMapper">
|
||||
<mapper namespace="com.czg.service.product.mapper.SysDictMapper">
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue