Merge branch 'dev/feat/partner1.4_20231009' into hxd/feat/partner1.4
# Conflicts: # coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java
This commit is contained in:
@@ -29,4 +29,6 @@ public class ExcelErrorConstants {
|
||||
|
||||
public static final String COUNT_MORE = "每次数据最多导入500条,请分批上传";
|
||||
|
||||
public static final String MOBILE_REPEAT = "手机号重复";
|
||||
|
||||
}
|
||||
|
||||
@@ -67,6 +67,9 @@ public enum ErrorCodeEnum {
|
||||
NO_TRANSFER_REQUIRED(500013, "招商经理现有私海线索无需转让,请检查后重试!", null),
|
||||
NO_BATCH_TRANSFER_REQUIRED(500014, "已选线索包含此招商经理现有私海线索,无需转让,请检查后重试!", null),
|
||||
PARTNER_MOBILE_EXIST(500010, "手机号码已存在,请核实!", null),
|
||||
MOBILE_EXIST(500015, "此手机号码已存在,请修改后重试", null),
|
||||
INVESTMENT_MANAGER_NOT_EXIST(500016, "当前招商经理不存在", null),
|
||||
PARTNER_MOBILE_EXIST_0(500017, "手机号码已存在", null),
|
||||
|
||||
INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null),
|
||||
DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null),
|
||||
@@ -83,11 +86,16 @@ public enum ErrorCodeEnum {
|
||||
INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空!", null),
|
||||
INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null),
|
||||
INTERVIEW_PARTNER_NOT_EXIST(1021115, "线索下的加盟商不存在!", null),
|
||||
INTERVIEW_STATUS_NOT_TRANSFER(1021116, "当前面试状态不允许转让! 面试状态:{0}", null),
|
||||
MOBILE_WECHAT_EXIST(1021116, "此号码已绑定其他微信,请更换手机号码或微信后重试。", null),
|
||||
|
||||
ROOM_STATUS_ERROR(10211156, "当前面试房间状态不允许进行该操作!", null),
|
||||
MOBILE_APP_NOT_ONLINE_ERROR(10211157, "呼叫失败,请确认呼出号码正确并检查是否安装并打开呼叫插件", null),
|
||||
CALL_RECORD_NOT_EXIST_ERROR(10211158, "通话记录不存在!", null),
|
||||
CALL_UP_ERROR(10211159, "拨出电话异常!", null),
|
||||
CREATE_CALL_REQUEST_ERROR(10211160, "创建电话请求失败!", null),
|
||||
|
||||
CREATE_APPOINTMENT_TIME_ERROR(10211161, "当前时间不可预约面试,请选择其他时间", null),
|
||||
CONTENT_DUPLICATED(10211200, "动态标题重复!", null),
|
||||
SIGN_FAIL(600000, "验签失败", null),
|
||||
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
|
||||
|
||||
@@ -15,7 +15,7 @@ public enum FeiShuNoticeMsgEnum {
|
||||
BATCH_TRANS_INVESTMENT_MANAGER("收到新线索", "有{0}条新线索于 {1} 转让给您,请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g"),
|
||||
INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人 {0} 手机号 {1} 于 {2} 提交加盟意向申请,请及时处理", "img_v2_c909097d-67d1-4c11-a911-a2584b67ca6g"),
|
||||
FOLLOW_TASK("线索跟进任务", "{0}", "img_v2_1960b7ef-8c4e-4c3d-8b67-3d918a85578g"),
|
||||
INTERVIEW_APPOINTMENT("面试预约申请", "{0}","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g"),
|
||||
INTERVIEW_APPOINTMENT("面试预约申请", "您有一个【面试预约申请】待处理,预约人 {0} 手机号 {1} ,预约面试时间 {2} ","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g"),
|
||||
;
|
||||
|
||||
private String title;
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.cool.store.entity.BeautyCameraSettingDO;
|
||||
import com.cool.store.mapper.BeautyCameraSettingMapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: BeautyCameraSettingDAO
|
||||
* @Description:
|
||||
* @date 2023-09-11 14:46
|
||||
*/
|
||||
@Repository
|
||||
public class BeautyCameraSettingDAO {
|
||||
|
||||
@Resource
|
||||
private BeautyCameraSettingMapper beautyCameraSettingMapper;
|
||||
|
||||
/**
|
||||
* 插入或更新
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
public Long insertOrUpdateBeautyCameraSetting(BeautyCameraSettingDO param){
|
||||
if(StringUtils.isBlank(param.getUserId())){
|
||||
return 0L;
|
||||
}
|
||||
return beautyCameraSettingMapper.insertOrUpdateBeautyCameraSetting(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户美颜配置
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public BeautyCameraSettingDO getBeautyCameraSetting(String userId){
|
||||
if(StringUtils.isBlank(userId)){
|
||||
return null;
|
||||
}
|
||||
return beautyCameraSettingMapper.getBeautyCameraSetting(userId);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -119,6 +119,11 @@ public class HyOpenAreaInfoDAO {
|
||||
return hyOpenAreaInfoMapper.getAllOpenArea();
|
||||
}
|
||||
|
||||
|
||||
public List<HyOpenAreaInfoDO> selectAllCity(){
|
||||
return hyOpenAreaInfoMapper.selectAllCity();
|
||||
}
|
||||
|
||||
/**
|
||||
* 过滤叶子节点
|
||||
* @param openAreaIds
|
||||
|
||||
@@ -71,4 +71,11 @@ public class HyPartnerIntentInfoDAO {
|
||||
return hyPartnerIntentInfoMapper.updateLineId(newPartnerId,newLineId, oldLineId);
|
||||
}
|
||||
|
||||
public int updateByPartnerLineId(HyPartnerIntentInfoDO record){
|
||||
if(Objects.isNull(record.getPartnerLineId())){
|
||||
return 0;
|
||||
}
|
||||
return hyPartnerIntentInfoMapper.updateByPartnerLineId(record);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -94,6 +94,13 @@ public class HyPartnerInterviewPlanDAO {
|
||||
return hyPartnerInterviewPlanMapper.selectInterviewIdByLineId(lineId);
|
||||
}
|
||||
|
||||
public HyPartnerInterviewPlanDO getInterviewPlanByLineId(Long lineId){
|
||||
if (lineId==null){
|
||||
return null;
|
||||
}
|
||||
return hyPartnerInterviewPlanMapper.getInterviewPlanByLineId(lineId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据线索表ID查询
|
||||
* @param lindIds
|
||||
|
||||
@@ -75,5 +75,12 @@ public class HyPartnerUserInfoDAO {
|
||||
return hyPartnerUserInfoMapper.updateJoinKnowById(isWritePartnerKnow, id);
|
||||
}
|
||||
|
||||
public int updateByPartnerId(HyPartnerUserInfoDO record){
|
||||
if(StringUtils.isBlank(record.getPartnerId())){
|
||||
return 0;
|
||||
}
|
||||
return hyPartnerUserInfoMapper.updateByPartnerId(record);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.BeautyCameraSettingDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @date 2023-09-11 02:20
|
||||
*/
|
||||
public interface BeautyCameraSettingMapper extends Mapper<BeautyCameraSettingDO> {
|
||||
|
||||
/**
|
||||
* 插入或更新
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
Long insertOrUpdateBeautyCameraSetting(@Param("record") BeautyCameraSettingDO param);
|
||||
|
||||
/**
|
||||
* 获取美颜配置
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
BeautyCameraSettingDO getBeautyCameraSetting(@Param("userId") String userId);
|
||||
}
|
||||
@@ -123,4 +123,6 @@ public interface HyOpenAreaInfoMapper {
|
||||
List<HyOpenAreaInfoDO> getProvinceAllCode(@Param("id") String id);
|
||||
|
||||
HyOpenAreaInfoDO selectByAreaPath(@Param("areaPath") String areaPath);
|
||||
|
||||
List<HyOpenAreaInfoDO> selectAllCity();
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.HyPartnerBaseInfoDO;
|
||||
import com.cool.store.entity.SyncEcCustomerLabelDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@@ -63,4 +64,10 @@ public interface HyPartnerBaseInfoMapper {
|
||||
@Param("idCardPhotoBlack") String idCardPhotoBlack,
|
||||
@Param("partnerLineId") Long partnerLineId);
|
||||
|
||||
int selectAllList();
|
||||
|
||||
List<SyncEcCustomerLabelDO> selectListByLimit(@Param("limit1") Integer limit1, @Param("limit2") Integer limit2);
|
||||
|
||||
void updateByMobile(HyPartnerBaseInfoDO record);
|
||||
|
||||
}
|
||||
@@ -64,4 +64,7 @@ public interface HyPartnerIntentInfoMapper {
|
||||
* @return
|
||||
*/
|
||||
int updateLineId(@Param("newPartnerId")String newPartnerId,@Param("newLineId") Long newLineId, @Param("oldLineId") Long oldLineId);
|
||||
|
||||
|
||||
int updateByPartnerLineId(@Param("record") HyPartnerIntentInfoDO record);
|
||||
}
|
||||
@@ -244,4 +244,10 @@ public interface HyPartnerLineInfoMapper {
|
||||
*/
|
||||
List<HyPartnerLineInfoDO> getHyPartnerLineInfoList(@Param("lineIds") List<Long> lineIds,String investmentManager);
|
||||
|
||||
/**
|
||||
* 获取线索转让次数
|
||||
* @param partnerLineId 线索 id
|
||||
* @return 线索转让次数
|
||||
*/
|
||||
Integer getTransferTimes(@Param("lineId") Long partnerLineId);
|
||||
}
|
||||
@@ -47,4 +47,6 @@ public interface HyPartnerUserInfoMapper {
|
||||
List<SyncEcCustomerDO> selectByHourDate(@Param("selectTime") String hourDayDate, @Param("now") String now,@Param("limit1")Integer limit1,@Param("limit2")Integer limit2);
|
||||
|
||||
int selectByHourDateCount(@Param("selectTime") String hourDayDate, @Param("now") String now);
|
||||
|
||||
int updateByPartnerId(@Param("record") HyPartnerUserInfoDO record);
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
<?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.cool.store.mapper.BeautyCameraSettingMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.BeautyCameraSettingDO">
|
||||
<id column="id" jdbcType="BIGINT" property="id"/>
|
||||
<result column="user_id" jdbcType="VARCHAR" property="userId"/>
|
||||
<result column="beauty_status" jdbcType="BIT" property="beautyStatus"/>
|
||||
<result column="beauty" jdbcType="INTEGER" property="beauty"/>
|
||||
<result column="brightness" jdbcType="INTEGER" property="brightness"/>
|
||||
<result column="ruddy" jdbcType="INTEGER" property="ruddy"/>
|
||||
<result column="deleted" jdbcType="BIT" property="deleted"/>
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
id, user_id, beauty_status, beauty, brightness, ruddy, deleted, create_time, update_time
|
||||
</sql>
|
||||
|
||||
<insert id="insertOrUpdateBeautyCameraSetting" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
|
||||
insert into beauty_camera_setting
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="record.userId != null">
|
||||
user_id,
|
||||
</if>
|
||||
<if test="record.beautyStatus != null">
|
||||
beauty_status,
|
||||
</if>
|
||||
<if test="record.beauty != null">
|
||||
beauty,
|
||||
</if>
|
||||
<if test="record.brightness != null">
|
||||
brightness,
|
||||
</if>
|
||||
<if test="record.ruddy != null">
|
||||
ruddy,
|
||||
</if>
|
||||
<if test="record.deleted != null">
|
||||
deleted,
|
||||
</if>
|
||||
<if test="record.createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
<if test="record.updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="record.userId != null">
|
||||
#{record.userId},
|
||||
</if>
|
||||
<if test="record.beautyStatus != null">
|
||||
#{record.beautyStatus},
|
||||
</if>
|
||||
<if test="record.beauty != null">
|
||||
#{record.beauty},
|
||||
</if>
|
||||
<if test="record.brightness != null">
|
||||
#{record.brightness},
|
||||
</if>
|
||||
<if test="record.ruddy != null">
|
||||
#{record.ruddy},
|
||||
</if>
|
||||
<if test="record.deleted != null">
|
||||
#{record.deleted},
|
||||
</if>
|
||||
<if test="record.createTime != null">
|
||||
#{record.createTime},
|
||||
</if>
|
||||
<if test="record.updateTime != null">
|
||||
#{record.updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
ON DUPLICATE KEY UPDATE beauty_status = values(beauty_status), beauty = values(beauty), brightness = values(brightness), ruddy = values(ruddy)
|
||||
</insert>
|
||||
|
||||
<select id="getBeautyCameraSetting" resultMap="BaseResultMap">
|
||||
select <include refid="Base_Column_List"/> from beauty_camera_setting where user_id = #{userId} and deleted = 0
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -310,4 +310,11 @@
|
||||
WHERE area_path= concat('/',#{areaPath},'/') and deleted=0 and province_city_flag=0
|
||||
</select>
|
||||
|
||||
<select id="selectAllCity" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"></include>
|
||||
FROM `hy_open_area_info`
|
||||
WHERE deleted=0 and province_city_flag = 1 and parent_id is not null
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -297,6 +297,12 @@
|
||||
left join hy_partner_line_info b on a.partner_line_id = b.id
|
||||
where a.id_card = #{idCard} and ( b.line_status != 3 and b.deleted = 0 )
|
||||
</select>
|
||||
<select id="selectAllList" resultType="java.lang.Integer">
|
||||
SELECT count(*) FROM hy_partner_base_info where mobile is not null and user_portrait is null
|
||||
</select>
|
||||
<select id="selectListByLimit" resultType="com.cool.store.entity.SyncEcCustomerLabelDO">
|
||||
SELECT id,mobile,user_portrait as userPortrait FROM hy_partner_base_info where mobile is not null and user_portrait is null LIMIT #{limit1},#{limit2}
|
||||
</select>
|
||||
|
||||
<update id="cleanIdCardInfoByPartnerLineId">
|
||||
update hy_partner_base_info
|
||||
@@ -306,5 +312,15 @@
|
||||
id_card_photo_black = #{idCardPhotoBlack}
|
||||
where partner_line_id = #{partnerLineId}
|
||||
</update>
|
||||
<update id="updateByMobile">
|
||||
update hy_partner_base_info
|
||||
<set>
|
||||
update_time=now(),
|
||||
<if test="userPortrait != null and userPortrait!=''">
|
||||
user_portrait = concat(",",#{userPortrait},","),
|
||||
</if>
|
||||
</set>
|
||||
where mobile = #{mobile}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -25,12 +25,14 @@
|
||||
<result column="weakness" jdbcType="VARCHAR" property="weakness" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="detailed_address" jdbcType="VARCHAR" property="detailedAddress" />
|
||||
<result column="email" jdbcType="VARCHAR" property="email" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
id, partner_id, partner_line_id, live_area, want_shop_area, accept_adjust_type, is_have_want_shop,
|
||||
want_shop_info, max_budget, money_source, money_prove, education, work_year, is_have_work_exp,
|
||||
work_exp, is_consumer, other_band, brand_strength, need_improve, strength, weakness,
|
||||
create_time, update_time
|
||||
create_time, update_time,detailed_address,email
|
||||
</sql>
|
||||
<select id="selectByPrimaryKeySelective" resultMap="BaseResultMap">
|
||||
select
|
||||
@@ -109,6 +111,15 @@
|
||||
<if test="record.updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
<if test="record.otherBand != null">
|
||||
other_band,
|
||||
</if>
|
||||
<if test="record.detailedAddress != null">
|
||||
detailed_address,
|
||||
</if>
|
||||
<if test="record.email != null">
|
||||
email,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="record.partnerId != null">
|
||||
@@ -177,6 +188,12 @@
|
||||
<if test="record.updateTime != null">
|
||||
#{record.updateTime},
|
||||
</if>
|
||||
<if test="record.detailedAddress != null">
|
||||
#{record.detailedAddress},
|
||||
</if>
|
||||
<if test="record.email != null">
|
||||
#{record.email},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
<update id="updateByPrimaryKeySelective">
|
||||
@@ -248,6 +265,12 @@
|
||||
<if test="record.updateTime != null">
|
||||
update_time = #{record.updateTime},
|
||||
</if>
|
||||
<if test="record.detailedAddress != null">
|
||||
detailed_address = #{record.detailedAddress},
|
||||
</if>
|
||||
<if test="record.email != null">
|
||||
email = #{record.email},
|
||||
</if>
|
||||
</set>
|
||||
where id = #{record.id}
|
||||
</update>
|
||||
@@ -337,6 +360,71 @@
|
||||
where partner_line_id = #{oldLineId}
|
||||
</update>
|
||||
|
||||
|
||||
<update id="updateByPartnerLineId">
|
||||
update hy_partner_intent_info
|
||||
<set>
|
||||
<if test="record.liveArea != null">
|
||||
live_area = #{record.liveArea},
|
||||
</if>
|
||||
<if test="record.wantShopArea != null">
|
||||
want_shop_area = #{record.wantShopArea},
|
||||
</if>
|
||||
<if test="record.acceptAdjustType != null">
|
||||
accept_adjust_type = #{record.acceptAdjustType},
|
||||
</if>
|
||||
<if test="record.isHaveWantShop != null">
|
||||
is_have_want_shop = #{record.isHaveWantShop},
|
||||
</if>
|
||||
<if test="record.wantShopInfo != null">
|
||||
want_shop_info = #{record.wantShopInfo},
|
||||
</if>
|
||||
<if test="record.maxBudget != null">
|
||||
max_budget = #{record.maxBudget},
|
||||
</if>
|
||||
<if test="record.moneySource != null">
|
||||
money_source = #{record.moneySource},
|
||||
</if>
|
||||
<if test="record.moneyProve != null">
|
||||
money_prove = #{record.moneyProve},
|
||||
</if>
|
||||
<if test="record.education != null">
|
||||
education = #{record.education},
|
||||
</if>
|
||||
<if test="record.workYear != null">
|
||||
work_year = #{record.workYear},
|
||||
</if>
|
||||
<if test="record.isHaveWorkExp != null">
|
||||
is_have_work_exp = #{record.isHaveWorkExp},
|
||||
</if>
|
||||
<if test="record.workExp != null">
|
||||
work_exp = #{record.workExp},
|
||||
</if>
|
||||
<if test="record.isConsumer != null">
|
||||
is_consumer = #{record.isConsumer},
|
||||
</if>
|
||||
<if test="record.otherBand != null">
|
||||
other_band = #{record.otherBand},
|
||||
</if>
|
||||
<if test="record.brandStrength != null">
|
||||
brand_strength = #{record.brandStrength},
|
||||
</if>
|
||||
<if test="record.needImprove != null">
|
||||
need_improve = #{record.needImprove},
|
||||
</if>
|
||||
<if test="record.strength != null">
|
||||
strength = #{record.strength},
|
||||
</if>
|
||||
<if test="record.weakness != null">
|
||||
weakness = #{record.weakness},
|
||||
</if>
|
||||
<if test="record.createTime != null">
|
||||
create_time = #{record.createTime},
|
||||
</if>
|
||||
<if test="record.updateTime != null">
|
||||
update_time = #{record.updateTime},
|
||||
</if>
|
||||
</set>
|
||||
where partner_line_id = #{record.partnerLineId}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -356,6 +356,8 @@
|
||||
hpuinfo.username as partnerUserName,
|
||||
hpuc.channel_name as channelName,
|
||||
hpii.education as education,
|
||||
hpii.detailed_address as detailAddress,
|
||||
hpii.email as email,
|
||||
hpl.phone_address as phoneAddress
|
||||
from hy_partner_line_info a
|
||||
left join hy_partner_base_info b on a.id = b.partner_line_id
|
||||
@@ -734,4 +736,13 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 获取线索转让次数 -->
|
||||
<select id="getTransferTimes" resultType="java.lang.Integer">
|
||||
select count(*)
|
||||
from hy_partner_task_info_log
|
||||
where operate_type = 'entrust_others'
|
||||
and partner_line_id = #{lineId}
|
||||
-- and deleted = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -53,63 +53,63 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectByHourDate" resultType="com.cool.store.entity.SyncEcCustomerDO" >
|
||||
SELECT
|
||||
a.id AS id,
|
||||
b.partner_id,
|
||||
b.username AS customername,
|
||||
b.mobile AS customermobile,
|
||||
d.`name` AS followname,
|
||||
d.mobile AS followmobile,
|
||||
a.line_status AS lineStatus,
|
||||
c.channel_id AS channelId,
|
||||
ifnull( tl_l.followCount, 0 ) AS followCount
|
||||
FROM
|
||||
hy_partner_line_info a
|
||||
LEFT JOIN hy_partner_user_info b ON a.partner_id = b.partner_id
|
||||
AND a.deleted = 0
|
||||
LEFT JOIN hy_partner_user_channel c ON b.user_channel_id = c.channel_id
|
||||
LEFT JOIN enterprise_user d ON a.investment_manager = d.user_id
|
||||
AND d.deleted = 0
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
partner_id,
|
||||
IFNULL( COUNT( 1 ), 0 ) AS followCount
|
||||
FROM
|
||||
hy_partner_line_info
|
||||
WHERE
|
||||
( deleted = 1 OR ( deleted = 0 AND line_status IN ( 0, 3 ) AND close_time IS NOT NULL ) )
|
||||
AND investment_manager IS NOT NULL
|
||||
GROUP BY
|
||||
partner_id
|
||||
) tl_l ON b.partner_id = tl_l.partner_id
|
||||
WHERE ( b.update_time BETWEEN #{selectTime} and #{now} or
|
||||
a.update_time BETWEEN #{selectTime} and #{now} ) and b.partner_id is not null order by a.id Limit #{limit1},#{limit2}
|
||||
</select>
|
||||
<select id="selectByHourDate" resultType="com.cool.store.entity.SyncEcCustomerDO" >
|
||||
SELECT
|
||||
a.id AS id,
|
||||
b.partner_id,
|
||||
b.username AS customername,
|
||||
b.mobile AS customermobile,
|
||||
d.`name` AS followname,
|
||||
d.mobile AS followmobile,
|
||||
a.line_status AS lineStatus,
|
||||
c.channel_id AS channelId,
|
||||
ifnull( tl_l.followCount, 0 ) AS followCount
|
||||
FROM
|
||||
hy_partner_line_info a
|
||||
LEFT JOIN hy_partner_user_info b ON a.partner_id = b.partner_id
|
||||
AND a.deleted = 0
|
||||
LEFT JOIN hy_partner_user_channel c ON b.user_channel_id = c.channel_id
|
||||
LEFT JOIN enterprise_user d ON a.investment_manager = d.user_id
|
||||
AND d.deleted = 0
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
partner_id,
|
||||
IFNULL( COUNT( 1 ), 0 ) AS followCount
|
||||
FROM
|
||||
hy_partner_line_info
|
||||
WHERE
|
||||
( deleted = 1 OR ( deleted = 0 AND line_status IN ( 0, 3 ) AND close_time IS NOT NULL ) )
|
||||
AND investment_manager IS NOT NULL
|
||||
GROUP BY
|
||||
partner_id
|
||||
) tl_l ON b.partner_id = tl_l.partner_id
|
||||
WHERE ( b.update_time BETWEEN #{selectTime} and #{now} or
|
||||
a.update_time BETWEEN #{selectTime} and #{now} ) and b.partner_id is not null order by a.id Limit #{limit1},#{limit2}
|
||||
</select>
|
||||
<select id="selectByHourDateCount" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
hy_partner_line_info a
|
||||
LEFT JOIN hy_partner_user_info b ON a.partner_id = b.partner_id
|
||||
AND a.deleted = 0
|
||||
LEFT JOIN hy_partner_user_channel c ON b.user_channel_id = c.channel_id
|
||||
LEFT JOIN enterprise_user d ON a.investment_manager = d.user_id
|
||||
AND d.deleted = 0
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
partner_id,
|
||||
IFNULL( COUNT( 1 ), 0 ) AS followCount
|
||||
FROM
|
||||
hy_partner_line_info
|
||||
WHERE
|
||||
( deleted = 1 OR ( deleted = 0 AND line_status IN ( 0, 3 ) AND close_time IS NOT NULL ) )
|
||||
AND investment_manager IS NOT NULL
|
||||
GROUP BY
|
||||
partner_id
|
||||
hy_partner_line_info a
|
||||
LEFT JOIN hy_partner_user_info b ON a.partner_id = b.partner_id
|
||||
AND a.deleted = 0
|
||||
LEFT JOIN hy_partner_user_channel c ON b.user_channel_id = c.channel_id
|
||||
LEFT JOIN enterprise_user d ON a.investment_manager = d.user_id
|
||||
AND d.deleted = 0
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
partner_id,
|
||||
IFNULL( COUNT( 1 ), 0 ) AS followCount
|
||||
FROM
|
||||
hy_partner_line_info
|
||||
WHERE
|
||||
( deleted = 1 OR ( deleted = 0 AND line_status IN ( 0, 3 ) AND close_time IS NOT NULL ) )
|
||||
AND investment_manager IS NOT NULL
|
||||
GROUP BY
|
||||
partner_id
|
||||
) tl_l ON b.partner_id = tl_l.partner_id
|
||||
WHERE (b.update_time BETWEEN #{selectTime} and #{now} or
|
||||
a.update_time BETWEEN #{selectTime} and #{now} ) and b.partner_id is not null
|
||||
a.update_time BETWEEN #{selectTime} and #{now} ) and b.partner_id is not null
|
||||
</select>
|
||||
|
||||
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
|
||||
@@ -162,7 +162,7 @@
|
||||
</if>
|
||||
<if test="record.recommendPartnerMobile != null">
|
||||
recommend_partner_mobile,
|
||||
</if>
|
||||
</if>
|
||||
<if test="record.userChannelId!=null">
|
||||
user_channel_id,
|
||||
</if>
|
||||
@@ -291,4 +291,56 @@
|
||||
where id=#{id,jdbcType=BIGINT}
|
||||
</update>
|
||||
|
||||
<update id="updateByPartnerId">
|
||||
update hy_partner_user_info
|
||||
<set>
|
||||
<if test="record.mobile != null">
|
||||
mobile = #{record.mobile},
|
||||
</if>
|
||||
<if test="record.username != null">
|
||||
username = #{record.username},
|
||||
</if>
|
||||
<if test="record.liveArea != null">
|
||||
live_area = #{record.liveArea},
|
||||
</if>
|
||||
<if test="record.wantShopArea != null">
|
||||
want_shop_area = #{record.wantShopArea},
|
||||
</if>
|
||||
<if test="record.acceptAdjustType != null">
|
||||
accept_adjust_type = #{record.acceptAdjustType},
|
||||
</if>
|
||||
<if test="record.inviteCode != null">
|
||||
invite_code = #{record.inviteCode},
|
||||
</if>
|
||||
<if test="record.isWritePartnerKnow != null">
|
||||
is_write_partner_know = #{record.isWritePartnerKnow},
|
||||
</if>
|
||||
<if test="record.createTime != null">
|
||||
create_time = #{record.createTime},
|
||||
</if>
|
||||
<if test="record.updateTime != null">
|
||||
update_time = #{record.updateTime},
|
||||
</if>
|
||||
<if test="record.shopCode != null">
|
||||
shop_code = #{record.shopCode},
|
||||
</if>
|
||||
<if test="record.shopName != null">
|
||||
shop_name = #{record.shopName},
|
||||
</if>
|
||||
<if test="record.shopId != null">
|
||||
shop_id = #{record.shopId},
|
||||
</if>
|
||||
<if test="record.recommendPartnerId != null">
|
||||
recommend_partner_id = #{record.recommendPartnerId},
|
||||
</if>
|
||||
<if test="record.recommendPartnerName != null">
|
||||
recommend_partner_name = #{record.recommendPartnerName},
|
||||
</if>
|
||||
<if test="record.recommendPartnerMobile != null">
|
||||
recommend_partner_mobile = #{record.recommendPartnerMobile},
|
||||
</if>
|
||||
</set>
|
||||
where partner_id = #{record.partnerId}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -121,6 +121,7 @@ public class EnterpriseUserDTO implements Serializable {
|
||||
enterpriseUserDO.setJobnumber(user.getJobnumber());
|
||||
enterpriseUserDO.setUserStatus(UserStatusEnum.NORMAL.getCode());
|
||||
enterpriseUserDO.setIsLeader(Boolean.FALSE);
|
||||
enterpriseUserDO.setLeaderDeptIds("[]");
|
||||
List<String> departmentLists = user.getDepartmentLists();
|
||||
List<String> regionPaths = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(departmentLists)){
|
||||
@@ -184,6 +185,7 @@ public class EnterpriseUserDTO implements Serializable {
|
||||
//创建的时候给个默认值
|
||||
if(FSEventTypeEnum.USER_CREATED.equals(eventType)){
|
||||
enterpriseUserDO.setIsLeader(Boolean.FALSE);
|
||||
enterpriseUserDO.setLeaderDeptIds("[]");
|
||||
}
|
||||
Collection<String> deptIds = leaderDeptMap.get(user.getUserId());
|
||||
if(CollectionUtils.isNotEmpty(deptIds)){
|
||||
|
||||
@@ -84,4 +84,10 @@ public class PartnerLineInfoAndBaseInfoDTO {
|
||||
private String education;
|
||||
|
||||
private String developmentDirector;
|
||||
|
||||
@ApiModelProperty("详细地址")
|
||||
private String detailedAddress;
|
||||
|
||||
@ApiModelProperty("邮箱")
|
||||
private String email;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.cool.store.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import javax.persistence.Table;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangchenbiao
|
||||
* @date 2023-09-11 02:20
|
||||
*/
|
||||
@Table(name = "beauty_camera_setting")
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class BeautyCameraSettingDO implements Serializable {
|
||||
@ApiModelProperty("主键id")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty("美颜状态0未开启,1开启")
|
||||
private Boolean beautyStatus;
|
||||
|
||||
@ApiModelProperty("美颜度")
|
||||
private Integer beauty;
|
||||
|
||||
@ApiModelProperty("明亮度")
|
||||
private Integer brightness;
|
||||
|
||||
@ApiModelProperty("红润")
|
||||
private Integer ruddy;
|
||||
|
||||
@ApiModelProperty("删除标识")
|
||||
private Boolean deleted;
|
||||
|
||||
@ApiModelProperty("用户创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty("修改时间")
|
||||
private Date updateTime;
|
||||
}
|
||||
@@ -98,4 +98,10 @@ public class HyPartnerIntentInfoDO implements Serializable {
|
||||
|
||||
@ApiModelProperty("通过证明")
|
||||
private String passCertifyFile;
|
||||
|
||||
@ApiModelProperty("详细地址")
|
||||
private String detailedAddress;
|
||||
|
||||
@ApiModelProperty("邮箱地址")
|
||||
private String email;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@@ -16,6 +17,7 @@ import java.util.Date;
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class HyPartnerLabelDO {
|
||||
@ApiModelProperty("")
|
||||
private Long id;
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@@ -16,6 +17,7 @@ import java.util.Date;
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class HyPartnerLabelGroupDO {
|
||||
|
||||
@ApiModelProperty("id")
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.cool.store.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SyncEcCustomerLabelDO {
|
||||
|
||||
|
||||
private String mobile;
|
||||
|
||||
private String userPortrait;
|
||||
|
||||
|
||||
}
|
||||
@@ -14,4 +14,16 @@ public class CallRecordBackReq {
|
||||
@ApiModelProperty(value = "录音上传地址", required = true)
|
||||
private String recordUrl;
|
||||
|
||||
@ApiModelProperty(value = "呼叫状态: 1-呼叫接听, 2-呼叫未接听, 3-呼叫失败", required = true)
|
||||
private Integer callStatus;
|
||||
|
||||
@ApiModelProperty(value = "呼叫失败的情况下必传,说明呼叫失败的原因")
|
||||
private String failReason;
|
||||
|
||||
@ApiModelProperty(value = "呼叫接听情况下必传,通话开始时间,格式:yyyy-MM-dd HH:mm:ss")
|
||||
private String callStartTime;
|
||||
|
||||
@ApiModelProperty(value = "呼叫接听情况下必传,通话结束时间,格式:yyyy-MM-dd HH:mm:ss")
|
||||
private String callEndTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: EditBaseInfoRequest
|
||||
* @Description:
|
||||
* @date 2023-09-13 10:29
|
||||
*/
|
||||
@Data
|
||||
public class EditBaseInfoRequest {
|
||||
|
||||
@ApiModelProperty("线索id")
|
||||
private Long partnerLineId;
|
||||
|
||||
@ApiModelProperty("姓名")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty("手机号")
|
||||
private String mobile;
|
||||
|
||||
@ApiModelProperty("意向区域")
|
||||
private String wantShopArea;
|
||||
|
||||
@ApiModelProperty("调剂方式")
|
||||
private Integer acceptAdjustType;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author hxd
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class GetTagRequest {
|
||||
private Long groupId;
|
||||
private String groupName;
|
||||
private Integer sort;
|
||||
private Integer type;
|
||||
private List<GetTagItem> list;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class GetTagItem{
|
||||
private Long classId;
|
||||
private String className;
|
||||
private int sort;
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,12 @@ public class PartnerIntentInfoRequest {
|
||||
@ApiModelProperty("常驻区域")
|
||||
private String liveArea;
|
||||
|
||||
@ApiModelProperty("详细地址")
|
||||
private String detailedAddress;
|
||||
|
||||
@ApiModelProperty("邮箱地址")
|
||||
private String email;
|
||||
|
||||
@ApiModelProperty("意向开店区域")
|
||||
private String wantShopArea;
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.request.beauty;
|
||||
|
||||
import com.cool.store.entity.BeautyCameraSettingDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: AddBeautyCameraSettingRequest
|
||||
* @Description: 新增美颜配置
|
||||
* @date 2023-09-11 14:31
|
||||
*/
|
||||
@Data
|
||||
public class AddBeautyCameraSettingRequest {
|
||||
|
||||
@ApiModelProperty("美颜状态0未开启,1开启")
|
||||
private Boolean beautyStatus;
|
||||
|
||||
@ApiModelProperty("美颜度")
|
||||
private Integer beauty;
|
||||
|
||||
@ApiModelProperty("明亮度")
|
||||
private Integer brightness;
|
||||
|
||||
@ApiModelProperty("红润")
|
||||
private Integer ruddy;
|
||||
|
||||
|
||||
public static BeautyCameraSettingDO convertDO(String userId, AddBeautyCameraSettingRequest request){
|
||||
BeautyCameraSettingDO result = new BeautyCameraSettingDO();
|
||||
result.setUserId(userId);
|
||||
result.setBeautyStatus(request.getBeautyStatus());
|
||||
result.setBeauty(request.getBeauty());
|
||||
result.setBrightness(request.getBrightness());
|
||||
result.setRuddy(request.getRuddy());
|
||||
result.setCreateTime(new Date());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.cool.store.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2023/8/30 15:16
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class BatchTransferVO {
|
||||
|
||||
private String partnerUserName;
|
||||
|
||||
private String partnerMobile;
|
||||
|
||||
private String errorMessage;
|
||||
}
|
||||
@@ -39,6 +39,9 @@ public class PartnerIntentInfoVO {
|
||||
@ApiModelProperty("常驻区域")
|
||||
private String liveArea;
|
||||
|
||||
@ApiModelProperty("详细地址")
|
||||
private String detailedAddress;
|
||||
|
||||
@ApiModelProperty("意向开店区域")
|
||||
private String wantShopArea;
|
||||
|
||||
|
||||
@@ -76,6 +76,12 @@ public class PartnerLineInfoAndBaseInfoVO {
|
||||
@ApiModelProperty("常驻区域")
|
||||
private String liveArea;
|
||||
|
||||
@ApiModelProperty("详细地址")
|
||||
private String detailedAddress;
|
||||
|
||||
@ApiModelProperty("邮箱")
|
||||
private String email;
|
||||
|
||||
@ApiModelProperty("意向开店区域")
|
||||
private String wantShopArea;
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.vo.beauty;
|
||||
|
||||
import com.cool.store.entity.BeautyCameraSettingDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: BeautyCameraSettingVO
|
||||
* @Description:
|
||||
* @date 2023-09-11 14:40
|
||||
*/
|
||||
@Data
|
||||
public class BeautyCameraSettingVO {
|
||||
|
||||
@ApiModelProperty("美颜状态0未开启,1开启")
|
||||
private Boolean beautyStatus;
|
||||
|
||||
@ApiModelProperty("美颜度")
|
||||
private Integer beauty;
|
||||
|
||||
@ApiModelProperty("明亮度")
|
||||
private Integer brightness;
|
||||
|
||||
@ApiModelProperty("红润")
|
||||
private Integer ruddy;
|
||||
|
||||
public static BeautyCameraSettingVO convertVO(BeautyCameraSettingDO request){
|
||||
if(Objects.isNull(request)){
|
||||
return null;
|
||||
}
|
||||
BeautyCameraSettingVO result = new BeautyCameraSettingVO();
|
||||
result.setBeautyStatus(request.getBeautyStatus());
|
||||
result.setBeauty(request.getBeauty());
|
||||
result.setBrightness(request.getBrightness());
|
||||
result.setRuddy(request.getRuddy());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.cool.store.vo.partner;
|
||||
|
||||
import com.cool.store.dto.partner.UserPortraitDTO;
|
||||
import com.cool.store.entity.HyPartnerUserInfoDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: PartnerBaseInfoVO
|
||||
* @Description:
|
||||
* @date 2023-09-13 16:47
|
||||
*/
|
||||
@Data
|
||||
public class PartnerSimpleBaseInfoVO {
|
||||
|
||||
@ApiModelProperty("线索id")
|
||||
private Long partnerLineId;
|
||||
|
||||
@ApiModelProperty("姓名")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty("手机号")
|
||||
private String mobile;
|
||||
|
||||
@ApiModelProperty("意向区域")
|
||||
private String wantShopArea;
|
||||
|
||||
@ApiModelProperty("调剂方式")
|
||||
private Integer acceptAdjustType;
|
||||
|
||||
@ApiModelProperty("加盟申请基本信息ID")
|
||||
private Long partnerBaseInfoId;
|
||||
|
||||
@ApiModelProperty("用户画像")
|
||||
private List<UserPortraitDTO> userPortrait;
|
||||
|
||||
public static PartnerSimpleBaseInfoVO convertVO(Long partnerLineId, HyPartnerUserInfoDO partnerUserInfo){
|
||||
if(Objects.isNull(partnerUserInfo)){
|
||||
return null;
|
||||
}
|
||||
PartnerSimpleBaseInfoVO result = new PartnerSimpleBaseInfoVO();
|
||||
result.setPartnerLineId(partnerLineId);
|
||||
result.setUsername(partnerUserInfo.getUsername());
|
||||
result.setMobile(partnerUserInfo.getMobile());
|
||||
result.setWantShopArea(partnerUserInfo.getWantShopArea());
|
||||
result.setAcceptAdjustType(partnerUserInfo.getAcceptAdjustType());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
package com.cool.store.job;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.cool.store.entity.HyPartnerBaseInfoDO;
|
||||
import com.cool.store.entity.SyncEcCustomerDO;
|
||||
import com.cool.store.entity.SyncEcCustomerLabelDO;
|
||||
import com.cool.store.mapper.HyPartnerBaseInfoMapper;
|
||||
import com.cool.store.sdk.ec.EcClient;
|
||||
import com.cool.store.sdk.ec.request.SyncEcCustomerLabelRequest;
|
||||
import com.cool.store.sdk.ec.request.SyncEcCustomerRequest;
|
||||
import com.cool.store.sdk.ec.response.SyncEcCustomerLabelResponse;
|
||||
import com.cool.store.service.HyPartnerBaseInfoService;
|
||||
import com.cool.store.utils.MybatisBatchUtils;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author hxd
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SyncEcCustomerLabelJob {
|
||||
|
||||
@Value("${ec.baseUrl:null}")
|
||||
private String baseUrl;
|
||||
|
||||
@Resource
|
||||
private HyPartnerBaseInfoMapper hyPartnerBaseInfoMapper;
|
||||
|
||||
@XxlJob("SyncEcCustomerLabelJob")
|
||||
public void execute() {
|
||||
XxlJobHelper.log("-------------------------------同步ec客户标签数据到小程序开始-------------------------------");
|
||||
syncEcLabelExecute();
|
||||
XxlJobHelper.log("-------------------------------同步ec标签数据到小程序结束-------------------------------");
|
||||
XxlJobHelper.handleSuccess();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private MybatisBatchUtils mybatisBatchUtils;
|
||||
|
||||
private final Integer count = 20;
|
||||
|
||||
/**
|
||||
* 同步ec标签到招商数据库中
|
||||
*/
|
||||
private void syncEcLabelExecute() {
|
||||
//获取总数
|
||||
int size = hyPartnerBaseInfoMapper.selectAllList();
|
||||
//执行数
|
||||
int counts = size / count;
|
||||
//取余,如果大于1,就再加一
|
||||
int yu = size % count;
|
||||
if (yu > 0) {
|
||||
counts += 1;
|
||||
}
|
||||
for (int i = 1; i <= counts; i++) {
|
||||
XxlJobHelper.log("执行limit1:" + count * (i - 1) + ",执行limit2:" + count);
|
||||
List<SyncEcCustomerLabelDO> list = hyPartnerBaseInfoMapper.selectListByLimit(count * (i - 1), count);
|
||||
SyncEcCustomerLabelRequest syncEcCustomerLabelRequest = new SyncEcCustomerLabelRequest();
|
||||
syncEcCustomerLabelRequest.setParameter(list);
|
||||
EcClient ecClient = new EcClient();
|
||||
SyncEcCustomerLabelResponse exec = ecClient.exec(baseUrl, syncEcCustomerLabelRequest);
|
||||
if (ObjectUtil.isNull(exec)) {
|
||||
continue;
|
||||
}
|
||||
List<SyncEcCustomerLabelDO> execList = exec.getData();
|
||||
if (CollectionUtils.isEmpty(execList)) {
|
||||
continue;
|
||||
}
|
||||
List<HyPartnerBaseInfoDO> collect = execList.stream().map((item) -> {
|
||||
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO();
|
||||
BeanUtil.copyProperties(item, hyPartnerBaseInfoDO);
|
||||
return hyPartnerBaseInfoDO;
|
||||
}).collect(Collectors.toList());
|
||||
mybatisBatchUtils.batchInsertOrUpdate(collect, HyPartnerBaseInfoMapper.class, (record, mapper) -> mapper.updateByMobile(record));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.sdk.ec.request;
|
||||
|
||||
import com.cool.store.sdk.ec.core.EcRequest;
|
||||
import com.cool.store.sdk.ec.response.SyncEcCustomerLabelResponse;
|
||||
|
||||
/**
|
||||
* @author hxd
|
||||
*/
|
||||
public class SyncEcCustomerLabelRequest extends EcRequest<SyncEcCustomerLabelResponse> {
|
||||
|
||||
@Override
|
||||
public String getApiUrl() {
|
||||
return "/ec/appletToEcLabel";
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Class<SyncEcCustomerLabelResponse> getResponseClass() {
|
||||
return SyncEcCustomerLabelResponse.class;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.cool.store.sdk.ec.response;
|
||||
|
||||
|
||||
import com.cool.store.entity.SyncEcCustomerLabelDO;
|
||||
import com.cool.store.sdk.ec.core.EcResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author hxd
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SyncEcCustomerLabelResponse extends EcResponse {
|
||||
|
||||
private List<SyncEcCustomerLabelDO> data;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.beauty.AddBeautyCameraSettingRequest;
|
||||
import com.cool.store.vo.beauty.BeautyCameraSettingVO;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: BeautyCameraSettingService
|
||||
* @Description: 美颜配置service
|
||||
* @date 2023-09-11 14:23
|
||||
*/
|
||||
public interface BeautyCameraSettingService {
|
||||
|
||||
/**
|
||||
* AddBeautyCameraSettingRequest request
|
||||
* @param userId
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
Long saveBeautyCameraSetting(String userId, AddBeautyCameraSettingRequest request);
|
||||
|
||||
/**
|
||||
* 获取美颜配置
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
BeautyCameraSettingVO queryBeautyCameraSetting(String userId);
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.CustomerInfoRequest;
|
||||
import com.cool.store.request.GetTagRequest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -8,4 +9,7 @@ public interface EcSyncService {
|
||||
boolean ecToApplet(List<CustomerInfoRequest> queryListData);
|
||||
|
||||
void getChannelSource();
|
||||
|
||||
Boolean labelInfo(List<GetTagRequest> getTagRequestList);
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.request.*;
|
||||
import com.cool.store.vo.*;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import com.cool.store.vo.partner.PartnerSimpleBaseInfoVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
import java.util.List;
|
||||
@@ -57,7 +58,7 @@ public interface HyPartnerLineInfoService {
|
||||
*/
|
||||
Boolean transferInvestmentManager(LoginUserInfo user, TransferInvestmentManagerRequest request,Boolean sendFlag) throws ApiException;
|
||||
|
||||
Boolean batchTransferInvestmentManager(LoginUserInfo user, BatchTransferInvestmentManagerRequest request) throws ApiException;
|
||||
List<BatchTransferVO> batchTransferInvestmentManager(LoginUserInfo user, BatchTransferInvestmentManagerRequest request) throws ApiException;
|
||||
|
||||
/**
|
||||
* 分配招商经理
|
||||
@@ -65,7 +66,7 @@ public interface HyPartnerLineInfoService {
|
||||
* @param lineIdList
|
||||
* @return
|
||||
*/
|
||||
Boolean allocationInvestmentManager(LoginUserInfo user, List<Long> lineIdList);
|
||||
Boolean allocationInvestmentManager(LoginUserInfo user, String userId,List<Long> lineIdList);
|
||||
|
||||
|
||||
/**
|
||||
@@ -162,4 +163,17 @@ public interface HyPartnerLineInfoService {
|
||||
|
||||
Long checkGenerateNewLineId(Long lineId);
|
||||
|
||||
/**
|
||||
* 编辑加盟商基本信息
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
Integer editBaseInfo(EditBaseInfoRequest request);
|
||||
|
||||
/**
|
||||
* 获取加盟商基本信息
|
||||
* @param partnerLineId
|
||||
* @return
|
||||
*/
|
||||
PartnerSimpleBaseInfoVO queryBaseInfo(Long partnerLineId);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.cool.store.dto.label.LabelGroupAddDTO;
|
||||
import com.cool.store.dto.label.LabelGroupDeleteDTO;
|
||||
import com.cool.store.dto.label.LabelGroupListDTO;
|
||||
import com.cool.store.dto.label.LabelGroupUpdateDTO;
|
||||
import com.cool.store.entity.HyPartnerLabelGroupDO;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.vo.LabelGroupListVo;
|
||||
|
||||
@@ -44,4 +45,12 @@ public interface LabelGroupService {
|
||||
*/
|
||||
List<LabelGroupListVo> getAllLabelGroupList();
|
||||
|
||||
/**
|
||||
* 添加ec标签组
|
||||
* @param hyPartnerLabelGroupDO
|
||||
*/
|
||||
void addEcLabelGroup(HyPartnerLabelGroupDO hyPartnerLabelGroupDO);
|
||||
|
||||
HyPartnerLabelGroupDO selectByPrimaryKey(Long id);
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.cool.store.dto.label.LabelAddDTO;
|
||||
import com.cool.store.dto.label.LabelDeleteDTO;
|
||||
import com.cool.store.dto.label.LabelListDTO;
|
||||
import com.cool.store.dto.label.LabelUpdateDTO;
|
||||
import com.cool.store.entity.HyPartnerLabelDO;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.vo.LabelListVo;
|
||||
|
||||
@@ -55,4 +56,9 @@ public interface LabelService {
|
||||
* @param dto
|
||||
*/
|
||||
void deleteLabel(LabelDeleteDTO dto);
|
||||
|
||||
HyPartnerLabelDO selectByPrimaryKey(Long classId);
|
||||
|
||||
void addEcLabel(HyPartnerLabelDO hyPartnerLabelDO);
|
||||
|
||||
}
|
||||
|
||||
@@ -64,5 +64,12 @@ public interface OpenAreaService {
|
||||
*/
|
||||
OpenProvinceVO getOpenProvince();
|
||||
|
||||
/**
|
||||
* V1.4
|
||||
* 意向区域添加不限
|
||||
* 每个市下面添加一个不限
|
||||
*/
|
||||
Boolean addOpenArea();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.dao.BeautyCameraSettingDAO;
|
||||
import com.cool.store.entity.BeautyCameraSettingDO;
|
||||
import com.cool.store.request.beauty.AddBeautyCameraSettingRequest;
|
||||
import com.cool.store.service.BeautyCameraSettingService;
|
||||
import com.cool.store.vo.beauty.BeautyCameraSettingVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: BeautyCameraSettingServiceImpl
|
||||
* @Description:
|
||||
* @date 2023-09-11 14:23
|
||||
*/
|
||||
@Service
|
||||
public class BeautyCameraSettingServiceImpl implements BeautyCameraSettingService {
|
||||
|
||||
@Resource
|
||||
private BeautyCameraSettingDAO beautyCameraSettingDAO;
|
||||
|
||||
@Override
|
||||
public Long saveBeautyCameraSetting(String userId, AddBeautyCameraSettingRequest request) {
|
||||
BeautyCameraSettingDO beautyCameraSettingDO = AddBeautyCameraSettingRequest.convertDO(userId, request);
|
||||
return beautyCameraSettingDAO.insertOrUpdateBeautyCameraSetting(beautyCameraSettingDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BeautyCameraSettingVO queryBeautyCameraSetting(String userId) {
|
||||
BeautyCameraSettingDO beautyCameraSetting = beautyCameraSettingDAO.getBeautyCameraSetting(userId);
|
||||
return BeautyCameraSettingVO.convertVO(beautyCameraSetting);
|
||||
}
|
||||
}
|
||||
@@ -137,6 +137,12 @@ public class CallServiceImpl implements CallService {
|
||||
if(callRecordDO == null){
|
||||
throw new ApiException(ErrorCodeEnum.CALL_RECORD_NOT_EXIST_ERROR);
|
||||
}
|
||||
callRecordDO.setCallStatus(request.getCallStatus());
|
||||
callRecordDO.setFailReason(request.getFailReason());
|
||||
if(StringUtils.isNotEmpty(request.getCallStartTime())&&StringUtils.isNotEmpty(request.getCallEndTime())){
|
||||
callRecordDO.setCallStartTime(DateUtil.parse(request.getCallStartTime()));
|
||||
callRecordDO.setCallEndTime(DateUtil.parse(request.getCallEndTime()));
|
||||
}
|
||||
callRecordDO.setRecordUrl(request.getRecordUrl());
|
||||
callRecordDO.setUpdater("system-app");
|
||||
callRecordDO.setUpdateTime(new Date());
|
||||
|
||||
@@ -16,8 +16,11 @@ import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.http.UserSourceResponse;
|
||||
import com.cool.store.mapper.HyPartnerLabelGroupMapper;
|
||||
import com.cool.store.mapper.HyPartnerLabelMapper;
|
||||
import com.cool.store.mapper.HyPartnerUserChannelMapper;
|
||||
import com.cool.store.request.CustomerInfoRequest;
|
||||
import com.cool.store.request.GetTagRequest;
|
||||
import com.cool.store.sdk.ec.EcClient;
|
||||
import com.cool.store.sdk.ec.bo.ChangeFollowUserBo;
|
||||
import com.cool.store.sdk.ec.bo.UpdateCustomerBo;
|
||||
@@ -26,6 +29,8 @@ import com.cool.store.sdk.ec.request.UpdateCustomerRequest;
|
||||
import com.cool.store.sdk.ec.response.ChangeFollowUserResponse;
|
||||
import com.cool.store.sdk.ec.response.UpdateCustomerResponse;
|
||||
import com.cool.store.service.EcSyncService;
|
||||
import com.cool.store.service.LabelGroupService;
|
||||
import com.cool.store.service.LabelService;
|
||||
import com.cool.store.utils.Post;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.utils.UUIDUtils;
|
||||
@@ -48,10 +53,10 @@ import java.util.List;
|
||||
public class EcSyncServiceImpl implements EcSyncService {
|
||||
|
||||
|
||||
|
||||
@Value("${ec.baseUrl:null}")
|
||||
private String baseUrl;
|
||||
|
||||
|
||||
@Resource
|
||||
private HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
|
||||
|
||||
@@ -68,6 +73,12 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
@Resource
|
||||
private HyPartnerUserChannelMapper hyPartnerUserChannelMapper;
|
||||
|
||||
@Resource
|
||||
private LabelGroupService labelGroupService;
|
||||
|
||||
@Resource
|
||||
private LabelService labelService;
|
||||
|
||||
|
||||
@Override
|
||||
public boolean ecToApplet(List<CustomerInfoRequest> queryListData) {
|
||||
@@ -84,7 +95,7 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
|
||||
@Override
|
||||
public void getChannelSource() {
|
||||
String s = HttpUtil.get(baseUrl+"/ec/getChannelSource");
|
||||
String s = HttpUtil.get(baseUrl + "/ec/getChannelSource");
|
||||
UserSourceResponse userSourceResponse = JSONObject.parseObject(s, UserSourceResponse.class);
|
||||
for (UserSourceResponse.ChannelSource channelSource : userSourceResponse.getData()) {
|
||||
Long id = channelSource.getId();
|
||||
@@ -95,13 +106,35 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
if (ObjectUtil.isNotNull(selectByChannel)) {
|
||||
hyPartnerUserChannel.setUpdateTime(new Date()).setId(selectByChannel.getId());
|
||||
hyPartnerUserChannelMapper.updateByPrimaryKeySelective(hyPartnerUserChannel);
|
||||
}else {
|
||||
} else {
|
||||
hyPartnerUserChannel.setCreateTime(new Date());
|
||||
hyPartnerUserChannelMapper.insertSelective(hyPartnerUserChannel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean labelInfo(List<GetTagRequest> getTagRequestList) {
|
||||
for (GetTagRequest getTagRequest : getTagRequestList) {
|
||||
Long groupId = getTagRequest.getGroupId();
|
||||
if (ObjectUtil.isNotNull(labelGroupService.selectByPrimaryKey(groupId))) {
|
||||
continue;
|
||||
}
|
||||
HyPartnerLabelGroupDO hyPartnerLabelGroupDO = new HyPartnerLabelGroupDO();
|
||||
hyPartnerLabelGroupDO.setLabelGroupName(getTagRequest.getGroupName()).setId(groupId);
|
||||
labelGroupService.addEcLabelGroup(hyPartnerLabelGroupDO);
|
||||
for (GetTagRequest.GetTagItem item : getTagRequest.getList()) {
|
||||
if (ObjectUtil.isNotNull(labelService.selectByPrimaryKey(item.getClassId()))) {
|
||||
continue;
|
||||
}
|
||||
HyPartnerLabelDO hyPartnerLabelDO = new HyPartnerLabelDO();
|
||||
hyPartnerLabelDO.setLabelName(item.getClassName()).setId(item.getClassId()).setLabelGroupId(groupId);
|
||||
labelService.addEcLabel(hyPartnerLabelDO);
|
||||
}
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步ec数据到表中 同时将部分数据同步到ec
|
||||
*
|
||||
@@ -115,13 +148,13 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
//获取客户来源id
|
||||
String channel = customerInfoItem.getChannel();
|
||||
HyPartnerUserChannelDO hyPartnerUserChannelDO = hyPartnerUserChannelMapper.selectByChannelName(channel);
|
||||
Long channelId =null;
|
||||
Long channelId = null;
|
||||
if (StringUtil.isNotEmpty(channel)) {
|
||||
if (ObjectUtil.isNull(hyPartnerUserChannelDO)||ObjectUtil.isNull(hyPartnerUserChannelDO.getChannelId())) {
|
||||
if (ObjectUtil.isNull(hyPartnerUserChannelDO) || ObjectUtil.isNull(hyPartnerUserChannelDO.getChannelId())) {
|
||||
getChannelSource();
|
||||
}
|
||||
HyPartnerUserChannelDO channelDO = hyPartnerUserChannelMapper.selectByChannelName(channel);
|
||||
channelId=channelDO.getChannelId();
|
||||
channelId = channelDO.getChannelId();
|
||||
}
|
||||
String newPartnerId = UUIDUtils.get32UUID();
|
||||
HyPartnerUserInfoDO resultUser = new HyPartnerUserInfoDO();
|
||||
@@ -130,11 +163,11 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
String followUserName = customerInfoItem.getFollowUserName();
|
||||
String followUserMobile = customerInfoItem.getFollowUserMobile();
|
||||
//传递过来有跟进人的情况下查询跟进人是否存在
|
||||
if (StringUtil.isNotEmpty(followUserMobile)&&StringUtil.isNotEmpty(followUserName)) {
|
||||
if (StringUtil.isNotEmpty(followUserMobile) && StringUtil.isNotEmpty(followUserName)) {
|
||||
String userId = enterpriseUserDAO.selectByMobile(followUserMobile);
|
||||
if (StringUtil.isEmpty(userId)) {
|
||||
// 给飞书群发送消息 跟进人找不到
|
||||
sendFeiShuRobotMessage("推送:飞书架构中找不到该用户:【" + followUserName + "】,该用户电话号码为:" + followUserMobile,"27243d49-97ca-4981-8aec-7c3bf84eb660");
|
||||
sendFeiShuRobotMessage("推送:飞书架构中找不到该用户:【" + followUserName + "】,该用户电话号码为:" + followUserMobile, "27243d49-97ca-4981-8aec-7c3bf84eb660");
|
||||
throw new ApiException("飞书架构中找不到该用户:【" + followUserName + "】,该用户电话号码为:" + followUserMobile);
|
||||
}
|
||||
resultLine.setInvestmentManager(userId);
|
||||
@@ -146,7 +179,7 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
resultBase.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile());
|
||||
|
||||
HyPartnerUserInfoDO newUserInfo = hyPartnerUserInfoDAO.selectByMobile(resultUser.getMobile());
|
||||
EcClient ecClient=new EcClient();
|
||||
EcClient ecClient = new EcClient();
|
||||
//有就更新ec没有就插入
|
||||
if (newUserInfo != null) {
|
||||
//招商客户姓名为空
|
||||
@@ -156,11 +189,11 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
}
|
||||
// EC与沪姨合伙人同时存在的线索用户,但用户姓名不同,将沪姨合伙人线索姓名同步至EC覆盖原EC线索姓名
|
||||
if (!newUserInfo.getUsername().equals(resultUser.getUsername())) {
|
||||
UpdateCustomerRequest updateUserRequest=new UpdateCustomerRequest();
|
||||
UpdateCustomerRequest updateUserRequest = new UpdateCustomerRequest();
|
||||
UpdateCustomerBo updateCustomerBo = new UpdateCustomerBo();
|
||||
updateCustomerBo.setUsername(newUserInfo.getUsername()).setMobile(newUserInfo.getMobile()).setCrmId(customerInfoItem.getCrmId());
|
||||
updateUserRequest.setParameter(updateCustomerBo);
|
||||
UpdateCustomerResponse updateUserExec = ecClient.exec(baseUrl,updateUserRequest);
|
||||
UpdateCustomerResponse updateUserExec = ecClient.exec(baseUrl, updateUserRequest);
|
||||
}
|
||||
String oldPartnerId = newUserInfo.getPartnerId();
|
||||
//线索表
|
||||
@@ -168,14 +201,14 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
if (partnerLine != null) {
|
||||
// EC与沪姨合伙人同时存在的线索用户,但存在不同的跟进人,将沪姨合伙人跟进人信息同步至EC覆盖原EC跟进人信息
|
||||
if (StringUtil.isEmpty(partnerLine.getInvestmentManager())) {
|
||||
if (StringUtil.isNotEmpty(resultLine.getInvestmentManager())) {
|
||||
if (StringUtil.isNotEmpty(resultLine.getInvestmentManager())&&!getFollowLineStatus(partnerLine)) {
|
||||
resultLine.setId(partnerLine.getId()).setUpdateTime(new Date());
|
||||
//沪姨合伙人线索存在黑名单,EC该线索分配跟进人同步到沪姨合伙人但线索状态不变,还存在黑名单中
|
||||
resultLine.setLineStatus(partnerLine.getLineStatus().intValue()==LineStatusEnum.BLACKLIST.getCode().intValue()
|
||||
?LineStatusEnum.BLACKLIST.getCode():resultLine.getLineStatus());
|
||||
resultLine.setLineStatus(partnerLine.getLineStatus().intValue() == LineStatusEnum.BLACKLIST.getCode().intValue()
|
||||
? LineStatusEnum.BLACKLIST.getCode() : resultLine.getLineStatus());
|
||||
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(resultLine);
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
if (!getFollowLineStatus(partnerLine)) {
|
||||
//私海
|
||||
EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(partnerLine.getInvestmentManager());
|
||||
@@ -234,7 +267,7 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
|
||||
/**
|
||||
*招商公海内跟进次数大于等于1的用户EC同步该用户进去公海,假若跟进次数为0的同步到EC跟进人就是唐佑玉
|
||||
* @param partnerLine
|
||||
* @param partnerLine
|
||||
* @return true为公海 false:私海
|
||||
*/
|
||||
public Boolean getFollowLineStatus(HyPartnerLineInfoDO partnerLine){
|
||||
@@ -250,7 +283,6 @@ public class EcSyncServiceImpl implements EcSyncService {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 得到不带86开头的号码
|
||||
*
|
||||
|
||||
@@ -267,6 +267,9 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
||||
if(CollectionUtils.isNotEmpty(existDeptIds)){
|
||||
existDeptIds.remove(departmentDetail.getId());
|
||||
}
|
||||
if(CollectionUtils.isEmpty(existDeptIds)){
|
||||
enterpriseUser.setIsLeader(Boolean.FALSE);
|
||||
}
|
||||
enterpriseUser.setLeaderDeptIds(JSONObject.toJSONString(existDeptIds));
|
||||
}
|
||||
enterpriseUserDAO.batchInsertOrUpdate(leaderUserList);
|
||||
@@ -319,5 +322,4 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
||||
}
|
||||
enterpriseUserDAO.batchInsertOrUpdate(userList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -185,6 +185,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
partnerIntentInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
|
||||
partnerIntentInfoVO.setWorkflowStage(hyPartnerLineInfoDO.getWorkflowStage());
|
||||
partnerIntentInfoVO.setWorkflowStatus(hyPartnerLineInfoDO.getWorkflowStatus());
|
||||
partnerIntentInfoVO.setDetailedAddress(hyPartnerIntentInfoDO.getDetailedAddress());
|
||||
partnerIntentInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile());
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
|
||||
partnerIntentInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/"," "));
|
||||
@@ -442,6 +443,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
intentInfoDO.setPartnerLineId(request.getPartnerLineId());
|
||||
intentInfoDO.setLiveArea(request.getLiveArea());
|
||||
intentInfoDO.setWantShopArea(request.getWantShopArea());
|
||||
intentInfoDO.setDetailedAddress(request.getDetailedAddress());
|
||||
intentInfoDO.setEmail(request.getEmail());
|
||||
intentInfoDO.setAcceptAdjustType(request.getAcceptAdjustType());
|
||||
intentInfoDO.setIsHaveWantShop(request.getIsHaveWantShop());
|
||||
intentInfoDO.setWantShopInfo("");
|
||||
|
||||
@@ -225,7 +225,7 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
//更新会议开始时间为5分钟之内的房间状态为开启,会议状态变为已开始
|
||||
Date startTime = new Date();
|
||||
|
||||
List<HyPartnerLineInfoDO> waitForOpenInterviewLineList = hyPartnerLineInfoMapper.getWaitForOpenInterviewLineList(DateUtil.offsetDay(startTime,-2), DateUtil.offsetMinute(startTime, 5));
|
||||
List<HyPartnerLineInfoDO> waitForOpenInterviewLineList = hyPartnerLineInfoMapper.getWaitForOpenInterviewLineList(DateUtil.offsetDay(startTime,-1), DateUtil.offsetMinute(startTime, 5));
|
||||
if(CollectionUtils.isEmpty(waitForOpenInterviewLineList)){
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -23,9 +23,9 @@ import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.vo.*;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import com.cool.store.vo.partner.PartnerSimpleBaseInfoVO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -93,6 +93,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
private SmsService smsService;
|
||||
@Resource
|
||||
HyFollowTaskDAO hyFollowTaskDAO;
|
||||
@Resource
|
||||
private HyPartnerIntentInfoDAO hyPartnerIntentInfoDAO;
|
||||
|
||||
@Override
|
||||
public StageCountVO selectStagePendingCount(String userId) {
|
||||
@@ -167,6 +169,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Boolean transferInvestmentManager(LoginUserInfo user, TransferInvestmentManagerRequest request,Boolean sendFlag) throws ApiException {
|
||||
if (StringUtil.isBlank(request.getUserId())||request.getLineId()==null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
@@ -176,8 +179,10 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
if (request.getUserId().equals(hyPartnerLineInfoDO.getInvestmentManager())){
|
||||
throw new ServiceException(ErrorCodeEnum.NO_TRANSFER_REQUIRED);
|
||||
}
|
||||
hyPartnerLineInfoDAO.updateInvestmentManager(request.getUserId(), Arrays.asList(request.getLineId()));
|
||||
|
||||
//校验 合格资格面试阶段 面试状态已开始 不允许转让
|
||||
if(WorkflowStageEnum.INTERVIEW.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage())&&WorkflowStatusEnum.INTERVIEW_3.getCode().equals(hyPartnerLineInfoDO.getWorkflowStatus())){
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_STATUS_NOT_TRANSFER,WorkflowStatusEnum.INTERVIEW_3.getMessage());
|
||||
}
|
||||
List<String> userIdList = new ArrayList<>();
|
||||
userIdList.add(request.getUserId());
|
||||
if (StringUtils.isNotEmpty(hyPartnerLineInfoDO.getInvestmentManager())){
|
||||
@@ -186,17 +191,28 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
List<EnterpriseUserDO> userList = enterpriseUserDAO.getUserInfoByUserIds(userIdList);
|
||||
Map<String, EnterpriseUserDO> userDOMap = userList.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, data -> data));
|
||||
|
||||
//更新面试官
|
||||
if (WorkflowStageEnum.INTERVIEW.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage())
|
||||
&& WorkflowStatusEnum.INTERVIEW_2.getCode().equals(hyPartnerLineInfoDO.getWorkflowStatus())){
|
||||
//更新面试官(预约面试全阶段和合作资格面试待面试阶段都需要变更面试官)
|
||||
//待预约状态及之前还未生成面试信息,因此不做变更面试官操作
|
||||
if ( (WorkflowStageEnum.INTERVIEW.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage()) && WorkflowStatusEnum.INTERVIEW_2.getCode().equals(hyPartnerLineInfoDO.getWorkflowStatus()))
|
||||
|| (WorkflowStageEnum.RESERVATION.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage())) && !WorkflowStatusEnum.RESERVATION_0.getCode().equals(hyPartnerLineInfoDO.getWorkflowStatus())) {
|
||||
workFlowService.transferInvestmentManager(WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()),request);
|
||||
}
|
||||
//转让招商经理
|
||||
hyPartnerLineInfoDAO.updateInvestmentManager(request.getUserId(), Arrays.asList(request.getLineId()));
|
||||
String dateTime = DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_7);
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId());
|
||||
//发送飞书工作通知
|
||||
if (sendFlag){
|
||||
String dateTime = DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_7);
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId());
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.TRANS_INVESTMENT_MANAGER,Arrays.asList(request.getUserId()),dateTime,hyPartnerUserInfoDO.getUsername(),hyPartnerUserInfoDO.getMobile());
|
||||
}
|
||||
//如果是面试预约待审批阶段还要发送面试预约申请通知
|
||||
if (WorkflowStageEnum.RESERVATION.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage()) && WorkflowStatusEnum.RESERVATION_1.getCode().equals(hyPartnerLineInfoDO.getWorkflowStatus())) {
|
||||
HyPartnerInterviewPlanDO interviewPlanByLine = hyPartnerInterviewPlanDAO.getInterviewPlanByLineId(request.getLineId());
|
||||
if (interviewPlanByLine!=null && interviewPlanByLine.getStartTime()!=null ){
|
||||
String startTime = DateUtil.format(interviewPlanByLine.getStartTime(), CoolDateUtils.DATE_FORMAT_SEC_7);
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.INTERVIEW_APPOINTMENT, Arrays.asList(request.getUserId()),hyPartnerUserInfoDO.getUsername(),hyPartnerUserInfoDO.getMobile(),startTime);
|
||||
}
|
||||
}
|
||||
|
||||
//作废待完成&已逾期的任务
|
||||
hyFollowTaskDAO.cancelUndoFollowTask(request.getLineId());
|
||||
@@ -218,37 +234,61 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean batchTransferInvestmentManager(LoginUserInfo user, BatchTransferInvestmentManagerRequest request) throws ApiException {
|
||||
public List<BatchTransferVO> batchTransferInvestmentManager(LoginUserInfo user, BatchTransferInvestmentManagerRequest request) throws ApiException {
|
||||
if (CollectionUtils.isEmpty(request.getLineIds())||StringUtils.isEmpty(request.getUserId())){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
int num = request.getLineIds().size();
|
||||
List<HyPartnerLineInfoDO> hyPartnerLineInfoList = hyPartnerLineInfoDAO.getHyPartnerLineInfoList(request.getLineIds(), request.getUserId());
|
||||
//如果选中的线索中有线索招商经理已经是被装让的招商经理,则不允许批量操作
|
||||
if (CollectionUtils.isNotEmpty(hyPartnerLineInfoList)){
|
||||
throw new ServiceException(ErrorCodeEnum.NO_BATCH_TRANSFER_REQUIRED);
|
||||
}
|
||||
List<BatchTransferVO> result = new ArrayList<>();
|
||||
List<HyPartnerLineInfoDO> hyPartnerLineInfoList = hyPartnerLineInfoDAO.getHyPartnerLineInfoList(request.getLineIds(), null);
|
||||
Map<Long, String> partnerMap = hyPartnerLineInfoList.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getId, HyPartnerLineInfoDO::getPartnerId));
|
||||
List<String> partnerIdList = hyPartnerLineInfoList.stream().filter(x->StringUtils.isNotEmpty(x.getPartnerId()))
|
||||
.map(HyPartnerLineInfoDO::getPartnerId).distinct().collect(Collectors.toList());
|
||||
List<HyPartnerUserInfoDO> hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIdList);
|
||||
Map<String, HyPartnerUserInfoDO> partnerUserInfoDOMap = hyPartnerUserInfoDOS.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, x -> x));
|
||||
List<Long> successLineIds = new ArrayList<>();
|
||||
for (Long lineId:request.getLineIds()) {
|
||||
TransferInvestmentManagerRequest transferInvestmentManagerRequest = new TransferInvestmentManagerRequest();
|
||||
transferInvestmentManagerRequest.setUserId(request.getUserId());
|
||||
transferInvestmentManagerRequest.setLineId(lineId);
|
||||
try {
|
||||
this.transferInvestmentManager(user,transferInvestmentManagerRequest,num<=1?true:false);
|
||||
} catch (ApiException e) {
|
||||
log.info("transferInvestmentManager_success Transfer_interview_management_failed,lineId:{}",lineId);
|
||||
this.transferInvestmentManager(user,transferInvestmentManagerRequest,Boolean.FALSE);
|
||||
successLineIds.add(lineId);
|
||||
} catch (Exception e) {
|
||||
log.info("transferInvestmentManager_success Transfer_interview_management_failed,lineId:{},e:{}",lineId,e.getMessage());
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = partnerUserInfoDOMap.get(partnerMap.get(lineId));
|
||||
BatchTransferVO batchTransferVO = new BatchTransferVO();
|
||||
batchTransferVO.setErrorMessage(e.getMessage());
|
||||
if (e instanceof ServiceException){
|
||||
batchTransferVO.setErrorMessage(((ServiceException)e).getErrorMessage());
|
||||
}
|
||||
batchTransferVO.setPartnerMobile(hyPartnerUserInfoDO.getMobile());
|
||||
batchTransferVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
|
||||
result.add(batchTransferVO);
|
||||
}
|
||||
}
|
||||
if (num>1){
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.BATCH_TRANS_INVESTMENT_MANAGER,Arrays.asList(request.getUserId()),num,DateUtil.format(new Date(),CoolDateUtils.DATE_FORMAT_SEC_7));
|
||||
try {
|
||||
if (successLineIds.size()>1){
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.BATCH_TRANS_INVESTMENT_MANAGER,Arrays.asList(request.getUserId()),successLineIds.size(),DateUtil.format(new Date(),CoolDateUtils.DATE_FORMAT_SEC_7));
|
||||
}else if (successLineIds.size()==1){
|
||||
String dateTime = DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_7);
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = partnerUserInfoDOMap.get(partnerMap.get(successLineIds.get(0)));
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.TRANS_INVESTMENT_MANAGER,Arrays.asList(request.getUserId()),dateTime,hyPartnerUserInfoDO.getUsername(),hyPartnerUserInfoDO.getMobile());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.info("batchTransferInvestmentManager_error:{}",e.getMessage());
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean allocationInvestmentManager(LoginUserInfo user, List<Long> lineIdList) {
|
||||
if (user==null|| CollectionUtils.isEmpty(lineIdList)){
|
||||
public Boolean allocationInvestmentManager(LoginUserInfo operateUser,String userId, List<Long> lineIdList) {
|
||||
if (StringUtils.isEmpty(userId)|| CollectionUtils.isEmpty(lineIdList)){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
EnterpriseUserDO user = enterpriseUserDAO.getUserInfoById(userId);
|
||||
if (user==null){
|
||||
throw new ServiceException(ErrorCodeEnum.INVESTMENT_MANAGER_NOT_EXIST);
|
||||
}
|
||||
//加盟上线索集合
|
||||
List<HyPartnerLineInfoDO> partnerLineInfoList= hyPartnerLineInfoDAO.getLineListByLineIds(lineIdList);
|
||||
//过滤出已结束的线索 这块线索需要重新生成新的线索
|
||||
@@ -260,7 +300,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
closeLineList.stream().forEach(x->{
|
||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
|
||||
hyPartnerLineInfoDO.setPartnerId(x.getPartnerId());
|
||||
hyPartnerLineInfoDO.setInvestmentManager(user.getUserId());
|
||||
hyPartnerLineInfoDO.setInvestmentManager(userId);
|
||||
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
|
||||
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
|
||||
hyPartnerLineInfoDO.setLineStatus(1);
|
||||
@@ -280,22 +320,22 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
//没有结束的线索直接分配招商经理
|
||||
List<HyPartnerLineInfoDO> otherLineList = partnerLineInfoList.stream().filter(x -> x.getCloseTime() == null).collect(Collectors.toList());
|
||||
List<Long> otherLineIdList = otherLineList.stream().map(HyPartnerLineInfoDO::getId).collect(Collectors.toList());
|
||||
hyPartnerLineInfoDAO.updateInvestmentManager(user.getUserId(), otherLineIdList);
|
||||
hyPartnerLineInfoDAO.updateInvestmentManager(userId, otherLineIdList);
|
||||
//添加日志
|
||||
partnerLineInfoList.forEach(x->{
|
||||
//给招商经理发送飞书工作通知
|
||||
List<String> userIdList = new ArrayList<>();
|
||||
userIdList.add(user.getUserId());
|
||||
userIdList.add(userId);
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(x.getPartnerId());
|
||||
String dateTime = DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_7);
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.ALLOCATION_INVESTMENT_MANAGER,userIdList,dateTime,hyPartnerUserInfoDO.getUsername(),hyPartnerUserInfoDO.getMobile());
|
||||
|
||||
LineLogInfo lineLogInfo = new LineLogInfo(x.getPartnerId(), x.getId(), user.getUserId(),
|
||||
user.getName(), OperateTypeEnum.ALLOCATION_INVESTMENT_MANAGER,
|
||||
LineLogInfo lineLogInfo = new LineLogInfo(x.getPartnerId(), x.getId(), operateUser.getUserId(),
|
||||
operateUser.getName(), OperateTypeEnum.ALLOCATION_INVESTMENT_MANAGER,
|
||||
WorkflowStageEnum.getWorkflowStageByCode(x.getWorkflowStage()),
|
||||
x.getWorkflowStatus(), "");
|
||||
AllocationInvestmentManagerLogDTO logDTO = AllocationInvestmentManagerLogDTO.builder().allocationUserId(user.getUserId()).allocationUsername(user.getName())
|
||||
.mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build();
|
||||
AllocationInvestmentManagerLogDTO logDTO = AllocationInvestmentManagerLogDTO.builder().allocationUserId(operateUser.getUserId()).allocationUsername(operateUser.getName())
|
||||
.mobile(operateUser.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build();
|
||||
lineLogInfo.setData(logDTO);
|
||||
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
|
||||
});
|
||||
@@ -483,9 +523,9 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
|
||||
|
||||
//通过 拒绝添加日志
|
||||
if ("pass".equals(closeFollowRequest.getType())||"reject".equals(closeFollowRequest.getType())){
|
||||
if (WorkflowStageEnum.INTENT.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage())&&"reject".equals(closeFollowRequest.getType())){
|
||||
LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerLineInfoDO.getId(), user.getUserId(),
|
||||
user.getName(), OperateTypeEnum.REMOVE_BLACKLIST,
|
||||
user.getName(), OperateTypeEnum.CLOSE_FOLLOW,
|
||||
WorkflowStageEnum.getWorkflowStageByCode(oldWorkflowStage),
|
||||
oldWorkflowStatus, "");
|
||||
CloseOrPassFollowLogDTO log = CloseOrPassFollowLogDTO.builder().operateUserId(user.getUserId()).passReason(closeFollowRequest.getPassReason()).rejectRealReason(closeFollowRequest.getRejectRealReason())
|
||||
@@ -850,6 +890,54 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
return hyPartnerLineInfoDO.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Integer editBaseInfo(EditBaseInfoRequest request) {
|
||||
HyPartnerLineInfoDO lineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(request.getPartnerLineId());
|
||||
if(Objects.isNull(lineInfo)){
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
|
||||
}
|
||||
HyPartnerUserInfoDO partnerUserInfo = hyPartnerUserInfoDAO.selectByMobile(request.getMobile());
|
||||
if(Objects.nonNull(partnerUserInfo) && !lineInfo.getPartnerId().equals(partnerUserInfo.getPartnerId())){
|
||||
throw new ServiceException(ErrorCodeEnum.PARTNER_MOBILE_EXIST_0);
|
||||
}
|
||||
HyPartnerUserInfoDO update = new HyPartnerUserInfoDO();
|
||||
update.setPartnerId(lineInfo.getPartnerId());
|
||||
update.setUsername(request.getUsername());
|
||||
update.setMobile(request.getMobile());
|
||||
update.setWantShopArea(request.getWantShopArea());
|
||||
update.setAcceptAdjustType(request.getAcceptAdjustType());
|
||||
hyPartnerUserInfoDAO.updateByPartnerId(update);
|
||||
hyPartnerBaseInfoDAO.updateByPartnerId(request.getUsername(), request.getMobile(), lineInfo.getPartnerId());
|
||||
HyPartnerIntentInfoDO updateIntentInfo = new HyPartnerIntentInfoDO();
|
||||
updateIntentInfo.setPartnerLineId(request.getPartnerLineId());
|
||||
updateIntentInfo.setAcceptAdjustType(request.getAcceptAdjustType());
|
||||
updateIntentInfo.setWantShopArea(request.getWantShopArea());
|
||||
hyPartnerIntentInfoDAO.updateByPartnerLineId(updateIntentInfo);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PartnerSimpleBaseInfoVO queryBaseInfo(Long partnerLineId) {
|
||||
HyPartnerLineInfoDO lineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(partnerLineId);
|
||||
if(Objects.isNull(lineInfo)){
|
||||
return null;
|
||||
}
|
||||
HyPartnerUserInfoDO partnerUserInfo = hyPartnerUserInfoDAO.selectByPartnerId(lineInfo.getPartnerId());
|
||||
HyPartnerBaseInfoDO partnerBaseInfo = hyPartnerBaseInfoDAO.getByPartnerLineId(partnerLineId);
|
||||
PartnerSimpleBaseInfoVO result = PartnerSimpleBaseInfoVO.convertVO(partnerLineId, partnerUserInfo);
|
||||
String userPortrait = Optional.ofNullable(partnerBaseInfo).map(o->o.getUserPortrait()).orElse(null);
|
||||
if (StringUtils.isNotEmpty(userPortrait) && Objects.nonNull(result)){
|
||||
Map<Long, String> userPortraitMap = labelService.getUserPortraitMap(Arrays.asList(userPortrait));
|
||||
List<UserPortraitDTO> userPortraitList = userPortraitMap.entrySet().stream()
|
||||
.map(entry -> new UserPortraitDTO(entry.getKey(), entry.getValue()))
|
||||
.collect(Collectors.toList());
|
||||
result.setPartnerBaseInfoId(partnerBaseInfo.getId());
|
||||
result.setUserPortrait(userPortraitList);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* convertPartnerBlackListDTOToVo
|
||||
@@ -907,6 +995,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
partnerLineInfoAndBaseInfoVO.setAcceptAdjustType(partnerLineInfoAndBaseInfoDTO.getAcceptAdjustType());
|
||||
partnerLineInfoAndBaseInfoVO.setWantShopArea(partnerLineInfoAndBaseInfoDTO.getWantShopArea());
|
||||
partnerLineInfoAndBaseInfoVO.setLiveArea(partnerLineInfoAndBaseInfoDTO.getLiveArea());
|
||||
partnerLineInfoAndBaseInfoVO.setDetailedAddress(partnerLineInfoAndBaseInfoDTO.getDetailedAddress());
|
||||
partnerLineInfoAndBaseInfoVO.setEmail(partnerLineInfoAndBaseInfoDTO.getEmail());
|
||||
partnerLineInfoAndBaseInfoVO.setIdCard(partnerLineInfoAndBaseInfoDTO.getIdCard());
|
||||
partnerLineInfoAndBaseInfoVO.setChannelName(partnerLineInfoAndBaseInfoDTO.getChannelName());
|
||||
partnerLineInfoAndBaseInfoVO.setDevelopmentDirector(partnerLineInfoAndBaseInfoDTO.getDevelopmentDirector());
|
||||
|
||||
@@ -13,10 +13,7 @@ import com.cool.store.context.PartnerUserHolder;
|
||||
import com.cool.store.dao.EnterpriseUserDAO;
|
||||
import com.cool.store.dao.HyIntendDevMappingDAO;
|
||||
import com.cool.store.dao.HyInterviewDAO;
|
||||
import com.cool.store.dto.calendar.CreateCalendarEventDTO;
|
||||
import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
|
||||
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
|
||||
import com.cool.store.dto.calendar.UserFreeBusyInfoDTO;
|
||||
import com.cool.store.dto.calendar.*;
|
||||
import com.cool.store.dto.log.*;
|
||||
import com.cool.store.dto.message.SendCardMessageDTO;
|
||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||
@@ -156,38 +153,66 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
@Override
|
||||
@Transactional
|
||||
public void entrustOthers(EntrustOthersReq request) throws ApiException {
|
||||
//只有房间状态是待开放才可以委托他人
|
||||
Integer roomStatus = hyPartnerInterviewPlanMapper.getRoomStatus(request.getInterviewPlanId());
|
||||
if (!roomStatus.equals(RoomStatus.WAIT_FOR_OPEN.getCode())) {
|
||||
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
||||
}
|
||||
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
|
||||
HyPartnerLineInfoDO lineInfo = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(request.getPartnerLineId());
|
||||
//如果面试信息为空,抛出异常
|
||||
if (interviewInfo == null) {
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
|
||||
}
|
||||
if(RoomStatus.WAIT_FOR_OPEN.getCode() != Integer.parseInt(interviewInfo.getRoomStatus())){
|
||||
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
||||
//只有预约面试阶段和合作资格面试待面试阶段才能变更面试官
|
||||
if ( !WorkflowStatusEnum.INTERVIEW_2.getCode().equals(lineInfo.getWorkflowStatus())
|
||||
&& !WorkflowStageEnum.RESERVATION.getCode().equals(lineInfo.getWorkflowStage())) {
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_STATUS_ERROR);
|
||||
}
|
||||
//1.新面试官日程新增
|
||||
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
|
||||
createCalendarEventDTO.setStartTime(DateUtil.parse(interviewInfo.getStartTime()).getTime());
|
||||
createCalendarEventDTO.setEndTime(DateUtil.parse(interviewInfo.getEndTime()).getTime());
|
||||
createCalendarEventDTO.setUserId(request.getNewInterviewerId());
|
||||
createCalendarEventDTO.setJoinUserIds(Arrays.asList(request.getNewInterviewerId()));
|
||||
createCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
|
||||
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
|
||||
if(userCalendarEvent == null ){
|
||||
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
|
||||
}
|
||||
//2.原面试官日程删除
|
||||
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
|
||||
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
|
||||
deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
|
||||
if(userCalendarsEventDTO == null ){
|
||||
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
|
||||
// //1.新面试官日程新增
|
||||
// CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
|
||||
// createCalendarEventDTO.setStartTime(DateUtil.parse(interviewInfo.getStartTime()).getTime());
|
||||
// createCalendarEventDTO.setEndTime(DateUtil.parse(interviewInfo.getEndTime()).getTime());
|
||||
// createCalendarEventDTO.setUserId(request.getNewInterviewerId());
|
||||
// createCalendarEventDTO.setJoinUserIds(Arrays.asList(request.getNewInterviewerId()));
|
||||
// createCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
|
||||
// UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
|
||||
// if(userCalendarEvent == null ){
|
||||
// throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
|
||||
// }
|
||||
// //2.原面试官日程删除
|
||||
// DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
|
||||
// deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||
// deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
|
||||
// deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
// UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
|
||||
// if(userCalendarsEventDTO == null ){
|
||||
// throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
|
||||
// }
|
||||
|
||||
//有可能还未同意面试预约,这时候没有建立日程,只需要修改面试官
|
||||
//1.4 优化多次转让,线索转让次数 >= 1 无需添加日程,只转让线索的招商经理及面试官
|
||||
Integer transferTimes = hyPartnerLineInfoMapper.getTransferTimes(request.getPartnerLineId());
|
||||
if (interviewInfo.getFeishuCalendarId() != null && interviewInfo.getFeishuScheduleId() != null
|
||||
&& transferTimes < 1) {
|
||||
//V1.3 需求变更为将新面试官拉入原面试官日程,而非删除和新增日程
|
||||
//1. 原面试官面试日程信息
|
||||
String oldInterviewerId = CurrentUserHolder.getUserId();
|
||||
UpdateCalendarEventDTO updateCalendarEventDTO = new UpdateCalendarEventDTO();
|
||||
updateCalendarEventDTO.setUserId(oldInterviewerId);
|
||||
updateCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||
updateCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
|
||||
updateCalendarEventDTO.setStartTime(DateUtil.parse(interviewInfo.getStartTime()).getTime());
|
||||
updateCalendarEventDTO.setEndTime(DateUtil.parse(interviewInfo.getEndTime()).getTime());
|
||||
updateCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
|
||||
|
||||
//2. 邀请新面试官加入日程
|
||||
List<String> list = new ArrayList();
|
||||
list.add(request.getNewInterviewerId());
|
||||
//当前招商经理不是面试官,但是日程在招商经理这里
|
||||
if (!oldInterviewerId.equals(list.get(0))) {
|
||||
list.add(oldInterviewerId);
|
||||
}
|
||||
updateCalendarEventDTO.setJoinUserIds(list);
|
||||
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.updateUserCalendarEvent(updateCalendarEventDTO);
|
||||
if(userCalendarsEventDTO == null ){
|
||||
throw new ApiException(ErrorCodeEnum.FEISHU_UPDATE_SCHEDULE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
// 3.面试信息计划变更
|
||||
@@ -195,8 +220,8 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
record.setId(Long.valueOf(request.getInterviewPlanId()));
|
||||
record.setInterviewer(request.getNewInterviewerId());
|
||||
record.setUpdateTime(new Date());
|
||||
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
|
||||
record.setFeishuScheduleId(userCalendarEvent.getEventId());
|
||||
// record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
|
||||
// record.setFeishuScheduleId(userCalendarEvent.getEventId());
|
||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
||||
|
||||
//更新面试信息
|
||||
@@ -254,7 +279,13 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
createCalendarEventDTO.setStartTime(DateUtil.parse(request.getNewStartBookingTime()).getTime());
|
||||
createCalendarEventDTO.setEndTime(DateUtil.parse(request.getNewEndBookingTime()).getTime());
|
||||
createCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
createCalendarEventDTO.setJoinUserIds(Arrays.asList(interviewInfo.getInterviewerId()));
|
||||
List<String> list = Arrays.asList(interviewInfo.getInterviewerId());
|
||||
//可能当前招商经理不是面试官,但是日程在招商经理这里
|
||||
String userId = CurrentUserHolder.getUserId();
|
||||
if (!userId.equals(list.get(0))) {
|
||||
list.add(userId);
|
||||
}
|
||||
createCalendarEventDTO.setJoinUserIds(list);
|
||||
createCalendarEventDTO.setSummary(generateInterviewTitle(interviewInfo.getPartnerLineId()));
|
||||
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
|
||||
if (userCalendarEvent == null) {
|
||||
@@ -391,6 +422,10 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
if(request.getPartnerLineId() == null || request.getPartnerLineId()<=0){
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_LINE_ID_IS_NULL);
|
||||
}
|
||||
//如果开始时间小于当前时间需要报错
|
||||
if(DateUtil.date().isAfter(DateUtil.parse(request.getStartBookingTime()))){
|
||||
throw new ApiException(ErrorCodeEnum.CREATE_APPOINTMENT_TIME_ERROR);
|
||||
}
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanDO.setPartnerLineId(request.getPartnerLineId());
|
||||
hyPartnerInterviewPlanDO.setDeleted(false);
|
||||
@@ -505,6 +540,13 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
|
||||
record.setFeishuScheduleId(userCalendarEvent.getEventId());
|
||||
record.setApplicationApproved(1);
|
||||
//如果同意的时候已经超过预约的时间前 5 分钟,直接进入面试已开始阶段
|
||||
DateTime interviewStartTime = DateUtil.offsetMinute(DateUtil.parseDateTime(interviewVO.getStartTime()), -5);
|
||||
Date now = new Date();
|
||||
if (interviewStartTime.isBeforeOrEquals(now)) {
|
||||
record.setRoomStatus(RoomStatus.OPEN.getCode());
|
||||
record.setActualEndTime(new Date());
|
||||
}
|
||||
record.setUpdateTime(new Date());
|
||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
||||
|
||||
@@ -512,7 +554,11 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||
hyPartnerInterviewDO.setId(Long.valueOf(interviewVO.getInterviewId()));
|
||||
//更新面试状态和线索子流程状态
|
||||
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_2);
|
||||
if (interviewStartTime.isBeforeOrEquals(now)) {
|
||||
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_3);
|
||||
} else {
|
||||
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_2);
|
||||
}
|
||||
// hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_2.getCode()));
|
||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.cool.store.mapper.HyPartnerLabelMapper;
|
||||
import com.cool.store.service.LabelGroupService;
|
||||
import com.cool.store.vo.LabelGroupListVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -33,6 +34,10 @@ public class LabelGroupServiceImpl implements LabelGroupService {
|
||||
@Autowired
|
||||
private HyPartnerLabelMapper labelMapper;
|
||||
|
||||
|
||||
@Value("${ec.sync.createUserId:null}")
|
||||
private String createUserId;
|
||||
|
||||
/**
|
||||
* 查询标签组信息列表
|
||||
* @param dto 查询条件
|
||||
@@ -110,6 +115,18 @@ public class LabelGroupServiceImpl implements LabelGroupService {
|
||||
return labelGroupMapper.getLabelGroupList(labelGroupDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HyPartnerLabelGroupDO selectByPrimaryKey(Long id){
|
||||
return labelGroupMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEcLabelGroup(HyPartnerLabelGroupDO hyPartnerLabelGroupDO) {
|
||||
hyPartnerLabelGroupDO.setCreateTime(new Date()).setCreateUserId(createUserId).setEditDate(new Date())
|
||||
.setEditUserId(createUserId);
|
||||
labelGroupMapper.insertSelective(hyPartnerLabelGroupDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 某个标签组内是否有未删除的标签
|
||||
* @param id 标签组 id
|
||||
|
||||
@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -32,6 +33,11 @@ public class LabelServiceImpl implements LabelService {
|
||||
@Autowired
|
||||
private HyPartnerLabelMapper labelMapper;
|
||||
|
||||
|
||||
|
||||
@Value("${ec.sync.createUserId:null}")
|
||||
private String createUserId;
|
||||
|
||||
/**
|
||||
* 获取数组列表
|
||||
*
|
||||
@@ -98,6 +104,18 @@ public class LabelServiceImpl implements LabelService {
|
||||
labelMapper.updateByPrimaryKeySelective(labelDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HyPartnerLabelDO selectByPrimaryKey(Long classId) {
|
||||
return labelMapper.selectByPrimaryKey(classId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEcLabel(HyPartnerLabelDO hyPartnerLabelDO) {
|
||||
hyPartnerLabelDO.setEditDate(new Date()).setCreateTime(new Date()).setEditUserId(createUserId).setCreateUserId(createUserId)
|
||||
.setUpdateUserId(createUserId);
|
||||
labelMapper.insertSelective(hyPartnerLabelDO);
|
||||
}
|
||||
|
||||
private Boolean whetherLabelRepeat(HyPartnerLabelDO label) throws ApiException {
|
||||
Long id = label.getId();
|
||||
label.setId(null);
|
||||
|
||||
@@ -36,6 +36,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class LineHighSeasServiceImpl implements LineHighSeasService {
|
||||
@@ -145,6 +146,10 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
|
||||
String fileStr = ossServer.uploadFileServer(stream, dir + getExcelName());
|
||||
return new ResponseResult(500, "共上传" + lineDOList.size() + "条线索,其中" + styleCells.size() + "条存在异常", new ErrorExcelResponse(lineDOList.size(), styleCells.size(), fileStr));
|
||||
}
|
||||
//获取重复手机号集合
|
||||
List<String> uniqueList = lineDOList.stream().filter(item->StringUtil.isNotEmpty(item.getMobile())).collect(Collectors.groupingBy(HyPartnerLineDO::getMobile, Collectors.counting()))
|
||||
.entrySet().stream().filter(e -> e.getValue() > 1)
|
||||
.map(Map.Entry::getKey).collect(Collectors.toList());
|
||||
for (int i = 0; i < lineDOList.size(); i++) {
|
||||
HyPartnerLineDO hyPartnerLineDO = lineDOList.get(i);
|
||||
String partnerName = hyPartnerLineDO.getPartnerName();
|
||||
@@ -174,6 +179,11 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
|
||||
hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.MOBILE_EXIST : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.MOBILE_EXIST));
|
||||
ExcelUtil.setStyleMap(styleCells, i, 1, new String[]{ExcelUtil.FONT_RED});
|
||||
}
|
||||
//手机号重复
|
||||
if (uniqueList.contains(mobile)) {
|
||||
hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.MOBILE_REPEAT : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.MOBILE_REPEAT));
|
||||
ExcelUtil.setStyleMap(styleCells, i, 1, new String[]{ExcelUtil.FONT_RED});
|
||||
}
|
||||
}
|
||||
//常驻区域为空
|
||||
String liveArea = hyPartnerLineDO.getLiveAreaReplace().trim();
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.HyOpenAreaInfoDAO;
|
||||
import com.cool.store.dto.partner.ApplyReservationProvinceDTO;
|
||||
import com.cool.store.entity.HyOpenAreaInfoDO;
|
||||
import com.cool.store.mapper.HyOpenAreaInfoMapper;
|
||||
import com.cool.store.request.OpenAreaRequest;
|
||||
import com.cool.store.service.OpenAreaService;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
@@ -36,6 +37,8 @@ public class OpenAreaServiceImpl implements OpenAreaService {
|
||||
@Resource
|
||||
private HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
|
||||
@Resource
|
||||
private HyOpenAreaInfoMapper hyOpenAreaInfoMapper;
|
||||
@Resource
|
||||
private RedisUtilPool redisUtilPool;
|
||||
|
||||
|
||||
@@ -190,6 +193,25 @@ public class OpenAreaServiceImpl implements OpenAreaService {
|
||||
return openProvinceVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean addOpenArea() {
|
||||
//查询出所有的市
|
||||
List<HyOpenAreaInfoDO> openArea = hyOpenAreaInfoDAO.selectAllCity();
|
||||
if (CollectionUtils.isNotEmpty(openArea)){
|
||||
//在每个市下面添加名称为不限的区
|
||||
openArea.forEach(x->{
|
||||
Long id = x.getId();
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = new HyOpenAreaInfoDO();
|
||||
hyOpenAreaInfoDO.setAreaStatus("open");
|
||||
hyOpenAreaInfoDO.setAreaName("不限");
|
||||
hyOpenAreaInfoDO.setParentId(id);
|
||||
hyOpenAreaInfoDO.setAreaPath(x.getAreaPath()+"不限/");
|
||||
hyOpenAreaInfoMapper.insertSelective(hyOpenAreaInfoDO);
|
||||
});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private OpenAreaVO convertDoToVo(HyOpenAreaInfoDO hyOpenAreaInfoDO){
|
||||
OpenAreaVO openAreaVO = new OpenAreaVO();
|
||||
openAreaVO.setId(hyOpenAreaInfoDO.getId());
|
||||
@@ -259,6 +281,7 @@ public class OpenAreaServiceImpl implements OpenAreaService {
|
||||
}
|
||||
}
|
||||
return jsonArray;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -184,6 +184,10 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
if(RoomStatus.WAIT_FOR_OPEN.getCode() != Integer.parseInt(interviewInfo.getRoomStatus())){
|
||||
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
||||
}
|
||||
//如果开始时间小于当前时间需要报错
|
||||
if(DateUtil.date().isAfter(DateUtil.parse(request.getNewStartBookingTime()))){
|
||||
throw new ApiException(ErrorCodeEnum.CREATE_APPOINTMENT_TIME_ERROR);
|
||||
}
|
||||
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
||||
record.setId(Long.valueOf(request.getInterviewPlanId()));
|
||||
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
|
||||
|
||||
@@ -104,6 +104,13 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
||||
UserInfoUpdateDTO.UserInfoUpdate beforeUserinfoUpdate = new UserInfoUpdateDTO.UserInfoUpdate(hyPartnerUserInfoDO.getUsername(), hyPartnerUserInfoDO.getMobile(), hyPartnerUserInfoDO.getLiveArea(), hyPartnerUserInfoDO.getWantShopArea(), hyPartnerUserInfoDO.getAcceptAdjustType());
|
||||
UserInfoUpdateDTO.UserInfoUpdate afterUserinfoUpdate = new UserInfoUpdateDTO.UserInfoUpdate(partnerUserInfoRequest.getUsername(), partnerUserInfoRequest.getMobile(), partnerUserInfoRequest.getLiveArea(), partnerUserInfoRequest.getWantShopArea(), partnerUserInfoRequest.getAcceptAdjustType());
|
||||
|
||||
//如果手机号不相同 校验手机号
|
||||
if (StringUtils.isNotEmpty(hyPartnerUserInfoDO.getMobile()) && !hyPartnerUserInfoDO.getMobile().equals(partnerUserInfoRequest.getMobile())){
|
||||
HyPartnerUserInfoDO userInfo = hyPartnerUserInfoDAO.selectByMobile(partnerUserInfoRequest.getMobile());
|
||||
if (userInfo != null){
|
||||
throw new ServiceException(ErrorCodeEnum.MOBILE_EXIST);
|
||||
}
|
||||
}
|
||||
ApplyBaseInfoVO applyBaseInfoVO = new ApplyBaseInfoVO();
|
||||
fillUserInfoDOByRequest(hyPartnerUserInfoDO, partnerUserInfoRequest);
|
||||
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.vo.interview.CalendarInfo;
|
||||
import com.cool.store.vo.interview.FreeBusyInfo;
|
||||
@@ -17,7 +18,7 @@ public class TimeSlotGenerator {
|
||||
|
||||
List<CalendarInfo> daySlots = generateDaySlots(startDate, endDate);
|
||||
for (CalendarInfo daySlot : daySlots) {
|
||||
System.out.println(daySlot);
|
||||
System.out.println(JSON.toJSON(daySlot));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +37,7 @@ public class TimeSlotGenerator {
|
||||
int day = startCal.get(Calendar.DAY_OF_MONTH);
|
||||
int dayOfWeek = startCal.get(Calendar.DAY_OF_WEEK);
|
||||
|
||||
List<FreeBusyInfo> hourSlots = generateHourSlots();
|
||||
List<FreeBusyInfo> hourSlots = generateHalfHourSlots();
|
||||
CalendarInfo daySlot = new CalendarInfo(transDayOfWeek(dayOfWeek),
|
||||
String.valueOf(year),
|
||||
StringUtil.addZeroForNum(String.valueOf(month),2),
|
||||
@@ -65,6 +66,29 @@ public class TimeSlotGenerator {
|
||||
return hourSlots;
|
||||
}
|
||||
|
||||
private static List<FreeBusyInfo> generateHalfHourSlots() {
|
||||
List<FreeBusyInfo> hourSlots = new ArrayList<>();
|
||||
|
||||
//循环打印半小时的时间段
|
||||
for (int hour = 10; hour < 17; hour++) {
|
||||
if(hour == 12){
|
||||
continue;
|
||||
}
|
||||
String startTime = String.format("%02d:00", hour);
|
||||
String endTime = String.format("%02d:30", hour);
|
||||
//默认空闲
|
||||
FreeBusyInfo hourSlot = new FreeBusyInfo(startTime, endTime, true);
|
||||
hourSlots.add(hourSlot);
|
||||
|
||||
String startTime2 = String.format("%02d:30", hour);
|
||||
String endTime2 = String.format("%02d:00", hour + 1);
|
||||
//默认空闲
|
||||
FreeBusyInfo hourSlot2 = new FreeBusyInfo(startTime2, endTime2, true);
|
||||
hourSlots.add(hourSlot2);
|
||||
}
|
||||
return hourSlots;
|
||||
}
|
||||
|
||||
public static int transDayOfWeek(int dayOfWeek) {
|
||||
switch (dayOfWeek) {
|
||||
case 1:
|
||||
|
||||
@@ -106,6 +106,12 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
||||
// 微信未授权过
|
||||
if(hyPartnerUserPlatformBindDO == null){
|
||||
hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
||||
if(hyPartnerUserInfoDO != null){
|
||||
HyPartnerUserPlatformBindDO hy = hyPartnerUserPlatformBindDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
|
||||
if (hy!=null){
|
||||
throw new ServiceException(ErrorCodeEnum.MOBILE_WECHAT_EXIST);
|
||||
}
|
||||
}
|
||||
if(hyPartnerUserInfoDO == null){
|
||||
hyPartnerUserInfoDO = new HyPartnerUserInfoDO();
|
||||
hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
||||
|
||||
@@ -1,11 +1,29 @@
|
||||
package com.cool.store.service.impl.workflow;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.cool.store.entity.HyPartnerInterviewDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.RoomStatus;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.EntrustOthersReq;
|
||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: IntentWorkFlowService
|
||||
|
||||
@@ -74,13 +74,15 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
|
||||
if (CollectionUtils.isEmpty(interviewBaseInfos)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||
}
|
||||
LoginUserInfo operator = CurrentUserHolder.getUser();
|
||||
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
|
||||
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(String.valueOf(interviewBaseInfo.getInterviewPlanId()));
|
||||
if(Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode()) == interviewBaseInfo.getStatus()
|
||||
&& StringUtils.isNotEmpty(interviewInfo.getRoomStatus())
|
||||
&& String.valueOf(RoomStatus.WAIT_FOR_OPEN.getCode()).equals(interviewInfo.getRoomStatus())
|
||||
&& StringUtils.isNotEmpty(interviewInfo.getFeishuCalendarId())
|
||||
&& StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())){
|
||||
&& StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())
|
||||
&& interviewInfo.getInterviewerId().equals(operator.getUserId())){
|
||||
// 原面试官日程删除
|
||||
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
|
||||
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||
@@ -100,7 +102,6 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
|
||||
}
|
||||
interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null);
|
||||
//记录日志
|
||||
LoginUserInfo operator = CurrentUserHolder.getUser();
|
||||
RejectInterviewDTO log = RejectInterviewDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC))
|
||||
.rejectRealReason(request.getRejectRealReason()).rejectPublicReason(request.getRejectPublicReason()).certifyFile(request.getCertifyFile()).build();
|
||||
logService.recordBizLog(operator,request.getLineId(), OperateTypeEnum.REJECT_INTERVIEW,log);
|
||||
|
||||
@@ -1,11 +1,26 @@
|
||||
package com.cool.store.service.impl.workflow;
|
||||
|
||||
import com.cool.store.entity.HyPartnerInterviewDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.EntrustOthersReq;
|
||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: ReservationWorkFlowService
|
||||
@@ -16,6 +31,15 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class ReservationWorkFlowService extends WorkFlowBaseService {
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||
|
||||
@Autowired
|
||||
private InterviewService interviewService;
|
||||
|
||||
@Override
|
||||
public WorkflowStageEnum getWorkFlowStage() {
|
||||
return WorkflowStageEnum.RESERVATION;
|
||||
@@ -27,7 +51,25 @@ public class ReservationWorkFlowService extends WorkFlowBaseService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferInvestmentManager(TransferInvestmentManagerRequest request) {
|
||||
log.info("转让招商经理~");
|
||||
public void transferInvestmentManager(TransferInvestmentManagerRequest request) throws ApiException {
|
||||
Long lineId = request.getLineId();
|
||||
//根据线索id查询面试信息
|
||||
List<HyPartnerInterviewDO> interviewBaseInfos = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(Arrays.asList(lineId));
|
||||
if (CollectionUtils.isEmpty(interviewBaseInfos)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||
}
|
||||
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
|
||||
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(String.valueOf(interviewBaseInfo.getInterviewPlanId()));
|
||||
if (null == interviewInfo) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||
}
|
||||
//还未提交面试预约就未创建面试信息,自然不存在转让面试官操作
|
||||
if (!WorkflowStatusEnum.RESERVATION_0.getCode().equals(interviewBaseInfo.getStatus().toString())) {
|
||||
EntrustOthersReq entrustOthersReq = new EntrustOthersReq();
|
||||
entrustOthersReq.setInterviewPlanId(interviewInfo.getInterviewPlanId());
|
||||
entrustOthersReq.setNewInterviewerId(request.getUserId());
|
||||
entrustOthersReq.setPartnerLineId(interviewInfo.getPartnerLineId());
|
||||
interviewService.entrustOthers(entrustOthersReq);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public abstract class WorkFlowBaseService {
|
||||
public abstract void endProcess(CloseFollowRequest request) throws ApiException;
|
||||
|
||||
/**
|
||||
* 转让招商经理
|
||||
* 转让招商经理(实际是转让面试官,转让招商经理的操作在前置已进行)
|
||||
* @param request
|
||||
*/
|
||||
public abstract void transferInvestmentManager(TransferInvestmentManagerRequest request) throws ApiException;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.cool.store.utils;
|
||||
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
@Component
|
||||
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||
public class MybatisBatchUtils {
|
||||
|
||||
/**
|
||||
* 每次处理500条
|
||||
*/
|
||||
private static final int BATCH_SIZE = 500;
|
||||
|
||||
@Resource
|
||||
private SqlSessionFactory sqlSessionFactory;
|
||||
|
||||
/**
|
||||
* 批量处理修改或者插入
|
||||
*
|
||||
* @param data 需要被处理的数据
|
||||
* @param mapperClass Mybatis的Mapper类
|
||||
* @param consumer 自定义处理逻辑
|
||||
* @return int 影响的总行数
|
||||
* @author renwd
|
||||
*/
|
||||
public <T, U> int batchInsertOrUpdate(List<T> data, Class<U> mapperClass, BiConsumer<T, U> consumer) {
|
||||
int i = 1;
|
||||
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
|
||||
try {
|
||||
U mapper = sqlSession.getMapper(mapperClass);
|
||||
int size = data.size();
|
||||
for (T element : data) {
|
||||
consumer.accept(element, mapper);
|
||||
if ((i % BATCH_SIZE == 0) || i == size) {
|
||||
sqlSession.flushStatements();
|
||||
}
|
||||
i++;
|
||||
}
|
||||
sqlSession.commit();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
return i - 1;
|
||||
}
|
||||
}
|
||||
@@ -604,14 +604,15 @@ public class ExcelUtil<T> {
|
||||
Map<Integer, List<String>> columnListMap = styleMap.get(row);
|
||||
if (columnListMap.containsKey(sort)) {
|
||||
List<String> list = columnListMap.get(sort);
|
||||
list.addAll(Arrays.asList(styles));
|
||||
List<String> arrList = new ArrayList<String>(Arrays.asList(styles));
|
||||
list.addAll(arrList);
|
||||
columnListMap.put(sort, list);
|
||||
}else {
|
||||
columnListMap.put(sort, Arrays.asList(styles));
|
||||
columnListMap.put(sort, new ArrayList<String>(Arrays.asList(styles)));
|
||||
}
|
||||
} else {
|
||||
styleMap.put(row, new HashMap<Integer, List<String>>() {{
|
||||
put(sort, Arrays.asList(styles));
|
||||
put(sort, new ArrayList<String>(Arrays.asList(styles)));
|
||||
}});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ public class TokenValidateFilter implements Filter {
|
||||
//TODO 800回调地址暂时不做验证
|
||||
"/partner/pc/flow/qualificationReview/callback",
|
||||
"/**/ecSync/ecToApplet/**",
|
||||
"/**/ecSync/labelInfo/**",
|
||||
"/partner/pc/websocket/**",
|
||||
"/partner/pc/call/**");
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ public class Swagger2Config {
|
||||
.groupName(groupName)
|
||||
.select()
|
||||
.apis(this.scanBasePackage(packages))
|
||||
.paths(PathSelectors.regex(".*/getPartnerIntentInfo|.*/queryPartnerClerkInfoList|.*/queryPartnerBaseInfo"))
|
||||
//.paths(PathSelectors.regex(".*/getPartnerIntentInfo|.*/queryPartnerClerkInfoList|.*/queryPartnerBaseInfo"))
|
||||
.build()
|
||||
.globalOperationParameters(pars);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.controller;
|
||||
|
||||
import com.cool.store.context.CurrentUserHolder;
|
||||
import com.cool.store.request.beauty.AddBeautyCameraSettingRequest;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.BeautyCameraSettingService;
|
||||
import com.cool.store.vo.beauty.BeautyCameraSettingVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: BeautyCameraSettingController
|
||||
* @Description: 美颜配置
|
||||
* @date 2023-09-11 14:21
|
||||
*/
|
||||
@RestController
|
||||
@Api(tags = "美颜配置")
|
||||
public class BeautyCameraSettingController {
|
||||
|
||||
@Resource
|
||||
private BeautyCameraSettingService beautyCameraSettingService;
|
||||
|
||||
|
||||
@PostMapping("/saveBeautyCameraSetting")
|
||||
public ResponseResult<Long> saveBeautyCameraSetting(@RequestBody AddBeautyCameraSettingRequest request){
|
||||
Long result = beautyCameraSettingService.saveBeautyCameraSetting(CurrentUserHolder.getUserId(), request);
|
||||
return ResponseResult.success(result);
|
||||
}
|
||||
|
||||
@PostMapping("/queryBeautyCameraSetting")
|
||||
public ResponseResult<BeautyCameraSettingVO> queryBeautyCameraSetting(){
|
||||
return ResponseResult.success(beautyCameraSettingService.queryBeautyCameraSetting(CurrentUserHolder.getUserId()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -37,12 +37,12 @@ public class CallController {
|
||||
return ResponseResult.success(res);
|
||||
}
|
||||
|
||||
@PostMapping("/finish/callback")
|
||||
@ApiOperation("通话结束回调")
|
||||
public ResponseResult callFinishBack(@RequestBody CallFinishBackReq request) throws ApiException {
|
||||
callService.callFinishBack(request);
|
||||
return ResponseResult.success();
|
||||
}
|
||||
// @PostMapping("/finish/callback")
|
||||
// @ApiOperation("通话结束回调")
|
||||
// public ResponseResult callFinishBack(@RequestBody CallFinishBackReq request) throws ApiException {
|
||||
// callService.callFinishBack(request);
|
||||
// return ResponseResult.success();
|
||||
// }
|
||||
|
||||
@PostMapping("/record/callback")
|
||||
@ApiOperation("录音上传回调")
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.*;
|
||||
import com.cool.store.vo.*;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import com.cool.store.vo.partner.PartnerSimpleBaseInfoVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
@@ -189,7 +190,7 @@ public class DeskController {
|
||||
@ApiOperation("分配招商经理/批量分配招商经理")
|
||||
public ResponseResult<Boolean> allocationInvestmentManager(@RequestBody AllocationInvestmentManagerRequest request){
|
||||
|
||||
return ResponseResult.success(hyPartnerLineInfoService.allocationInvestmentManager(CurrentUserHolder.getUser(),request.getLineIdList()));
|
||||
return ResponseResult.success(hyPartnerLineInfoService.allocationInvestmentManager(CurrentUserHolder.getUser(),request.getUserId(),request.getLineIdList()));
|
||||
}
|
||||
|
||||
|
||||
@@ -201,7 +202,7 @@ public class DeskController {
|
||||
|
||||
@PostMapping(path = "/batchTransferInvestmentManager")
|
||||
@ApiOperation("批量转让招商经理")
|
||||
public ResponseResult<Boolean> batchTransferInvestmentManager(@RequestBody BatchTransferInvestmentManagerRequest request) throws ApiException {
|
||||
public ResponseResult<List<BatchTransferVO>> batchTransferInvestmentManager(@RequestBody BatchTransferInvestmentManagerRequest request) throws ApiException {
|
||||
return ResponseResult.success(hyPartnerLineInfoService.batchTransferInvestmentManager(CurrentUserHolder.getUser(),request ));
|
||||
}
|
||||
|
||||
@@ -314,4 +315,16 @@ public class DeskController {
|
||||
@RequestParam(value = "needDevelopmentDirector",required = false)Boolean needDevelopmentDirector) throws ApiException {
|
||||
return ResponseResult.success(hyPartnerLineInfoService.getInterviewInfo(lineId,needDevelopmentDirector));
|
||||
}
|
||||
|
||||
@PostMapping(path = "/editBaseInfo")
|
||||
@ApiOperation("修改接口")
|
||||
public ResponseResult<Integer> editBaseInfo(@RequestBody EditBaseInfoRequest request){
|
||||
return ResponseResult.success(hyPartnerLineInfoService.editBaseInfo(request));
|
||||
}
|
||||
|
||||
@GetMapping(path = "/queryBaseInfo")
|
||||
@ApiOperation("获取数据接口")
|
||||
public ResponseResult<PartnerSimpleBaseInfoVO> queryBaseInfo(@RequestParam(value = "partnerLineId")Long partnerLineId){
|
||||
return ResponseResult.success(hyPartnerLineInfoService.queryBaseInfo(partnerLineId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.cool.store.controller;
|
||||
|
||||
|
||||
import com.cool.store.request.CustomerInfoRequest;
|
||||
import com.cool.store.request.GetTagRequest;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.EcSyncService;
|
||||
import com.cool.store.vo.InterviewScheduleInfoVO;
|
||||
@@ -28,4 +29,10 @@ public class EcSyncController {
|
||||
return ResponseResult.success(ecSyncService.ecToApplet(queryListData));
|
||||
}
|
||||
|
||||
@PostMapping(path = "/labelInfo")
|
||||
@ApiOperation("ec同步标签数据到小程序")
|
||||
public ResponseResult<Boolean> labelInfo(@RequestBody List<GetTagRequest> getTagRequestList){
|
||||
return ResponseResult.success(ecSyncService.labelInfo(getTagRequestList));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -280,4 +280,9 @@ public class TestController {
|
||||
followTaskService.followTaskAnHourAgoRemind();
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
@GetMapping("/initOpenArea")
|
||||
public ResponseResult initOpenArea() {
|
||||
return ResponseResult.success(openAreaService.addOpenArea());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
spring.application.name=hsay-partner-webb
|
||||
spring.profiles.active=@profileActive@
|
||||
spring.profiles.active=dev
|
||||
|
||||
server.port=31000
|
||||
server.servlet.context-path=/partner/pc
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
spring.application.name=hsay-partner-webc
|
||||
spring.profiles.active=@profileActive@
|
||||
spring.profiles.active=dev
|
||||
server.port=30900
|
||||
server.servlet.context-path=/partner/mini/program
|
||||
|
||||
|
||||
Reference in New Issue
Block a user