feat(shop): 添加店铺智能柜数量统计功能
在ShopDTO、ShopEntity和ShopMapper中添加cabinetCount字段,用于统计每个店铺关联的智能柜数量 修改查询逻辑,通过LEFT JOIN和COUNT计算智能柜数量 调整SearchShopQuery中的查询条件以支持新的统计功能
This commit is contained in:
parent
a7d0c891b9
commit
ef875a0810
|
@ -498,8 +498,12 @@ public class QywxScheduleJob {
|
||||||
localUser.setGender(String.valueOf(wxUser.getGender()));
|
localUser.setGender(String.valueOf(wxUser.getGender()));
|
||||||
localUser.setEmail(wxUser.getEmail());
|
localUser.setEmail(wxUser.getEmail());
|
||||||
localUser.setBizMail(wxUser.getBiz_mail());
|
localUser.setBizMail(wxUser.getBiz_mail());
|
||||||
localUser.setDirectLeader(StringUtils.join(wxUser.getDirect_leader(), ","));
|
if (wxUser.getDirect_leader()!= null && !wxUser.getDirect_leader().isEmpty()) {
|
||||||
localUser.setIsLeaderInDept(StringUtils.join(wxUser.getIs_leader_in_dept(), ","));
|
localUser.setDirectLeader(wxUser.getDirect_leader().get(0));
|
||||||
|
}
|
||||||
|
if (wxUser.getIs_leader_in_dept()!= null &&!wxUser.getIs_leader_in_dept().isEmpty()) {
|
||||||
|
localUser.setIsLeaderInDept(String.valueOf(wxUser.getIs_leader_in_dept().get(0)));
|
||||||
|
}
|
||||||
localUser.setTelephone(wxUser.getTelephone());
|
localUser.setTelephone(wxUser.getTelephone());
|
||||||
localUser.setAlias(wxUser.getAlias());
|
localUser.setAlias(wxUser.getAlias());
|
||||||
localUser.setAddress(wxUser.getAddress());
|
localUser.setAddress(wxUser.getAddress());
|
||||||
|
@ -533,8 +537,12 @@ public class QywxScheduleJob {
|
||||||
newUser.setGender(String.valueOf(wxUser.getGender()));
|
newUser.setGender(String.valueOf(wxUser.getGender()));
|
||||||
newUser.setEmail(wxUser.getEmail());
|
newUser.setEmail(wxUser.getEmail());
|
||||||
newUser.setBizMail(wxUser.getBiz_mail());
|
newUser.setBizMail(wxUser.getBiz_mail());
|
||||||
newUser.setDirectLeader(StringUtils.join(wxUser.getDirect_leader(), ","));
|
if (wxUser.getDirect_leader()!= null && !wxUser.getDirect_leader().isEmpty()) {
|
||||||
newUser.setIsLeaderInDept(StringUtils.join(wxUser.getIs_leader_in_dept(), ","));
|
newUser.setDirectLeader(wxUser.getDirect_leader().get(0));
|
||||||
|
}
|
||||||
|
if (wxUser.getIs_leader_in_dept()!= null &&!wxUser.getIs_leader_in_dept().isEmpty()) {
|
||||||
|
newUser.setIsLeaderInDept(String.valueOf(wxUser.getIs_leader_in_dept().get(0)));
|
||||||
|
}
|
||||||
newUser.setTelephone(wxUser.getTelephone());
|
newUser.setTelephone(wxUser.getTelephone());
|
||||||
newUser.setAlias(wxUser.getAlias());
|
newUser.setAlias(wxUser.getAlias());
|
||||||
newUser.setAddress(wxUser.getAddress());
|
newUser.setAddress(wxUser.getAddress());
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class ShopApplicationService {
|
||||||
private final ShopModelFactory shopModelFactory;
|
private final ShopModelFactory shopModelFactory;
|
||||||
|
|
||||||
public PageDTO<ShopDTO> getShopList(SearchShopQuery<ShopEntity> query) {
|
public PageDTO<ShopDTO> getShopList(SearchShopQuery<ShopEntity> query) {
|
||||||
Page<ShopEntity> page = shopService.page(query.toPage(), query.toQueryWrapper());
|
Page<ShopEntity> page = shopService.getShopList(query.toPage(), query.toQueryWrapper());
|
||||||
List<ShopDTO> dtoList = page.getRecords().stream()
|
List<ShopDTO> dtoList = page.getRecords().stream()
|
||||||
.map(ShopDTO::new)
|
.map(ShopDTO::new)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
|
@ -55,6 +55,10 @@ public class ShopEntity extends BaseEntity<ShopEntity> {
|
||||||
@TableField("cover_img")
|
@TableField("cover_img")
|
||||||
private String coverImg;
|
private String coverImg;
|
||||||
|
|
||||||
|
@ApiModelProperty("关联的智能柜数量")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer cabinetCount;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Serializable pkVal() {
|
public Serializable pkVal() {
|
||||||
return this.shopId;
|
return this.shopId;
|
||||||
|
|
|
@ -18,8 +18,9 @@ import java.util.List;
|
||||||
* @since 2025-05-09
|
* @since 2025-05-09
|
||||||
*/
|
*/
|
||||||
public interface ShopMapper extends BaseMapper<ShopEntity> {
|
public interface ShopMapper extends BaseMapper<ShopEntity> {
|
||||||
@Select("SELECT * " +
|
@Select("SELECT s.*, COUNT(sc.cabinet_id) AS cabinetCount " +
|
||||||
"FROM shop " +
|
"FROM shop s " +
|
||||||
|
"LEFT JOIN smart_cabinet sc ON sc.shop_id = s.shop_id AND sc.deleted = 0 " +
|
||||||
"${ew.customSqlSegment}")
|
"${ew.customSqlSegment}")
|
||||||
Page<ShopEntity> getShopList(
|
Page<ShopEntity> getShopList(
|
||||||
Page<ShopEntity> page,
|
Page<ShopEntity> page,
|
||||||
|
|
|
@ -40,4 +40,7 @@ public class ShopDTO {
|
||||||
|
|
||||||
@ExcelColumn(name = "封面图URL")
|
@ExcelColumn(name = "封面图URL")
|
||||||
private String coverImg;
|
private String coverImg;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "智能柜数量")
|
||||||
|
private Integer cabinetCount;
|
||||||
}
|
}
|
|
@ -25,13 +25,14 @@ public class SearchShopQuery<T> extends AbstractPageQuery<T> {
|
||||||
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
queryWrapper
|
queryWrapper
|
||||||
.like(StrUtil.isNotEmpty(shopName), "shop_name", shopName)
|
.like(StrUtil.isNotEmpty(shopName), "s.shop_name", shopName)
|
||||||
.eq(StrUtil.isNotEmpty(enable), "enable", enable)
|
.eq(StrUtil.isNotEmpty(enable), "s.enable", enable)
|
||||||
.eq(StrUtil.isNotEmpty(corpid), "corpid", corpid)
|
.eq(StrUtil.isNotEmpty(corpid), "s.corpid", corpid)
|
||||||
.eq(belongType != null, "belong_type", belongType)
|
.eq(belongType != null, "s.belong_type", belongType)
|
||||||
.eq(mode != null, "mode", mode)
|
.eq(mode != null, "s.mode", mode)
|
||||||
.eq(balanceEnable != null, "balance_enable", balanceEnable)
|
.eq(balanceEnable != null, "s.balance_enable", balanceEnable)
|
||||||
.between(startTime != null && endTime != null, "create_time", startTime, endTime);
|
.between(startTime != null && endTime != null, "s.create_time", startTime, endTime)
|
||||||
|
.groupBy("s.shop_id");
|
||||||
|
|
||||||
this.timeRangeColumn = "create_time";
|
this.timeRangeColumn = "create_time";
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue