!281 优化订单查询

Merge pull request !281 from 德仔/xzj
This commit is contained in:
德仔 2021-06-07 19:44:22 +08:00 committed by Gitee
commit ae605581fd
15 changed files with 196 additions and 53 deletions

View File

@ -4,6 +4,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.stdiet.common.utils.DateUtils;
import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.StringUtils;
import com.stdiet.custom.domain.SysImportFanWxAccount; import com.stdiet.custom.domain.SysImportFanWxAccount;
import com.stdiet.custom.domain.SysWxSaleAccount; import com.stdiet.custom.domain.SysWxSaleAccount;
@ -106,6 +107,7 @@ public class SysImportFanRecordController extends BaseController
String[] importFanLiveArray = sysImportFanRecord.getImportFanLives().split(","); String[] importFanLiveArray = sysImportFanRecord.getImportFanLives().split(",");
String[] wxAccountIdArray = sysImportFanRecord.getWxAccountIds().split(","); String[] wxAccountIdArray = sysImportFanRecord.getWxAccountIds().split(",");
String[] fanNumArray = sysImportFanRecord.getFanNums().split(","); String[] fanNumArray = sysImportFanRecord.getFanNums().split(",");
String[] importTimeArray = sysImportFanRecord.getImportTimes().split(",");
int index = -1; int index = -1;
for (String importFanChannel : importFanChannelArray) { for (String importFanChannel : importFanChannelArray) {
index++; index++;
@ -116,6 +118,7 @@ public class SysImportFanRecordController extends BaseController
sysImportFanRecord.setImportFanLive(StringUtils.isEmpty(importFanLiveArray[index]) ? 0L : Long.parseLong(importFanLiveArray[index])); sysImportFanRecord.setImportFanLive(StringUtils.isEmpty(importFanLiveArray[index]) ? 0L : Long.parseLong(importFanLiveArray[index]));
sysImportFanRecord.setWxAccountId(Long.parseLong(wxAccountIdArray[index])); sysImportFanRecord.setWxAccountId(Long.parseLong(wxAccountIdArray[index]));
sysImportFanRecord.setFanNum(Long.parseLong(fanNumArray[index])); sysImportFanRecord.setFanNum(Long.parseLong(fanNumArray[index]));
sysImportFanRecord.setImportTime(DateUtils.parseDate(importTimeArray[index]));
row = sysImportFanRecordService.insertSysImportFanRecord(sysImportFanRecord); row = sysImportFanRecordService.insertSysImportFanRecord(sysImportFanRecord);
} }
}else{ }else{

View File

@ -39,6 +39,10 @@ public class SysImportFanRecord extends BaseEntity
/** 删除标识0未删除 1已删除 */ /** 删除标识0未删除 1已删除 */
private Long delFlag; private Long delFlag;
//导粉时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private Date importTime;
//微信ID //微信ID
private Long wxAccountId; private Long wxAccountId;
@ -62,6 +66,8 @@ public class SysImportFanRecord extends BaseEntity
private String fanNums; private String fanNums;
private String importTimes;
//总进粉数量 //总进粉数量
private Integer totalFanNum; private Integer totalFanNum;

View File

@ -33,6 +33,11 @@ public class SysImportFanWxAccount extends BaseEntity
@Excel(name = "导粉数量") @Excel(name = "导粉数量")
private Long importFanNum; private Long importFanNum;
/** 导粉时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@Excel(name = "导粉时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
private Date importTime;
/** 删除标识 0未删除 1已删除 */ /** 删除标识 0未删除 1已删除 */
private Long delFlag; private Long delFlag;

View File

@ -2,6 +2,8 @@ package com.stdiet.custom.mapper;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import com.stdiet.custom.domain.SysRecipesPlan; import com.stdiet.custom.domain.SysRecipesPlan;
import com.stdiet.custom.domain.SysRecipesPlanListInfo; import com.stdiet.custom.domain.SysRecipesPlanListInfo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -117,4 +119,11 @@ public interface SysRecipesPlanMapper
* @return * @return
*/ */
int updateMuchRecipesPlanDate(SysRecipesPlan sysRecipesPlan); int updateMuchRecipesPlanDate(SysRecipesPlan sysRecipesPlan);
/**
* 查询食谱计划中对应食谱存在天数缺失的食谱计划
* @param cusId
* @return
*/
List<Map<String,Object>> getNeedSupplyRecipesByCusId(@Param("cusId")Long cusId);
} }

