Commit 7976987c by guojuxing

会员画像字段筛选

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

* @author guojuxing
* @param enterpriseId

* @param status 1:有效 2:回收站
* @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 {
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>


*/
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 {
* @param enterpriseId

* @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 {
* @return void


 */
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 {
*/
private Integer portraitRelationId;
private String portraitName;
/**
* 会员画像代码
*/
......@@ -117,4 +119,13 @@ public class TabGicEnterprisePortraitRel {
this.status = status;
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;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.cloud.dao.mapper.EnterprisePortraitRelMapper;
import com.gic.cloud.dto.EnterprisePortraitRelDTO;
import com.gic.cloud.entity.TabGicEnterprisePortraitRel;
import com.gic.cloud.service.EnterprisePortraitRelApiService;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.error.ErrorCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Optional;
......@@ -18,8 +21,111 @@ public class EnterprisePortraitRelApiServiceImpl implements EnterprisePortraitRe
private EnterprisePortraitRelMapper enterprisePortraitRelMapper;
@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,
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 @@
<mapper namespace="com.gic.cloud.dao.mapper.EnterprisePortraitRelMapper">
<resultMap id="BaseResultMap" type="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
<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="enterprise_id" jdbcType="INTEGER" property="enterpriseId" />
<result column="sort" jdbcType="INTEGER" property="sort" />
......@@ -12,7 +13,7 @@
<result column="status" jdbcType="INTEGER" property="status" />
</resultMap>
<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
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
......@@ -26,10 +27,10 @@
where portrait_relation_id = #{portraitRelationId,jdbcType=INTEGER}
</delete>
<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,
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},
#{updateTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER})
</insert>
......@@ -39,6 +40,9 @@
<if test="portraitRelationId != null">
portrait_relation_id,
</if>
<if test="portraitName != null">
portrati_name,
</if>
<if test="portraitCode != null">
portrait_code,
</if>
......@@ -65,6 +69,9 @@
<if test="portraitRelationId != null">
#{portraitRelationId,jdbcType=INTEGER},
</if>
<if test="portraitName != null">
#{portraitName,jdbcType=CHAR},
</if>
<if test="portraitCode != null">
#{portraitCode,jdbcType=CHAR},
</if>
......@@ -91,6 +98,9 @@
<update id="updateByPrimaryKeySelective" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
update tab_gic_enterprise_portrait_rel
<set>
<if test="portraitName != null">
portrati_name = #{portraitName,jdbcType=CHAR},
</if>
<if test="portraitCode != null">
portrait_code = #{portraitCode,jdbcType=CHAR},
</if>
......@@ -117,7 +127,8 @@
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
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},
sort = #{sort,jdbcType=INTEGER},
data_type = #{dataType,jdbcType=INTEGER},
......@@ -130,19 +141,20 @@
<select id="listPortraitField" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"></include>
from tab_gic_enterprise_portrait_rel
where status = 1
and enterprise_id = #{enterpriseId}
where enterprise_id = #{enterpriseId}
and status = #{status}
order by sort
</select>
<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,
update_time, status)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.portraitRelationId},
#{item.portraitName},
#{item.portraitCode},
#{item.enterpriseId},
#{item.sort},
......@@ -153,4 +165,33 @@
)
</foreach>
</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>
\ No newline at end of file
package com.gic.cloud.web.controller;
import com.gic.cloud.service.EnterprisePortraitRelApiService;
import com.gic.data.api.qo.member.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -22,6 +23,8 @@ public class MemberCloudDataController {
private StoreSearchUtils storeSearchUtils;
@Autowired
private DataAuthUtils dataAuthUtils;
@Autowired
private EnterprisePortraitRelApiService enterprisePortraitRelApiService;
/**
* 会员分布-趋势
......
......@@ -148,6 +148,7 @@
<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.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.consumestructure.ConsumeStructureApiService" id="consumeStructureApiService" 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