Commit 61dd32e3 by 陶光胜

Merge branch 'developer' of…

Merge branch 'developer' of http://115.159.76.241/base_platform_enterprise/gic-data-cloud into developer

 Conflicts:
	gic-data-cloud-wxapp/src/main/java/com/gic/cloud/web/controller/StoreSearchUtils.java
parents d384a214 aaa2602d
package com.gic.cloud.dto;
import java.io.Serializable;
import java.util.Date;
public class EnterprisePortraitRelDTO implements Serializable{
private static final long serialVersionUID = -2398088229114286442L;
/**
*
*/
private Integer portraitRelationId;
private String portraitName;
/**
* 会员画像代码
*/
private String portraitCode;
/**
*
*/
private Integer enterpriseId;
/**
* 排序
*/
private Integer sort;
/**
* 1:基础画像 2:自定义画像
*/
private Integer dataType;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
*
*/
private Integer status;
public Integer getPortraitRelationId() {
return portraitRelationId;
}
public EnterprisePortraitRelDTO setPortraitRelationId(Integer portraitRelationId) {
this.portraitRelationId = portraitRelationId;
return this;
}
public String getPortraitCode() {
return portraitCode;
}
public EnterprisePortraitRelDTO setPortraitCode(String portraitCode) {
this.portraitCode = portraitCode;
return this;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public EnterprisePortraitRelDTO setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
return this;
}
public Integer getSort() {
return sort;
}
public EnterprisePortraitRelDTO setSort(Integer sort) {
this.sort = sort;
return this;
}
public Integer getDataType() {
return dataType;
}
public EnterprisePortraitRelDTO setDataType(Integer dataType) {
this.dataType = dataType;
return this;
}
public Date getCreateTime() {
return createTime;
}
public EnterprisePortraitRelDTO setCreateTime(Date createTime) {
this.createTime = createTime;
return this;
}
public Date getUpdateTime() {
return updateTime;
}
public EnterprisePortraitRelDTO setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
return this;
}
public Integer getStatus() {
return status;
}
public EnterprisePortraitRelDTO setStatus(Integer status) {
this.status = status;
return this;
}
public String getPortraitName() {
return portraitName;
}
public EnterprisePortraitRelDTO setPortraitName(String portraitName) {
this.portraitName = portraitName;
return this;
}
}
package com.gic.cloud.service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.cloud.dto.EnterprisePortraitRelDTO;
import java.util.List;
public interface EnterprisePortraitRelApiService {
/**
* 查询会员画像字段列表
* @Title: listPortraitField

* @Description:

* @author guojuxing
* @param enterpriseId

* @param dataType 1:基础画像 2:自定义画像
* @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, Integer dataType, Integer status);
/**
* 批量新增
* @Title: insertForeach

* @Description:

* @author guojuxing
* @param list

* @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);
}
package com.gic.cloud.dao.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.cloud.dto.EnterprisePortraitRelDTO;
import com.gic.cloud.entity.TabGicEnterprisePortraitRel;
public interface EnterprisePortraitRelMapper {
/**
* 根据主键删除
*
* @param portraitRelationId 主键
* @return 更新条目数
*/
int deleteByPrimaryKey(Integer portraitRelationId);
/**
* 插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insert(TabGicEnterprisePortraitRel record);
/**
* 动态插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insertSelective(TabGicEnterprisePortraitRel record);
/**
* 根据主键查询
*
* @param portraitRelationId 主键
* @return 实体对象
*/
TabGicEnterprisePortraitRel selectByPrimaryKey(Integer portraitRelationId);
/**
* 根据主键动态更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKeySelective(TabGicEnterprisePortraitRel record);
/**
* 根据主键更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKey(TabGicEnterprisePortraitRel record);
/**
* 查询会员画像字段列表
* @Title: listPortraitField

* @Description:

* @author guojuxing
* @param enterpriseId

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


*/
List<TabGicEnterprisePortraitRel> listPortraitField(@Param("enterpriseId") Integer enterpriseId,
@Param("dataType") Integer dataType,
@Param("status") Integer status);
/**
* 批量插入
* @Title: insertForeach

* @Description:

 * @author guojuxing
* @param list

* @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
package com.gic.cloud.entity;
import java.util.Date;
/**
* tab_gic_enterprise_portrait_rel
*/
public class TabGicEnterprisePortraitRel {
/**
*
*/
private Integer portraitRelationId;
private String portraitName;
/**
* 会员画像代码
*/
private String portraitCode;
/**
*
*/
private Integer enterpriseId;
/**
* 排序
*/
private Integer sort;
/**
* 1:基础画像 2:自定义画像
*/
private Integer dataType;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
*
*/
private Integer status;
public Integer getPortraitRelationId() {
return portraitRelationId;
}
public TabGicEnterprisePortraitRel setPortraitRelationId(Integer portraitRelationId) {
this.portraitRelationId = portraitRelationId;
return this;
}
public String getPortraitCode() {
return portraitCode;
}
public TabGicEnterprisePortraitRel setPortraitCode(String portraitCode) {
this.portraitCode = portraitCode;
return this;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public TabGicEnterprisePortraitRel setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
return this;
}
public Integer getSort() {
return sort;
}
public TabGicEnterprisePortraitRel setSort(Integer sort) {
this.sort = sort;
return this;
}
public Integer getDataType() {
return dataType;
}
public TabGicEnterprisePortraitRel setDataType(Integer dataType) {
this.dataType = dataType;
return this;
}
public Date getCreateTime() {
return createTime;
}
public TabGicEnterprisePortraitRel setCreateTime(Date createTime) {
this.createTime = createTime;
return this;
}
public Date getUpdateTime() {
return updateTime;
}
public TabGicEnterprisePortraitRel setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
return this;
}
public Integer getStatus() {
return status;
}
public TabGicEnterprisePortraitRel setStatus(Integer status) {
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
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.apache.commons.collections.CollectionUtils;
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;
@Service("enterprisePortraitRelApiService")
public class EnterprisePortraitRelApiServiceImpl implements EnterprisePortraitRelApiService{
@Autowired
private EnterprisePortraitRelMapper enterprisePortraitRelMapper;
@Override
public ServiceResponse<List<EnterprisePortraitRelDTO>> listPortraitField(Integer enterpriseId, Integer dataType, Integer status) {
return ServiceResponse.success(Optional.ofNullable(EntityUtil.changeEntityListNew(EnterprisePortraitRelDTO.class,
enterprisePortraitRelMapper.listPortraitField(enterpriseId, dataType, status))).orElse(Collections.emptyList()));
}
@Override
public ServiceResponse<Void> insertForeach(List<EnterprisePortraitRelDTO> list) {
if (CollectionUtils.isNotEmpty(list)) {
Integer enterpriseId = list.get(0).getEnterpriseId();
List<TabGicEnterprisePortraitRel> hasList = enterprisePortraitRelMapper.listPortraitField(enterpriseId, 1, null);
if (CollectionUtils.isNotEmpty(hasList)) {
return ServiceResponse.success();
}
}
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));
}
}
......@@ -27,4 +27,5 @@
<dubbo:service interface="com.gic.cloud.service.IndexGroupApiService" ref="indexGroupApiService" timeout="6000" />
<dubbo:service interface="com.gic.cloud.service.StoreAttentionApiService" ref="storeAttentionApiService" timeout="6000" />
<dubbo:service interface="com.gic.cloud.service.IndexDescApiService" ref="indexDescApiService" timeout="6000" />
<dubbo:service interface="com.gic.cloud.service.EnterprisePortraitRelApiService" ref="enterprisePortraitRelApiService" timeout="6000" />
</beans>
<?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.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" />
<result column="data_type" jdbcType="INTEGER" property="dataType" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="status" jdbcType="INTEGER" property="status" />
</resultMap>
<sql id="Base_Column_List">
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">
select
<include refid="Base_Column_List" />
from tab_gic_enterprise_portrait_rel
where portrait_relation_id = #{portraitRelationId,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from tab_gic_enterprise_portrait_rel
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, portrati_name, portrait_code, enterprise_id,
sort, data_type, create_time,
update_time, status)
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>
<insert id="insertSelective" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
insert into tab_gic_enterprise_portrait_rel
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="portraitRelationId != null">
portrait_relation_id,
</if>
<if test="portraitName != null">
portrati_name,
</if>
<if test="portraitCode != null">
portrait_code,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="sort != null">
sort,
</if>
<if test="dataType != null">
data_type,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="status != null">
status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="portraitRelationId != null">
#{portraitRelationId,jdbcType=INTEGER},
</if>
<if test="portraitName != null">
#{portraitName,jdbcType=CHAR},
</if>
<if test="portraitCode != null">
#{portraitCode,jdbcType=CHAR},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=INTEGER},
</if>
<if test="sort != null">
#{sort,jdbcType=INTEGER},
</if>
<if test="dataType != null">
#{dataType,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
</trim>
</insert>
<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>
<if test="enterpriseId != null">
enterprise_id = #{enterpriseId,jdbcType=INTEGER},
</if>
<if test="sort != null">
sort = #{sort,jdbcType=INTEGER},
</if>
<if test="dataType != null">
data_type = #{dataType,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
</set>
where portrait_relation_id = #{portraitRelationId,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.cloud.entity.TabGicEnterprisePortraitRel">
update tab_gic_enterprise_portrait_rel
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},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
status = #{status,jdbcType=INTEGER}
where portrait_relation_id = #{portraitRelationId,jdbcType=INTEGER}
</update>
<select id="listPortraitField" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"></include>
from tab_gic_enterprise_portrait_rel
where enterprise_id = #{enterpriseId}
<if test="status == null">
and status != 0
</if>
<if test="status != null">
and status = #{status}
</if>
<if test="dataType != null">
and data_type = #{dataType}
</if>
order by sort
</select>
<insert id="insertForeach" parameterType="java.util.List">
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},
#{item.dataType},
#{item.createTime},
#{item.updateTime},
#{item.status}
)
</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
......@@ -84,7 +84,8 @@ public class ConsumeStructureController {
ServiceResponse<Page<AgeConsumeAreaDTO>> response1 = consumeStructureApiService.pageAgeConsumeArea(params);
this.goDownComponent.parseTotal(response1, vo);
if(params.getChannel() != null && params.getChannel() == 1 && params.getLevel() == levelVo.getLevel()){
params.setCountType(3); //无归属
//无归属
params.setCountType(3);
ServiceResponse<Page<AgeConsumeAreaDTO>> response2 = consumeStructureApiService.pageAgeConsumeArea(params);
this.goDownComponent.parseWgs(response2, vo);
}
......
package com.gic.cloud.web.controller;
import com.gic.data.api.qo.member.MemberPortraitQO;
import com.gic.data.api.qo.member.MemberRecruitAreaQO;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -9,10 +12,18 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.cloud.dto.EnterprisePortraitRelDTO;
import com.gic.cloud.service.EnterprisePortraitRelApiService;
import com.gic.cloud.web.auth.DataAuthUtils;
import com.gic.cloud.web.vo.BaseSalesVo;
import com.gic.cloud.web.vo.LevelVo;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.data.api.qo.member.MemberDistributionAreaQO;
import com.gic.data.api.qo.member.MemberDistributionTrendQO;
import com.gic.data.api.dto.member.MemberCustomPortraitDTO;
import com.gic.data.api.dto.member.MemberDistributionAreaDTO;
import com.gic.data.api.dto.member.MemberRecruitAreaDTO;
import com.gic.data.api.qo.member.*;
import com.gic.data.api.service.member.MemberCloudDataApiService;
import com.gic.enterprise.utils.ResultControllerUtils;
......@@ -25,6 +36,10 @@ public class MemberCloudDataController {
private StoreSearchUtils storeSearchUtils;
@Autowired
private DataAuthUtils dataAuthUtils;
@Autowired
private EnterprisePortraitRelApiService enterprisePortraitRelApiService;
@Autowired
private GoDownComponent goDownComponent;
/**
* 会员分布-趋势
......@@ -45,25 +60,45 @@ public class MemberCloudDataController {
@RequestMapping("get-member-distribution-area")
public RestResponse pageMemberDistributionArea(MemberDistributionAreaQO params) {
log.info("会员分布-区域参数:{}", JSON.toJSONString(params));
params.setStoreInfoIdList(storeSearchUtils.storeSearch(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()));
if (params.getLevel() == null) {
params.setLevel(storeSearchUtils.getLevel(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()).getLevel());
BaseSalesVo vo = new BaseSalesVo();
LevelVo levelVo = this.goDownComponent.setValue(params, vo);
Integer maxLevel = levelVo.getMaxLevel();
params.setCountType(1);
ServiceResponse<Page<MemberDistributionAreaDTO>> pageServiceResponse = memberCloudDataApiService.pageMemberDistributionArea(params);
vo.setPage(this.goDownComponent.parseData(pageServiceResponse.getResult(), params.getChannel(), params.getEnterpriseId(), params.getLevel(), maxLevel));
params.setCountType(2);
ServiceResponse<Page<MemberDistributionAreaDTO>> response1 = memberCloudDataApiService.pageMemberDistributionArea(params);
this.goDownComponent.parseTotal(response1, vo);
if(params.getChannel() != null && params.getChannel() == 1 && params.getLevel() == levelVo.getLevel()){
//无归属
params.setCountType(3);
ServiceResponse<Page<MemberDistributionAreaDTO>> response2 = memberCloudDataApiService.pageMemberDistributionArea(params);
this.goDownComponent.parseWgs(response2, vo);
}
params.setGroupIdList(storeSearchUtils.getChildrenStoreGroupIdList(params.getParentId()));
params.setMemberCardIdList(dataAuthUtils.getMbrAreaId(params.getUserId(), params.getEnterpriseId()));
return ResultControllerUtils.commonResult(memberCloudDataApiService.pageMemberDistributionArea(params));
return RestResponse.success(vo);
}
@RequestMapping("get-member-recruit-area")
public RestResponse pageMemberRecruitArea(MemberRecruitAreaQO params) {
log.info("会员招募-区域参数:{}", JSON.toJSONString(params));
params.setStoreInfoIdList(storeSearchUtils.storeSearch(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()));
if (params.getLevel() == null) {
params.setLevel(storeSearchUtils.getLevel(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()).getLevel());
BaseSalesVo vo = new BaseSalesVo();
LevelVo levelVo = this.goDownComponent.setValue(params, vo);
Integer maxLevel = levelVo.getMaxLevel();
params.setCountType(1);
ServiceResponse<Page<MemberRecruitAreaDTO>> pageServiceResponse = memberCloudDataApiService.pageMemberRecruitArea(params);
vo.setPage(this.goDownComponent.parseData(pageServiceResponse.getResult(), params.getChannel(), params.getEnterpriseId(), params.getLevel(), maxLevel));
params.setCountType(2);
ServiceResponse<Page<MemberRecruitAreaDTO>> response1 = memberCloudDataApiService.pageMemberRecruitArea(params);
this.goDownComponent.parseTotal(response1, vo);
if(params.getChannel() != null && params.getChannel() == 1 && params.getLevel() == levelVo.getLevel()){
//无归属
params.setCountType(3);
ServiceResponse<Page<MemberRecruitAreaDTO>> response2 = memberCloudDataApiService.pageMemberRecruitArea(params);
this.goDownComponent.parseWgs(response2, vo);
}
params.setGroupIdList(storeSearchUtils.getChildrenStoreGroupIdList(params.getParentId()));
params.setMemberCardIdList(dataAuthUtils.getMbrAreaId(params.getUserId(), params.getEnterpriseId()));
return ResultControllerUtils.commonResult(memberCloudDataApiService.pageMemberRecruitArea(params));
return RestResponse.success(vo);
}
@RequestMapping("get-member-portrait")
......@@ -74,5 +109,156 @@ public class MemberCloudDataController {
return ResultControllerUtils.commonResult(memberCloudDataApiService.queryMemberBasicPortrait(params));
}
@RequestMapping("get-member-portrait-overview")
public RestResponse getMemberPortraitOverview(MemberPortraitQO params) {
log.info("会员画像-概况参数:{}", JSON.toJSONString(params));
params.setStoreInfoIdList(storeSearchUtils.storeSearch(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()));
params.setMemberCardIdList(dataAuthUtils.getMbrAreaId(params.getUserId(), params.getEnterpriseId()));
return ResultControllerUtils.commonResult(memberCloudDataApiService.getMemberPortraitOverview(params));
}
@RequestMapping("get-member-custom-portrait")
public RestResponse queryMemberCustomPortrait(MemberCustomPortraitQO params) {
log.info("会员自定义画像参数:{}", JSON.toJSONString(params));
params.setStoreInfoIdList(storeSearchUtils.storeSearch(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()));
params.setMemberCardIdList(dataAuthUtils.getMbrAreaId(params.getUserId(), params.getEnterpriseId()));
return ResultControllerUtils.commonResult(memberCloudDataApiService.queryMemberCustomPortrait(params));
}
@RequestMapping("get-member-recruit-overview")
public RestResponse getMemberRecruitOverview(MemberOverviewQO params) {
log.info("会员概况-会员招募概况参数:{}", JSON.toJSONString(params));
params.setStoreInfoIdList(storeSearchUtils.storeSearch(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()));
params.setMemberCardIdList(dataAuthUtils.getMbrAreaId(params.getUserId(), params.getEnterpriseId()));
return ResultControllerUtils.commonResult(memberCloudDataApiService.getMemberRecruitOverview(params));
}
@RequestMapping("get-member-recruit-trend")
public RestResponse queryMemberRecruitTrend(MemberOverviewQO params) {
log.info("会员概况-会员招募趋势参数:{}", JSON.toJSONString(params));
params.setStoreInfoIdList(storeSearchUtils.storeSearch(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()));
params.setMemberCardIdList(dataAuthUtils.getMbrAreaId(params.getUserId(), params.getEnterpriseId()));
return ResultControllerUtils.commonResult(memberCloudDataApiService.queryMemberRecruitTrend(params));
}
/**
* 移除恢复
* @Title: updateMemberPortraitFieldStatus

* @Description:

* @author guojuxing
* @param enterpriseId
* @param userId
* @param fieldCode
* @param dataType 1:基础画像 2:自定义
* @param status
 0:放到回收站 1:恢复
* @return com.gic.commons.webapi.reponse.RestResponse


*/
@RequestMapping("update-member-portrait-field-status")
public RestResponse updateMemberPortraitFieldStatus(Integer enterpriseId, Integer userId, String fieldCode, Integer dataType, Integer status) {
return ResultControllerUtils.commonResult(enterprisePortraitRelApiService.updateStatus(enterpriseId, fieldCode, dataType, status));
}
/**
* 排序
* @Title: sort

* @Description:

* @author guojuxing
* @param enterpriseId
* @param userId
* @param fieldCode
* @param dataType 1:基础画像 2:自定义
* @param sort
要排序的位置👌
* @return com.gic.commons.webapi.reponse.RestResponse


*/
@RequestMapping("sort-member-portrait-field")
public RestResponse sort(Integer enterpriseId, Integer userId, String fieldCode, Integer dataType, Integer sort) {
return ResultControllerUtils.commonResult(enterprisePortraitRelApiService.sort(enterpriseId, fieldCode, dataType, sort));
}
@RequestMapping("get-member-custom-portrait-field")
public RestResponse getMemberCustomPortraitField(MemberCustomPortraitQO params) {
log.info("会员自定义画像-字段筛选参数:{}", JSON.toJSONString(params));
Integer enterpriseId = params.getEnterpriseId();
params.setStoreInfoIdList(storeSearchUtils.storeSearch(params.getUserId(), params.getEnterpriseId(), params.getSearchJson()));
params.setMemberCardIdList(dataAuthUtils.getMbrAreaId(params.getUserId(), params.getEnterpriseId()));
ServiceResponse<List<MemberCustomPortraitDTO>> fieldListRes = memberCloudDataApiService.listCustomField(params);
if (fieldListRes.isSuccess()) {
List<MemberCustomPortraitDTO> fieldList = fieldListRes.getResult();
if (CollectionUtils.isNotEmpty(fieldList)) {
for (MemberCustomPortraitDTO temp : fieldList) {
enterprisePortraitRelApiService.savePortraitField(enterpriseId, temp.getFieldCode(), temp.getFieldName(), 2);
}
ServiceResponse<List<EnterprisePortraitRelDTO>> portraitFieldRes = enterprisePortraitRelApiService.listPortraitField(enterpriseId, 2, params.getDataStatus());
return ResultControllerUtils.commonResult(portraitFieldRes);
}
}
return RestResponse.failure(fieldListRes.getCode(), fieldListRes.getMessage());
}
@RequestMapping("get-member-basic-portrait-field")
public RestResponse getMemberBasicPortraitField(MemberCustomPortraitQO params) {
log.info("会员基础画像-字段筛选参数:{}", JSON.toJSONString(params));
Integer enterpriseId = params.getEnterpriseId();
List<EnterprisePortraitRelDTO> list = new ArrayList<>(6);
list.add(new EnterprisePortraitRelDTO()
.setCreateTime(new Date())
.setUpdateTime(new Date())
.setDataType(1)
.setEnterpriseId(enterpriseId)
.setPortraitCode("1")
.setSort(1)
.setStatus(1)
.setPortraitName("会员等级"));
list.add(new EnterprisePortraitRelDTO()
.setCreateTime(new Date())
.setUpdateTime(new Date())
.setDataType(1)
.setEnterpriseId(enterpriseId)
.setPortraitCode("2")
.setSort(2)
.setStatus(1)
.setPortraitName("性别"));
list.add(new EnterprisePortraitRelDTO()
.setCreateTime(new Date())
.setUpdateTime(new Date())
.setDataType(1)
.setEnterpriseId(enterpriseId)
.setPortraitCode("3")
.setSort(3)
.setStatus(1)
.setPortraitName("年龄段"));
list.add(new EnterprisePortraitRelDTO()
.setCreateTime(new Date())
.setUpdateTime(new Date())
.setDataType(1)
.setEnterpriseId(enterpriseId)
.setPortraitCode("4")
.setSort(4)
.setStatus(1)
.setPortraitName("4开卡渠道"));
list.add(new EnterprisePortraitRelDTO()
.setCreateTime(new Date())
.setUpdateTime(new Date())
.setDataType(1)
.setEnterpriseId(enterpriseId)
.setPortraitCode("5")
.setSort(5)
.setStatus(1)
.setPortraitName("生日月份"));
list.add(new EnterprisePortraitRelDTO()
.setCreateTime(new Date())
.setUpdateTime(new Date())
.setDataType(1)
.setEnterpriseId(enterpriseId)
.setPortraitCode("6")
.setSort(6)
.setStatus(1)
.setPortraitName("星座名称"));
enterprisePortraitRelApiService.insertForeach(list);
ServiceResponse<List<EnterprisePortraitRelDTO>> portraitFieldRes = enterprisePortraitRelApiService.listPortraitField(enterpriseId, 1, params.getDataStatus());
return ResultControllerUtils.commonResult(portraitFieldRes);
}
}
......@@ -144,8 +144,8 @@ public class StoreSearchUtils {
Map<Integer, Integer> map = new HashMap<>();
result.forEach(storeDTO -> {
List<Integer> storeGroupIdList = storeDTO.getStoreGroupIdList();
if(CollectionUtils.isNotEmpty(storeGroupIdList)){
storeGroupIdList.forEach(storeGroupId ->{
if (CollectionUtils.isNotEmpty(storeGroupIdList)) {
storeGroupIdList.forEach(storeGroupId -> {
map.put(storeGroupId, storeGroupId);
});
}
......
......@@ -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