View File

@ -2,6 +2,7 @@ package com.stdiet.custom.service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import com.stdiet.custom.domain.SysRecipesPlan; import com.stdiet.custom.domain.SysRecipesPlan;
import com.stdiet.custom.domain.SysRecipesPlanListInfo; import com.stdiet.custom.domain.SysRecipesPlanListInfo;
@ -122,4 +123,11 @@ public interface ISysRecipesPlanService
*/ */
List<SysRecipesPlan> selectPlanListByCusId(Long cusId); List<SysRecipesPlan> selectPlanListByCusId(Long cusId);
/**
* 查询食谱计划中对应食谱存在天数缺失的食谱计划
* @param cusId
* @return
*/
List<Map<String,Object>> getNeedSupplyRecipesByCusId(Long cusId);
} }

View File

@ -72,15 +72,18 @@ public class SysImportFanRecordServiceImpl implements ISysImportFanRecordService
sysImportFanWxAccount.setImportFanRecordId(record != null ? record.getId() : sysImportFanRecord.getId()); sysImportFanWxAccount.setImportFanRecordId(record != null ? record.getId() : sysImportFanRecord.getId());
sysImportFanWxAccount.setImportWxAccountId(sysImportFanRecord.getWxAccountId()); sysImportFanWxAccount.setImportWxAccountId(sysImportFanRecord.getWxAccountId());
sysImportFanWxAccount.setImportFanNum(sysImportFanRecord.getFanNum()); sysImportFanWxAccount.setImportFanNum(sysImportFanRecord.getFanNum());
sysImportFanWxAccount.setImportTime(sysImportFanRecord.getImportTime());
sysImportFanWxAccount.setCreateTime(new Date()); sysImportFanWxAccount.setCreateTime(new Date());
row = sysImportFanWxAccountService.insertSysImportFanWxAccount(sysImportFanWxAccount);
//根据微信号导粉记录查询是否存在 //根据微信号导粉记录查询是否存在
SysImportFanWxAccount oldFanWxAccount = sysImportFanWxAccountService.getWxAccountByFanRecordId(sysImportFanWxAccount); /*SysImportFanWxAccount oldFanWxAccount = sysImportFanWxAccountService.getWxAccountByFanRecordId(sysImportFanWxAccount);
if(oldFanWxAccount == null){ if(oldFanWxAccount == null){
row = sysImportFanWxAccountService.insertSysImportFanWxAccount(sysImportFanWxAccount); row = sysImportFanWxAccountService.insertSysImportFanWxAccount(sysImportFanWxAccount);
}else{ }else{
oldFanWxAccount.setImportFanNum((oldFanWxAccount.getImportFanNum() == null ? 0 : oldFanWxAccount.getImportFanNum()) + sysImportFanWxAccount.getImportFanNum()); oldFanWxAccount.setImportFanNum((oldFanWxAccount.getImportFanNum() == null ? 0 : oldFanWxAccount.getImportFanNum()) + sysImportFanWxAccount.getImportFanNum());
row = sysImportFanWxAccountService.updateSysImportFanWxAccount(oldFanWxAccount); row = sysImportFanWxAccountService.updateSysImportFanWxAccount(oldFanWxAccount);
} }*/
} }
return row; return row;
} }

View File

