Commit 7976987c by guojuxing

会员画像字段筛选

parent e6421149
...@@ -11,6 +11,8 @@ public class EnterprisePortraitRelDTO implements Serializable{ ...@@ -11,6 +11,8 @@ public class EnterprisePortraitRelDTO implements Serializable{
*/ */
private Integer portraitRelationId; private Integer portraitRelationId;
private String portraitName;
/** /**
* 会员画像代码 * 会员画像代码
*/ */
...@@ -117,4 +119,13 @@ public class EnterprisePortraitRelDTO implements Serializable{ ...@@ -117,4 +119,13 @@ public class EnterprisePortraitRelDTO implements Serializable{
this.status = status; this.status = status;
return this; return this;
} }
public String getPortraitName() {
return portraitName;
}
public EnterprisePortraitRelDTO setPortraitName(String portraitName) {
this.portraitName = portraitName;
return this;
}
} }
...@@ -13,9 +13,10 @@ public interface EnterprisePortraitRelApiService { ...@@ -13,9 +13,10 @@ public interface EnterprisePortraitRelApiService {
* @Description: * @Description:

* @author guojuxing 
* @author guojuxing
* @param enterpriseId
 * @param enterpriseId

* @param status 1:有效 2:回收站
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.cloud.dto.EnterprisePortraitRelDTO>>
 * @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.cloud.dto.EnterprisePortraitRelDTO>>


*/ 
*/
ServiceResponse<List<EnterprisePortraitRelDTO>> listPortraitField(Integer enterpriseId); ServiceResponse<List<EnterprisePortraitRelDTO>> listPortraitField(Integer enterpriseId, Integer status);
/** /**
* 批量新增 * 批量新增
...@@ -26,4 +27,32 @@ public interface EnterprisePortraitRelApiService { ...@@ -26,4 +27,32 @@ public interface EnterprisePortraitRelApiService {
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
 * @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>


*/ 
*/
ServiceResponse<Void> insertForeach(List<EnterprisePortraitRelDTO> list); ServiceResponse<Void> insertForeach(List<EnterprisePortraitRelDTO> list);
ServiceResponse<Void> savePortraitField( Integer enterpriseId, String fieldCode, String fieldName, Integer dataType);
/**
* 字段排序
* @Title: sort

* @Description:

* @author guojuxing
* @param enterpriseId
* @param fieldCode 字段code
* @param dataType 1:基础画像 2:自定义
* @param sort
拖动的位置
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>


*/
ServiceResponse<Void> sort(Integer enterpriseId, String fieldCode, Integer dataType, Integer sort);
/**
* 移入移除回收站
* @Title: updateStatus

* @Description:

* @author guojuxing
* @param enterpriseId
* @param fieldCode
* @param dataType

* @param status 0:移入回收站 1:移除回收站
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>


*/
ServiceResponse<Void> updateStatus(Integer enterpriseId, String fieldCode, Integer dataType, Integer status);
} }
...@@ -64,7 +64,7 @@ public interface EnterprisePortraitRelMapper { ...@@ -64,7 +64,7 @@ public interface EnterprisePortraitRelMapper {
* @param enterpriseId
 * @param enterpriseId

* @return java.util.List<com.gic.cloud.entity.TabGicEnterprisePortraitRel>
 * @return java.util.List<com.gic.cloud.entity.TabGicEnterprisePortraitRel>


*/ 
*/
List<TabGicEnterprisePortraitRel> listPortraitField(@Param("enterpriseId") Integer enterpriseId); List<TabGicEnterprisePortraitRel> listPortraitField(@Param("enterpriseId") Integer enterpriseId, @Param("status") Integer status);
/** /**
* 批量插入 * 批量插入
...@@ -75,4 +75,12 @@ public interface EnterprisePortraitRelMapper { ...@@ -75,4 +75,12 @@ public interface EnterprisePortraitRelMapper {
* @return void
 * @return void


 */ 
 */
void insertForeach(@Param("list") List<EnterprisePortraitRelDTO> list); void insertForeach(@Param("list") List<EnterprisePortraitRelDTO> list);
TabGicEnterprisePortraitRel getPortraitField(@Param("enterpriseId") Integer enterpriseId,
@Param("fieldCode") String fieldCode,
@Param("dataType") Integer dataType);
int getMaxSort(@Param("enterpriseId") Integer enterpriseId, @Param("dataType") Integer dataType);
List<TabGicEnterprisePortraitRel> listByDataType(@Param("enterpriseId") Integer enterpriseId, @Param("dataType") Integer dataType);
} }
\ No newline at end of file
...@@ -11,6 +11,8 @@ public class TabGicEnterprisePortraitRel { ...@@ -11,6 +11,8 @@ public class TabGicEnterprisePortraitRel {
*/ */
private Integer portraitRelationId; private Integer portraitRelationId;
private String portraitName;
/** /**
* 会员画像代码 * 会员画像代码
*/ */
...@@ -117,4 +119,13 @@ public class TabGicEnterprisePortraitRel { ...@@ -117,4 +119,13 @@ public class TabGicEnterprisePortraitRel {
this.status = status; this.status = status;
return this; return this;
} }
public String getPortraitName() {
return portraitName;
}
public TabGicEnterprisePortraitRel setPortraitName(String portraitName) {
this.portraitName = portraitName;
return this;
}
} }
\ No newline at end of file
...@@ -3,12 +3,15 @@ package com.gic.cloud.service.outer.impl; ...@@ -3,12 +3,15 @@ package com.gic.cloud.service.outer.impl;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.cloud.dao.mapper.EnterprisePortraitRelMapper; import com.gic.cloud.dao.mapper.EnterprisePortraitRelMapper;
import com.gic.cloud.dto.EnterprisePortraitRelDTO; import com.gic.cloud.dto.EnterprisePortraitRelDTO;
import com.gic.cloud.entity.TabGicEnterprisePortraitRel;
import com.gic.cloud.service.EnterprisePortraitRelApiService; import com.gic.cloud.service.EnterprisePortraitRelApiService;
import com.gic.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.error.ErrorCode;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
...@@ -18,8 +21,111 @@ public class EnterprisePortraitRelApiServiceImpl implements EnterprisePortraitRe ...@@ -18,8 +21,111 @@ public class EnterprisePortraitRelApiServiceImpl implements EnterprisePortraitRe
private EnterprisePortraitRelMapper enterprisePortraitRelMapper; private EnterprisePortraitRelMapper enterprisePortraitRelMapper;
@Override @Override
public ServiceResponse<List<EnterprisePortraitRelDTO>> listPortraitField(Integer enterpriseId) { public ServiceResponse<List<EnterprisePortraitRelDTO>> listPortraitField(Integer enterpriseId, Integer status) {
return ServiceResponse.success(Optional.ofNullable(EntityUtil.changeEntityListNew(EnterprisePortraitRelDTO.class, return ServiceResponse.success(Optional.ofNullable(EntityUtil.changeEntityListNew(EnterprisePortraitRelDTO.class,
enterprisePortraitRelMapper.listPortraitField(enterpriseId))).orElse(Collections.emptyList())); enterprisePortraitRelMapper.listPortraitField(enterpriseId, status))).orElse(Collections.emptyList()));
} }
@Override
public ServiceResponse<Void> insertForeach(List<EnterprisePortraitRelDTO> list) {
enterprisePortraitRelMapper.insertForeach(list);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> savePortraitField(Integer enterpriseId, String fieldCode, String fieldName, Integer dataType) {
//查询是否已经存在
TabGicEnterprisePortraitRel record = enterprisePortraitRelMapper.getPortraitField(enterpriseId, fieldCode, dataType);
if (record == null) {
//不存在
int maxSort = enterprisePortraitRelMapper.getMaxSort(enterpriseId, dataType);
enterprisePortraitRelMapper.insert(new TabGicEnterprisePortraitRel()
.setCreateTime(new Date())
.setDataType(dataType)
.setEnterpriseId(enterpriseId)
.setPortraitCode(fieldCode)
.setPortraitName(fieldName)
.setStatus(1)
.setUpdateTime(new Date())
.setSort(maxSort + 1));
} else {
if (!record.getPortraitName().equals(fieldName)) {
//如果名称有变动,则更新
enterprisePortraitRelMapper.updateByPrimaryKeySelective(new TabGicEnterprisePortraitRel()
.setPortraitRelationId(record.getPortraitRelationId())
.setPortraitName(fieldName));
}
}
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> sort(Integer enterpriseId, String fieldCode, Integer dataType, Integer sort) {
TabGicEnterprisePortraitRel record = enterprisePortraitRelMapper.getPortraitField(enterpriseId, fieldCode, dataType);
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数错误,查无数据");
}
List<TabGicEnterprisePortraitRel> list = enterprisePortraitRelMapper.listByDataType(enterpriseId, dataType);
Integer fromSortValue = record.getSort();
if (fromSortValue > sort) {
//向上拖拽
for (int i = 0, length = list.size(); i < length; i++) {
TabGicEnterprisePortraitRel temp = list.get(i);
//如果大于sortValue,都需要降低排序值,往后推
boolean isNeedDown = temp.getSort() >= sort && temp.getSort() < fromSortValue;
if (isNeedDown) {
updateSort(list.get(i + 1).getSort(), temp.getPortraitRelationId());
}
}
} else if (fromSortValue < sort) {
//向下拖拽
for (int i = 0, length = list.size(); i < length; i++) {
TabGicEnterprisePortraitRel temp = list.get(i);
boolean isNeedUp = temp.getSort() <= sort && temp.getSort() > fromSortValue;
if (isNeedUp) {
updateSort(list.get(i - 1).getSort(), temp.getPortraitRelationId());
}
}
}
updateSort(sort, record.getPortraitRelationId());
return null;
}
@Override
public ServiceResponse<Void> updateStatus(Integer enterpriseId, String fieldCode, Integer dataType, Integer status) {
TabGicEnterprisePortraitRel record = enterprisePortraitRelMapper.getPortraitField(enterpriseId, fieldCode, dataType);
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数错误,查无数据");
}
if (status == 0) {
//放到回收站
enterprisePortraitRelMapper.updateByPrimaryKeySelective(new TabGicEnterprisePortraitRel()
.setPortraitRelationId(record.getPortraitRelationId())
.setStatus(2));
List<TabGicEnterprisePortraitRel> list = enterprisePortraitRelMapper.listByDataType(enterpriseId, dataType);
Integer fromSortValue = record.getSort();
for (TabGicEnterprisePortraitRel temp : list) {
if (temp.getSort() > fromSortValue) {
//排在下面的都上升一个序号
updateSort(temp.getSort() + 1, temp.getPortraitRelationId());
}
}
} else {
int maxSort = enterprisePortraitRelMapper.getMaxSort(enterpriseId, dataType);
//复原,排序放在最后一位
enterprisePortraitRelMapper.updateByPrimaryKeySelective(new TabGicEnterprisePortraitRel()
.setPortraitRelationId(record.getPortraitRelationId())
.setStatus(1)
.setSort(maxSort + 1));
}
return null;
}
private void updateSort(Integer sort, Integer id) {
enterprisePortraitRelMapper.updateByPrimaryKeySelective(new TabGicEnterprisePortraitRel()
.setPortraitRelationId(id)
.setSort(sort));
}
} }
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<mapper namespace="com.gic.cloud.dao.mapper.EnterprisePortraitRelMapper"> <mapper namespace="com.gic.cloud.dao.mapper.EnterprisePortraitRelMapper">
<resultMap id="BaseResultMap" type="com.gic.cloud.entity.TabGicEnterprisePortraitRel"> <resultMap id="BaseResultMap" type="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
<id column="portrait_relation_id" jdbcType="INTEGER" property="portraitRelationId" /> <id column="portrait_relation_id" jdbcType="INTEGER" property="portraitRelationId" />
<result column="portrati_name" jdbcType="CHAR" property="portraitName" />
<result column="portrait_code" jdbcType="CHAR" property="portraitCode" /> <result column="portrait_code" jdbcType="CHAR" property="portraitCode" />
<result column="enterprise_id" jdbcType="INTEGER" property="enterpriseId" /> <result column="enterprise_id" jdbcType="INTEGER" property="enterpriseId" />
<result column="sort" jdbcType="INTEGER" property="sort" /> <result column="sort" jdbcType="INTEGER" property="sort" />
...@@ -12,7 +13,7 @@ ...@@ -12,7 +13,7 @@
<result column="status" jdbcType="INTEGER" property="status" /> <result column="status" jdbcType="INTEGER" property="status" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
portrait_relation_id, portrait_code, enterprise_id, sort, data_type, create_time, portrait_relation_id, portrati_name, portrait_code, enterprise_id, sort, data_type, create_time,
update_time, status update_time, status
</sql> </sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
...@@ -26,10 +27,10 @@ ...@@ -26,10 +27,10 @@
where portrait_relation_id = #{portraitRelationId,jdbcType=INTEGER} where portrait_relation_id = #{portraitRelationId,jdbcType=INTEGER}
</delete> </delete>
<insert id="insert" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel"> <insert id="insert" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
insert into tab_gic_enterprise_portrait_rel (portrait_relation_id, portrait_code, enterprise_id, insert into tab_gic_enterprise_portrait_rel (portrait_relation_id, portrati_name, portrait_code, enterprise_id,
sort, data_type, create_time, sort, data_type, create_time,
update_time, status) update_time, status)
values (#{portraitRelationId,jdbcType=INTEGER}, #{portraitCode,jdbcType=CHAR}, #{enterpriseId,jdbcType=INTEGER}, values (#{portraitRelationId,jdbcType=INTEGER}, #{portraitName,jdbcType=CHAR}, #{portraitCode,jdbcType=CHAR}, #{enterpriseId,jdbcType=INTEGER},
#{sort,jdbcType=INTEGER}, #{dataType,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}, #{dataType,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}) #{updateTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER})
</insert> </insert>
...@@ -39,6 +40,9 @@ ...@@ -39,6 +40,9 @@
<if test="portraitRelationId != null"> <if test="portraitRelationId != null">
portrait_relation_id, portrait_relation_id,
</if> </if>
<if test="portraitName != null">
portrati_name,
</if>
<if test="portraitCode != null"> <if test="portraitCode != null">
portrait_code, portrait_code,
</if> </if>
...@@ -65,6 +69,9 @@ ...@@ -65,6 +69,9 @@
<if test="portraitRelationId != null"> <if test="portraitRelationId != null">
#{portraitRelationId,jdbcType=INTEGER}, #{portraitRelationId,jdbcType=INTEGER},
</if> </if>
<if test="portraitName != null">
#{portraitName,jdbcType=CHAR},
</if>
<if test="portraitCode != null"> <if test="portraitCode != null">
#{portraitCode,jdbcType=CHAR}, #{portraitCode,jdbcType=CHAR},
</if> </if>
...@@ -91,6 +98,9 @@ ...@@ -91,6 +98,9 @@
<update id="updateByPrimaryKeySelective" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel"> <update id="updateByPrimaryKeySelective" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
update tab_gic_enterprise_portrait_rel update tab_gic_enterprise_portrait_rel
<set> <set>
<if test="portraitName != null">
portrati_name = #{portraitName,jdbcType=CHAR},
</if>
<if test="portraitCode != null"> <if test="portraitCode != null">
portrait_code = #{portraitCode,jdbcType=CHAR}, portrait_code = #{portraitCode,jdbcType=CHAR},
</if> </if>
...@@ -117,7 +127,8 @@ ...@@ -117,7 +127,8 @@
</update> </update>
<update id="updateByPrimaryKey" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel"> <update id="updateByPrimaryKey" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
update tab_gic_enterprise_portrait_rel update tab_gic_enterprise_portrait_rel
set portrait_code = #{portraitCode,jdbcType=CHAR}, set portrati_name = #{portraitName,jdbcType=CHAR},
portrait_code = #{portraitCode,jdbcType=CHAR},
enterprise_id = #{enterpriseId,jdbcType=INTEGER}, enterprise_id = #{enterpriseId,jdbcType=INTEGER},
sort = #{sort,jdbcType=INTEGER}, sort = #{sort,jdbcType=INTEGER},
data_type = #{dataType,jdbcType=INTEGER}, data_type = #{dataType,jdbcType=INTEGER},
...@@ -130,19 +141,20 @@ ...@@ -130,19 +141,20 @@
<select id="listPortraitField" resultMap="BaseResultMap"> <select id="listPortraitField" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"></include> SELECT <include refid="Base_Column_List"></include>
from tab_gic_enterprise_portrait_rel from tab_gic_enterprise_portrait_rel
where status = 1 where enterprise_id = #{enterpriseId}
and enterprise_id = #{enterpriseId} and status = #{status}
order by sort order by sort
</select> </select>
<insert id="insertForeach" parameterType="java.util.List"> <insert id="insertForeach" parameterType="java.util.List">
insert into tab_gic_enterprise_portrait_rel (portrait_relation_id, portrait_code, enterprise_id, insert into tab_gic_enterprise_portrait_rel (portrait_relation_id, portrati_name, portrait_code, enterprise_id,
sort, data_type, create_time, sort, data_type, create_time,
update_time, status) update_time, status)
VALUES VALUES
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
#{item.portraitRelationId}, #{item.portraitRelationId},
#{item.portraitName},
#{item.portraitCode}, #{item.portraitCode},
#{item.enterpriseId}, #{item.enterpriseId},
#{item.sort}, #{item.sort},
...@@ -153,4 +165,33 @@ ...@@ -153,4 +165,33 @@
) )
</foreach> </foreach>
</insert> </insert>
<select id="getPortraitField" resultMap="BaseResultMap">
select <include refid="Base_Column_List"></include>
from tab_gic_enterprise_portrait_rel
where status = 1
and data_type = #{dataType}
and portrait_code = #{fieldCode}
and enterprise_id = #{enterpriseId}
</select>
<select id="getMaxSort" resultType="int">
select ifnull(max(sort),0)
from tab_gic_enterprise_portrait_rel
where status = 1
and data_type = #{dataType}
and enterprise_id = #{enterpriseId}
</select>
<select id="listByDataType" resultMap="BaseResultMap">
select <include refid="Base_Column_List"></include>
from tab_gic_enterprise_portrait_rel
where status = 1
and data_type = #{dataType}
and enterprise_id = #{enterpriseId}
order by sort
</select>
</mapper> </mapper>
\ No newline at end of file
package com.gic.cloud.web.controller; package com.gic.cloud.web.controller;
import com.gic.cloud.service.EnterprisePortraitRelApiService;
import com.gic.data.api.qo.member.*; import com.gic.data.api.qo.member.*;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -22,6 +23,8 @@ public class MemberCloudDataController { ...@@ -22,6 +23,8 @@ public class MemberCloudDataController {
private StoreSearchUtils storeSearchUtils; private StoreSearchUtils storeSearchUtils;
@Autowired @Autowired
private DataAuthUtils dataAuthUtils; private DataAuthUtils dataAuthUtils;
@Autowired
private EnterprisePortraitRelApiService enterprisePortraitRelApiService;
/** /**
* 会员分布-趋势 * 会员分布-趋势
......
...@@ -148,6 +148,7 @@ ...@@ -148,6 +148,7 @@
<dubbo:reference interface="com.gic.data.api.service.IndexSalesApiService" id="indexSalesApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.data.api.service.IndexSalesApiService" id="indexSalesApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.cloud.service.FunctionApiService" id="functionApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.cloud.service.FunctionApiService" id="functionApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.cloud.service.FunctionModuleApiService" id="functionModuleApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.cloud.service.FunctionModuleApiService" id="functionModuleApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.cloud.service.EnterprisePortraitRelApiService" id="enterprisePortraitRelApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.data.api.service.performanceoverview.PerformanceOverviewApiService" id="performanceOverviewApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.data.api.service.performanceoverview.PerformanceOverviewApiService" id="performanceOverviewApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.data.api.service.consumestructure.ConsumeStructureApiService" id="consumeStructureApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.data.api.service.consumestructure.ConsumeStructureApiService" id="consumeStructureApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.data.api.service.BaseSalesApiService" id="baseSalesApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.data.api.service.BaseSalesApiService" id="baseSalesApiService" timeout="6000" retries="0"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment