feat:handleDecorationTeam

This commit is contained in:
苏竹红
2025-11-03 15:09:54 +08:00
parent 18fb551a72
commit 614f42f7ca
17 changed files with 493 additions and 14 deletions

View File

@@ -1,9 +1,16 @@
package com.cool.store.dao.decoration;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dto.decoration.DecorationListDTO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.decoration.ShopDecorationAssignDO;
import com.cool.store.mapper.decoration.ShopDecorationAssignMapper;
import com.cool.store.request.decoration.DecorationListRequest;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author suzhuhong
@@ -15,7 +22,50 @@ public class ShopDecorationAssignDAO {
@Resource
private ShopDecorationAssignMapper shopDecorationAssignMapper;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
public Integer insert(ShopDecorationAssignDO shopDecorationAssignDO) {
if (shopDecorationAssignDO == null){
return 0;
}
return shopDecorationAssignMapper.insert(shopDecorationAssignDO);
}
public ShopDecorationAssignDO getById(Long id) {
if (id == null){
return null;
}
return shopDecorationAssignMapper.selectByPrimaryKey(id);
}
public Integer update(ShopDecorationAssignDO shopDecorationAssignDO) {
if (shopDecorationAssignDO == null){
return 0;
}
return shopDecorationAssignMapper.updateByPrimaryKey(shopDecorationAssignDO);
}
public Integer countByTeamId(Long teamId) {
if (teamId == null){
return 0;
}
return shopDecorationAssignMapper.countByTeamId(teamId);
}
public List<DecorationListDTO> listByCondition(DecorationListRequest request) {
if (request == null){
return null;
}
if (request.getWantShopAreaId()!=null){
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(request.getWantShopAreaId());
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOList = hyOpenAreaInfoDAO.queryByKeyword(hyOpenAreaInfoDO.getAreaPath(), null, null, false);
List<Long> wantShopAreaIds = hyOpenAreaInfoDOList.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toList());
request.setWantShopAreaIds(wantShopAreaIds);
}
return shopDecorationAssignMapper.listByCondition(request);
}
}

View File

@@ -1,7 +1,30 @@
package com.cool.store.mapper.decoration;
import com.cool.store.dto.decoration.DecorationListDTO;
import com.cool.store.entity.decoration.ShopDecorationAssignDO;
import com.cool.store.request.decoration.DecorationListRequest;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface ShopDecorationAssignMapper extends Mapper<ShopDecorationAssignDO> {
/**
* 查询团队被门店使用次数
* @param teamId
* @return
*/
Integer countByTeamId(Long teamId);
/**
* 查询分配装修团队列表
* @param request
* @return
*/
List<DecorationListDTO> listByCondition(@Param("request") DecorationListRequest request);
}

View File

@@ -12,4 +12,64 @@
<result column="created_time" jdbcType="TIMESTAMP" property="createdTime" />
<result column="updated_time" jdbcType="TIMESTAMP" property="updatedTime" />
</resultMap>
<select id="countByTeamId" resultType="java.lang.Integer">
select count(1) from shop_decoration_assign where decoration_team_id = #{teamId}
</select>
<select id="listByCondition" resultType="com.cool.store.dto.decoration.DecorationListDTO">
SELECT
zsda.shop_id AS shopId,
zsda.decoration_desc_status as decorationDescStatus,
xsi.shop_name AS shopName,
xsi.shop_code AS shopCode,
xsi.region_id AS regionId,
xsi.province AS province,
xsi.city AS city,
xsi.district AS district,
xsi.detail_address AS detailAddress,
xsi.store_type AS storeType,
xsf.sign_type AS signType
FROM zxjp_shop_decoration_assign zsda
LEFT JOIN xfsg_shop_info xsi ON zsda.shop_id = xsi.id
LEFT JOIN xfsg_sign_franchise xsf ON zsda.shop_id = xsf.shop_id
<where>
<if test="keyword != null and keyword != ''">
AND (xsi.shop_name LIKE CONCAT('%', #{keyword}, '%') OR xsi.shop_code LIKE CONCAT('%', #{keyword}, '%'))
</if>
<if test="storeType != null">
AND xsi.store_type = #{storeType}
</if>
<if test="signType != null">
AND xsf.sign_type = #{signType}
</if>
<if test="regionId != null">
AND xsi.region_id = #{regionId}
</if>
<if test="province != null and province != ''">
AND xsi.province = #{province}
</if>
<if test="city != null and city != ''">
AND xsi.city = #{city}
</if>
<if test="district != null and district != ''">
AND xsi.district = #{district}
</if>
<if test="decorationDescStatus != null">
AND zsda.decoration_desc_status = #{decorationDescStatus}
</if>
<if test="wantShopAreaIds != null and wantShopAreaIds.size() > 0">
and b.want_shop_area_id in
<foreach collection="wantShopAreaIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>