@ -4,10 +4,8 @@ import com.stdiet.common.utils.DateUtils;
import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.StringUtils;
import com.stdiet.common.utils.SynchrolockUtil; import com.stdiet.common.utils.SynchrolockUtil;
import com.stdiet.common.utils.sign.Md5Utils; import com.stdiet.common.utils.sign.Md5Utils;
import com.stdiet.custom.domain.SysOrder; import com.stdiet.custom.domain.*;
import com.stdiet.custom.domain.SysOrderPause; import com.stdiet.custom.mapper.SysRecipesMapper;
import com.stdiet.custom.domain.SysRecipesPlan;
import com.stdiet.custom.domain.SysRecipesPlanListInfo;
import com.stdiet.custom.mapper.SysRecipesPlanMapper; import com.stdiet.custom.mapper.SysRecipesPlanMapper;
import com.stdiet.custom.service.*; import com.stdiet.custom.service.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -43,6 +41,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
private IWechatAppletService wechatAppletService; private IWechatAppletService wechatAppletService;
@Autowired @Autowired
private ISysCustomerService sysCustomerService; private ISysCustomerService sysCustomerService;
@Autowired
private SysRecipesMapper sysRecipesMapper;
/** /**
* 查询食谱计划 * 查询食谱计划
@ -151,7 +151,7 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
@Async @Async
public void regenerateRecipesPlan(Long cusId) { public void regenerateRecipesPlan(Long cusId) {
try { try {
Thread.sleep(5000); Thread.sleep(3000);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -196,6 +196,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
} }
} }
} }
//食谱计划更新完成之后需要查询是否存在天数缺失情况进行补充
supplyRecipesBmenu(cusId);
} }
} }
} catch (Exception e) { } catch (Exception e) {
@ -206,6 +208,34 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
} }
} }
/**
* 查询食谱计划中对应食谱存在天数缺失的食谱计划食谱计划发生变化时可能会导致sys_customer_daily_menu表中天数缺失需要查询出来进行补充
* @param cusId 客户ID
*/
private void supplyRecipesBmenu(Long cusId){
List<Map<String,Object>> list = getNeedSupplyRecipesByCusId(cusId);
if(list != null && list.size() > 0){
for (Map<String,Object> map : list) {
Long recipesId = (Long)map.get("recipesId");
Integer enNumDay = (Integer)map.get("enNumDay");
Integer maxNumDay = (Integer)map.get("maxNumDay");
if(recipesId != null && enNumDay != null && maxNumDay != null){
List<SysRecipesDaily> menus = new ArrayList<>();
for (int i = maxNumDay+1; i <= enNumDay; i++) {
SysRecipesDaily daily = new SysRecipesDaily();
daily.setCusId(cusId);
daily.setNumDay(i);
daily.setRecipesId(recipesId);
menus.add(daily);
}
sysRecipesMapper.bashAddMenus(menus);
}
}
}
}
/** /**
* 更新食谱计划删除旧食谱中多余的添加新食谱中多的 * 更新食谱计划删除旧食谱中多余的添加新食谱中多的
* *
@ -474,4 +504,13 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
} }
} }
/**
* 查询食谱计划中对应食谱存在天数缺失的食谱计划
* @param cusId
* @return
*/
public List<Map<String,Object>> getNeedSupplyRecipesByCusId(Long cusId){
return sysRecipesPlanMapper.getNeedSupplyRecipesByCusId(cusId);
}
} }

View File

@ -58,12 +58,13 @@
</select> </select>
<select id="selectTotalSysImportFanNum" parameterType="SysImportFanRecord" resultType="int"> <select id="selectTotalSysImportFanNum" parameterType="SysImportFanRecord" resultType="int">
select sum(fwa.import_fan_num) select ifnull(sum(fwa.import_fan_num),0) from sys_import_fan_wx_account fwa
from sys_import_fan_record as fc where fwa.del_flag = 0 and fwa.import_fan_record_id in
left join sys_import_fan_wx_account fwa on fwa.import_fan_record_id = fc.id and fwa.del_flag = 0 (
where fc.del_flag = 0 select fc.id from sys_import_fan_record as fc where fc.del_flag = 0
<if test="importFanDate != null "> and fc.import_fan_date = #{importFanDate}</if> <if test="importFanDate != null "> and fc.import_fan_date = #{importFanDate}</if>
<if test="importFanChannel != null "> and fc.import_fan_channel = #{importFanChannel}</if> <if test="importFanChannel != null "> and fc.import_fan_channel = #{importFanChannel}</if>
)
</select> </select>
<select id="selectSysImportFanRecordById" parameterType="Long" resultMap="SysImportFanRecordResult"> <select id="selectSysImportFanRecordById" parameterType="Long" resultMap="SysImportFanRecordResult">
@ -129,7 +130,7 @@
<select id="getWxAccountListByFanRecordId" parameterType="Long" resultType="Map"> <select id="getWxAccountListByFanRecordId" parameterType="Long" resultType="Map">
select fwc.id, fwc.import_fan_record_id as importFanRecordId, fwc.import_wx_account_id as importWxAccountId, fwc.import_fan_num as importFanNum, select fwc.id, fwc.import_fan_record_id as importFanRecordId, fwc.import_wx_account_id as importWxAccountId, fwc.import_fan_num as importFanNum,
su.nick_name as saleName,wa.wx_account as wxAccount DATE_FORMAT(fwc.import_time,'%Y-%m-%d %H:%i') as importTime,su.nick_name as saleName,wa.wx_account as wxAccount
from sys_import_fan_wx_account fwc from sys_import_fan_wx_account fwc
left join sys_wx_sale_account wa on wa.id = fwc.import_wx_account_id and wa.del_flag = 0 left join sys_wx_sale_account wa on wa.id = fwc.import_wx_account_id and wa.del_flag = 0
left join sys_wx_distribution swd on swd.wechat_account = wa.id and swd.del_flag = 0 left join sys_wx_distribution swd on swd.wechat_account = wa.id and swd.del_flag = 0

View File

@ -9,6 +9,7 @@
<result property="importFanRecordId" column="import_fan_record_id" /> <result property="importFanRecordId" column="import_fan_record_id" />
<result property="importWxAccountId" column="import_wx_account_id" /> <result property="importWxAccountId" column="import_wx_account_id" />
<result property="importFanNum" column="import_fan_num" /> <result property="importFanNum" column="import_fan_num" />
<result property="importTime" column="import_time" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
@ -17,7 +18,7 @@
</resultMap> </resultMap>
<sql id="selectSysImportFanWxAccountVo"> <sql id="selectSysImportFanWxAccountVo">
select id, import_fan_record_id, import_wx_account_id, import_fan_num, create_time, create_by, update_time, update_by, del_flag from sys_import_fan_wx_account select id, import_fan_record_id, import_wx_account_id, import_fan_num,import_time, create_time, create_by, update_time, update_by, del_flag from sys_import_fan_wx_account
</sql> </sql>
<select id="selectSysImportFanWxAccountList" parameterType="SysImportFanWxAccount" resultMap="SysImportFanWxAccountResult"> <select id="selectSysImportFanWxAccountList" parameterType="SysImportFanWxAccount" resultMap="SysImportFanWxAccountResult">
@ -38,6 +39,7 @@
<if test="importFanRecordId != null">import_fan_record_id,</if> <if test="importFanRecordId != null">import_fan_record_id,</if>
<if test="importWxAccountId != null">import_wx_account_id,</if> <if test="importWxAccountId != null">import_wx_account_id,</if>
<if test="importFanNum != null">import_fan_num,</if> <if test="importFanNum != null">import_fan_num,</if>
<if test="importTime != null">import_time,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
@ -48,6 +50,7 @@
<if test="importFanRecordId != null">#{importFanRecordId},</if> <if test="importFanRecordId != null">#{importFanRecordId},</if>
<if test="importWxAccountId != null">#{importWxAccountId},</if> <if test="importWxAccountId != null">#{importWxAccountId},</if>
<if test="importFanNum != null">#{importFanNum},</if> <if test="importFanNum != null">#{importFanNum},</if>
<if test="importTime != null">#{importTime},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
@ -62,6 +65,7 @@
<if test="importFanRecordId != null">import_fan_record_id = #{importFanRecordId},</if> <if test="importFanRecordId != null">import_fan_record_id = #{importFanRecordId},</if>
<if test="importWxAccountId != null">import_wx_account_id = #{importWxAccountId},</if> <if test="importWxAccountId != null">import_wx_account_id = #{importWxAccountId},</if>
<if test="importFanNum != null">import_fan_num = #{importFanNum},</if> <if test="importFanNum != null">import_fan_num = #{importFanNum},</if>
<if test="importTime != null">import_time = #{importTime},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>

View File

@ -113,6 +113,9 @@
<if test="status != null ">and status = #{status}</if> <if test="status != null ">and status = #{status}</if>
<if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if> <if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if>
<if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if> <if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if>
<if test="onSaleId != null">
and on_sale_id = #{onSaleId}
</if>
<if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if> <if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if>
<if test="nutritionistId != null ">and nutritionist_id = #{nutritionistId}</if> <if test="nutritionistId != null ">and nutritionist_id = #{nutritionistId}</if>
<if test="nutriAssisId != null ">and nutri_assis_id = #{nutriAssisId}</if> <if test="nutriAssisId != null ">and nutri_assis_id = #{nutriAssisId}</if>
@ -164,6 +167,9 @@
<if test="phone != null and phone != ''">and sc.phone = #{phone}</if> <if test="phone != null and phone != ''">and sc.phone = #{phone}</if>
<if test="status != null ">and status = #{status}</if> <if test="status != null ">and status = #{status}</if>
<if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if> <if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if>
<if test="onSaleId != null">
and on_sale_id = #{onSaleId}
</if>
<if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if> <if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if>
<if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if> <if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if>
<if test="nutritionistId != null ">and nutritionist_id = #{nutritionistId}</if> <if test="nutritionistId != null ">and nutritionist_id = #{nutritionistId}</if>

View File

@ -284,4 +284,16 @@
update sys_recipes_plan set start_date = #{startDate},end_date = #{endDate},pause_date=#{pauseDate} where id = update sys_recipes_plan set start_date = #{startDate},end_date = #{endDate},pause_date=#{pauseDate} where id =
#{id} #{id}
</update> </update>
<!-- 查询食谱计划中对应食谱存在天数缺失的食谱计划食谱计划发生变化时可能会导致sys_customer_daily_menu表中天数缺失需要查询出来进行补充 -->
<select id="getNeedSupplyRecipesByCusId" parameterType="Long" resultType="Map">
select plan.recipes_id as recipesId,plan.end_num_day as enNumDay,s.maxNumDay from sys_recipes_plan as plan left join
(
select recipes_id,count(1) as dayNum,max(num_day) as maxNumDay from sys_customer_daily_menu where cus_id = #{cusId} and recipes_id is not null group by recipes_id
)
as s on s.recipes_id = plan.recipes_id
where plan.cus_id = #{cusId} and plan.del_flag = 0 and plan.recipes_id is not null and plan.end_num_day > s.maxNumDay
</select>
</mapper> </mapper>

View File

@ -22,6 +22,7 @@
<!-- 销售 --> <!-- 销售 -->
<result property="saleName" column="sale_name"></result> <result property="saleName" column="sale_name"></result>
<result property="channel" column="channel"></result>
</resultMap> </resultMap>
<sql id="selectSysWxSaleAccountVo"> <sql id="selectSysWxSaleAccountVo">
@ -140,7 +141,7 @@
<!-- 查询可以接粉的微信号以及对应销售,用于导粉记录管理 --> <!-- 查询可以接粉的微信号以及对应销售,用于导粉记录管理 -->
<select id="getWxAccountAndSale" resultMap="SysWxSaleAccountResult"> <select id="getWxAccountAndSale" resultMap="SysWxSaleAccountResult">
select wa.id, wa.wx_account, su.nick_name as sale_name select wa.id, wa.wx_account, swd.account_id as channel, su.nick_name as sale_name
from sys_wx_sale_account wa from sys_wx_sale_account wa
left join sys_wx_distribution swd on wa.id = swd.wechat_account and swd.del_flag = 0 left join sys_wx_distribution swd on wa.id = swd.wechat_account and swd.del_flag = 0
LEFT JOIN sys_user su ON su.user_id = swd.user_id AND su.del_flag = 0 LEFT JOIN sys_user su ON su.user_id = swd.user_id AND su.del_flag = 0

View File

@ -4,7 +4,7 @@
<el-dialog :title="title" :visible.sync="open" width="1050px" :close-on-click-modal="false" append-to-body @closed="cancel"> <el-dialog :title="title" :visible.sync="open" width="1050px" :close-on-click-modal="false" append-to-body @closed="cancel">
<!--<div style="margin-bottom: 20px;color:red">1添加导粉记录时会根据进粉渠道当前时间来自动确定所属直播间当前时间段没有直播则取上一次直播若账号从未直播过则为空</div>--> <!--<div style="margin-bottom: 20px;color:red">1添加导粉记录时会根据进粉渠道当前时间来自动确定所属直播间当前时间段没有直播则取上一次直播若账号从未直播过则为空</div>-->
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
<!--<el-form-item label="账号渠道" prop="channel"> <el-form-item label="账号渠道" prop="channel">
<el-select <el-select
v-model="queryParams.channel" v-model="queryParams.channel"
placeholder="请选择账号渠道" placeholder="请选择账号渠道"
@ -19,7 +19,7 @@
:value="parseInt(dict.dictValue)" :value="parseInt(dict.dictValue)"
/> />
</el-select> </el-select>
</el-form-item>--> </el-form-item>
<el-form-item label="销售" prop="saleId" label-width="50px"> <el-form-item label="销售" prop="saleId" label-width="50px">
<el-select <el-select
v-model="queryParams.saleId" v-model="queryParams.saleId"
@ -89,20 +89,15 @@
</el-table-column>--> </el-table-column>-->
<el-table-column label="导粉时间" align="center" prop="fanTime" width="240"> <el-table-column label="导粉时间" align="center" prop="fanTime" width="240">
<template slot-scope="scope"> <template slot-scope="scope">
<el-date-picker <el-time-picker
v-model="scope.row.fanTime"
type="datetime"
placeholder="选择导粉时间"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
:picker-options="fanPickerOptions" v-model="scope.row.fanTime"
placeholder="选择导粉时间"
@change="autoSelectLive(scope.row)" @change="autoSelectLive(scope.row)"
> >
</el-date-picker> </el-time-picker>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="导粉数量" align="center" prop="fanNum" width="180"> <el-table-column label="导粉数量" align="center" prop="fanNum" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input-number v-model="scope.row.fanNum" :min="1" :max="10000" label="导粉数量" style="width:160px"></el-input-number> <el-input-number v-model="scope.row.fanNum" :min="1" :max="10000" label="导粉数量" style="width:160px"></el-input-number>
@ -227,7 +222,7 @@ export default {
response.data.wxSaleAccountList.forEach((item,index) => { response.data.wxSaleAccountList.forEach((item,index) => {
item.fanNum = 1; item.fanNum = 1;
//item.importFanNum = this.getTotalFanNum(response.data.fanNumList, item.id); //item.importFanNum = this.getTotalFanNum(response.data.fanNumList, item.id);
item.importFanChannel = null; item.importFanChannel = item.channel ? item.channel : null;
item.importFanLive = null; item.importFanLive = null;
item.fanTime = null; item.fanTime = null;
}); });
@ -297,14 +292,16 @@ export default {
'importFanChannel': row.importFanChannel, 'importFanChannel': row.importFanChannel,
'importFanLive': row.importFanLive, 'importFanLive': row.importFanLive,
'wxAccountId': row.id, 'wxAccountId': row.id,
'fanNum': row.fanNum 'fanNum': row.fanNum,
"importTime": row.fanTime
} }
addImportFanRecord(param).then((response) => { addImportFanRecord(param).then((response) => {
if(response.code == 200){ if(response.code == 200){
this.msgSuccess("保存成功"); this.msgSuccess("保存成功");
row.importFanChannel = null; //row.importFanChannel = null;
row.importFanLive = null; row.importFanLive = null;
row.importFanNum += row.fanNum; row.importFanNum += row.fanNum;
row.fanTime = null;
row.fanNum = 1; row.fanNum = 1;
this.importFanFlag = true; this.importFanFlag = true;
} }
@ -321,17 +318,19 @@ export default {
} }
let param = { let param = {
'importFanDate': this.data.importFanDate, 'importFanDate': this.data.importFanDate,
'importFanChannels': null, 'importFanChannels': "",
'importFanLives': null, 'importFanLives': "",
'wxAccountIds': null, 'wxAccountIds': "",
'fanNums': null 'fanNums': "",
"importTimes": ""
} }
this.wxAccountList.forEach((item,index) => { this.wxAccountList.forEach((item,index) => {
if(item.importFanChannel != undefined && item.importFanChannel != null && item.importFanChannel != ""){ if(item.fanTime != undefined && item.fanTime != null && item.fanTime != ""){
param.importFanChannels += param.importFanChannels != null ? (","+this.nullToString(item.importFanChannel)) : item.importFanChannel; param.importFanChannels += index != 0 ? (","+this.nullToString(item.importFanChannel)) : item.importFanChannel;
param.importFanLives += param.importFanLives != null ? (","+this.nullToString(item.importFanLive)) : item.importFanLive; param.importFanLives += index != 0 ? (","+this.nullToString(item.importFanLive)) : item.importFanLive;
param.wxAccountIds += param.wxAccountIds != null ? (","+this.nullToString(item.id)) : item.id; param.wxAccountIds += index != 0 ? (","+this.nullToString(item.id)) : item.id;
param.fanNums += param.fanNums != null ? (","+this.nullToString(item.fanNum)) : item.fanNum; param.fanNums += index != 0 ? (","+this.nullToString(item.fanNum)) : item.fanNum;
param.importTimes += index != 0 ? (","+this.nullToString(item.fanTime)) : item.fanTime;
} }
if(index == this.wxAccountList.length -1){ if(index == this.wxAccountList.length -1){
if(param.importFanChannels == null){ if(param.importFanChannels == null){
@ -347,9 +346,10 @@ export default {
this.importFanFlag = true; this.importFanFlag = true;
for(let i=0; i < this.wxAccountList.length; i++){ for(let i=0; i < this.wxAccountList.length; i++){
this.wxAccountList[i].importFanLive = null; this.wxAccountList[i].importFanLive = null;
this.wxAccountList[i].importFanChannel = null; //this.wxAccountList[i].importFanChannel = null;
this.wxAccountList[i].importFanNum += this.wxAccountList[i].fanNum; this.wxAccountList[i].importFanNum += this.wxAccountList[i].fanNum;
this.wxAccountList[i].fanNum = 1; this.wxAccountList[i].fanNum = 1;
this.wxAccountList[i].fanTime = null;
//this.$set('wxAccountList', index, item); //this.$set('wxAccountList', index, item);
} }
} }
@ -366,6 +366,8 @@ export default {
row.importFanLive = null; row.importFanLive = null;
return; return;
} }
row.fanTime = this.data.importFanDate + " " + row.fanTime.substring(row.fanTime.length - 5);
//console.log(row.fanTime);
getLiveSchedulByTime({'fanChannel':row.importFanChannel,'liveStartTimeString':encodeURIComponent(row.fanTime)}).then((response) => { getLiveSchedulByTime({'fanChannel':row.importFanChannel,'liveStartTimeString':encodeURIComponent(row.fanTime)}).then((response) => {
if (response.code === 200) { if (response.code === 200) {
let live = response.data; let live = response.data;

View File

@ -92,10 +92,15 @@
<span>{{ parseTime(scope.row.importFanDate, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.importFanDate, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="进粉账号渠道" align="center" prop="importFanChannelName" /> <el-table-column label="账号渠道" align="center" prop="importFanChannelName" />
<el-table-column label="所属直播间" align="center" prop="liveRoomName" > <el-table-column label="所属直播间" align="center" prop="liveRoomName" >
<template slot-scope="scope"> <template slot-scope="scope">
{{(scope.row.liveRoomName != null || scope.row.liveNutritionistName != null) ? (scope.row.liveRoomName + "—" + scope.row.liveNutritionistName) : ""}} {{(scope.row.liveRoomName != null ? scope.row.liveRoomName : "无")}}
</template>
</el-table-column>
<el-table-column label="直播营养师" align="center" prop="liveNutritionistName" >
<template slot-scope="scope">
{{scope.row.liveNutritionistName != null ? scope.row.liveNutritionistName : "无"}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="导粉总数" align="center" prop="wxAccountList" :formatter="getTotalFanNum"> <el-table-column label="导粉总数" align="center" prop="wxAccountList" :formatter="getTotalFanNum">
@ -104,9 +109,9 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover <el-popover
placement="left" placement="left"
width="520" width="700"
trigger="click"> trigger="click">
<el-table :data="scope.row.wxAccountList" style="width:450;height: 400px;overflow: auto;"> <el-table :data="scope.row.wxAccountList" style="width:700;height: 400px;overflow: auto;">
<el-table-column width="80" property="saleName" label="销售" align="center"></el-table-column> <el-table-column width="80" property="saleName" label="销售" align="center"></el-table-column>
<el-table-column width="160" property="wxAccount" label="微信号" align="center"></el-table-column> <el-table-column width="160" property="wxAccount" label="微信号" align="center"></el-table-column>
<el-table-column width="120" property="importFanNum" label="导粉数量" align="center"> <el-table-column width="120" property="importFanNum" label="导粉数量" align="center">
@ -119,6 +124,8 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="160" property="importTime" label="导粉时间" align="center">
</el-table-column>
<el-table-column width="120" label="操作" align="center"> <el-table-column width="120" label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button

View File

@ -88,6 +88,24 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="!isPartner">
<el-form-item label="售中" prop="onSaleId">
<el-select
v-model="queryParams.onSaleId"
placeholder="请选择售中"
clearable
filterable
size="small"
>
<el-option
v-for="dict in onSaleIdOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" v-if="!isPartner"> <el-col :span="6" v-if="!isPartner">
<el-form-item label="售后" prop="afterSaleId"> <el-form-item label="售后" prop="afterSaleId">
<el-select <el-select
@ -248,7 +266,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="6">
<el-form-item label="订单类型" prop="searchOrderTypeArray"> <el-form-item label="订单类型" prop="searchOrderTypeArray">
<el-cascader <el-cascader
placeholder="请选择订单类型" placeholder="请选择订单类型"
@ -257,13 +275,13 @@
:props="orderTypeProps" :props="orderTypeProps"
collapse-tags collapse-tags
clearable clearable
style="width: 300px"
></el-cascader> </el-form-item ></el-cascader> </el-form-item
><!-- --> ><!-- -->
</el-col> </el-col>
<el-col :span="12"> <el-col :span="20">
<el-form-item label="成交日期" prop="orderTime"> <el-form-item label="成交日期" prop="orderTime">
<el-date-picker <el-date-picker
style="width:300px"
v-model="daterange" v-model="daterange"
type="daterange" type="daterange"
size="small" size="small"
@ -276,10 +294,7 @@
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> <el-form-item style="margin-left:50px">
<el-col>
<el-form-item>
<el-button <el-button
type="cyan" type="cyan"
icon="el-icon-search" icon="el-icon-search"
@ -292,6 +307,20 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!--<el-col>
<el-form-item>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索
</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">
重置
</el-button>
</el-form-item>
</el-col>-->
</el-form> </el-form>
</el-row> </el-row>
@ -337,9 +366,11 @@
width="100" width="100"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.orderTime != undefined && scope.row.orderTime != null">
<div v-for="time in scope.row.orderTime.split(' ')" :key="time"> <div v-for="time in scope.row.orderTime.split(' ')" :key="time">
{{ time }} {{ time }}
</div> </div>
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -362,7 +393,11 @@
width="90" width="90"
/> />
<el-table-column label="服务时长" align="center" prop="serveTime" /> <el-table-column label="服务时长" align="center" prop="serveTime" />
<el-table-column label="销售" align="center" prop="preSale" /> <el-table-column label="销售/售中" align="center" prop="preSale" >
<template slot-scope="scope">
{{ scope.row.preSaleId ? scope.row.preSale : scope.row.onSale }}
</template>
</el-table-column>
<el-table-column <el-table-column
v-if="!isMobile" v-if="!isMobile"
label="售后" label="售后"
@ -561,6 +596,7 @@ export default {
phone: null, phone: null,
payTypeId: null, payTypeId: null,
preSaleId: null, preSaleId: null,
onSaleId: null,
afterSaleId: null, afterSaleId: null,
nutritionistId: null, nutritionistId: null,
nutriAssisId: null, nutriAssisId: null,
@ -592,6 +628,7 @@ export default {
...mapGetters([ ...mapGetters([
// //
"preSaleIdOptions", "preSaleIdOptions",
"onSaleIdOptions",
// //
"afterSaleIdOptions", "afterSaleIdOptions",
// //