@ -39,6 +39,10 @@ public class SysImportFanRecord extends BaseEntity
|
||||
/** 删除标识,0未删除 1已删除 */
|
||||
private Long delFlag;
|
||||
|
||||
//导粉时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date importTime;
|
||||
|
||||
//微信ID
|
||||
private Long wxAccountId;
|
||||
|
||||
@ -62,6 +66,8 @@ public class SysImportFanRecord extends BaseEntity
|
||||
|
||||
private String fanNums;
|
||||
|
||||
private String importTimes;
|
||||
|
||||
|
||||
//总进粉数量
|
||||
private Integer totalFanNum;
|
||||
|
@ -33,6 +33,11 @@ public class SysImportFanWxAccount extends BaseEntity
|
||||
@Excel(name = "导粉数量")
|
||||
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已删除 */
|
||||
private Long delFlag;
|
||||
|
||||
|
@ -2,6 +2,8 @@ package com.stdiet.custom.mapper;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.stdiet.custom.domain.SysRecipesPlan;
|
||||
import com.stdiet.custom.domain.SysRecipesPlanListInfo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -117,4 +119,11 @@ public interface SysRecipesPlanMapper
|
||||
* @return
|
||||
*/
|
||||
int updateMuchRecipesPlanDate(SysRecipesPlan sysRecipesPlan);
|
||||
|
||||
/**
|
||||
* 查询食谱计划中对应食谱存在天数缺失的食谱计划
|
||||
* @param cusId
|
||||
* @return
|
||||
*/
|
||||
List<Map<String,Object>> getNeedSupplyRecipesByCusId(@Param("cusId")Long cusId);
|
||||
}
|
@ -2,6 +2,7 @@ package com.stdiet.custom.service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.stdiet.custom.domain.SysRecipesPlan;
|
||||
import com.stdiet.custom.domain.SysRecipesPlanListInfo;
|
||||
@ -122,4 +123,11 @@ public interface ISysRecipesPlanService
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByCusId(Long cusId);
|
||||
|
||||
/**
|
||||
* 查询食谱计划中对应食谱存在天数缺失的食谱计划
|
||||
* @param cusId
|
||||
* @return
|
||||
*/
|
||||
List<Map<String,Object>> getNeedSupplyRecipesByCusId(Long cusId);
|
||||
|
||||
}
|
@ -72,15 +72,18 @@ public class SysImportFanRecordServiceImpl implements ISysImportFanRecordService
|
||||
sysImportFanWxAccount.setImportFanRecordId(record != null ? record.getId() : sysImportFanRecord.getId());
|
||||
sysImportFanWxAccount.setImportWxAccountId(sysImportFanRecord.getWxAccountId());
|
||||
sysImportFanWxAccount.setImportFanNum(sysImportFanRecord.getFanNum());
|
||||
sysImportFanWxAccount.setImportTime(sysImportFanRecord.getImportTime());
|
||||
sysImportFanWxAccount.setCreateTime(new Date());
|
||||
row = sysImportFanWxAccountService.insertSysImportFanWxAccount(sysImportFanWxAccount);
|
||||
|
||||
//根据微信号、导粉记录查询是否存在
|
||||
SysImportFanWxAccount oldFanWxAccount = sysImportFanWxAccountService.getWxAccountByFanRecordId(sysImportFanWxAccount);
|
||||
/*SysImportFanWxAccount oldFanWxAccount = sysImportFanWxAccountService.getWxAccountByFanRecordId(sysImportFanWxAccount);
|
||||
if(oldFanWxAccount == null){
|
||||
row = sysImportFanWxAccountService.insertSysImportFanWxAccount(sysImportFanWxAccount);
|
||||
}else{
|
||||
oldFanWxAccount.setImportFanNum((oldFanWxAccount.getImportFanNum() == null ? 0 : oldFanWxAccount.getImportFanNum()) + sysImportFanWxAccount.getImportFanNum());
|
||||
row = sysImportFanWxAccountService.updateSysImportFanWxAccount(oldFanWxAccount);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
@ -4,10 +4,8 @@ import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.common.utils.StringUtils;
|
||||
import com.stdiet.common.utils.SynchrolockUtil;
|
||||
import com.stdiet.common.utils.sign.Md5Utils;
|
||||
import com.stdiet.custom.domain.SysOrder;
|
||||
import com.stdiet.custom.domain.SysOrderPause;
|
||||
import com.stdiet.custom.domain.SysRecipesPlan;
|
||||
import com.stdiet.custom.domain.SysRecipesPlanListInfo;
|
||||
import com.stdiet.custom.domain.*;
|
||||
import com.stdiet.custom.mapper.SysRecipesMapper;
|
||||
import com.stdiet.custom.mapper.SysRecipesPlanMapper;
|
||||
import com.stdiet.custom.service.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -43,6 +41,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
|
||||
private IWechatAppletService wechatAppletService;
|
||||
@Autowired
|
||||
private ISysCustomerService sysCustomerService;
|
||||
@Autowired
|
||||
private SysRecipesMapper sysRecipesMapper;
|
||||
|
||||
/**
|
||||
* 查询食谱计划
|
||||
@ -151,7 +151,7 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
|
||||
@Async
|
||||
public void regenerateRecipesPlan(Long cusId) {
|
||||
try {
|
||||
Thread.sleep(5000);
|
||||
Thread.sleep(3000);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -196,6 +196,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
|
||||
}
|
||||
}
|
||||
}
|
||||
//食谱计划更新完成之后需要查询是否存在天数缺失情况,进行补充
|
||||
supplyRecipesBmenu(cusId);
|
||||
}
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
|
||||
}
|
@ -58,12 +58,13 @@
|
||||
</select>
|
||||
|
||||
<select id="selectTotalSysImportFanNum" parameterType="SysImportFanRecord" resultType="int">
|
||||
select sum(fwa.import_fan_num)
|
||||
from sys_import_fan_record as fc
|
||||
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
|
||||
<if test="importFanDate != null "> and fc.import_fan_date = #{importFanDate}</if>
|
||||
<if test="importFanChannel != null "> and fc.import_fan_channel = #{importFanChannel}</if>
|
||||
select ifnull(sum(fwa.import_fan_num),0) from sys_import_fan_wx_account fwa
|
||||
where fwa.del_flag = 0 and fwa.import_fan_record_id in
|
||||
(
|
||||
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="importFanChannel != null "> and fc.import_fan_channel = #{importFanChannel}</if>
|
||||
)
|
||||
</select>
|
||||
|
||||
<select id="selectSysImportFanRecordById" parameterType="Long" resultMap="SysImportFanRecordResult">
|
||||
@ -129,7 +130,7 @@
|
||||
|
||||
<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,
|
||||
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
|
||||
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
|
||||
|
@ -9,6 +9,7 @@
|
||||
<result property="importFanRecordId" column="import_fan_record_id" />
|
||||
<result property="importWxAccountId" column="import_wx_account_id" />
|
||||
<result property="importFanNum" column="import_fan_num" />
|
||||
<result property="importTime" column="import_time" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
@ -17,7 +18,7 @@
|
||||
</resultMap>
|
||||
|
||||
<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>
|
||||
|
||||
<select id="selectSysImportFanWxAccountList" parameterType="SysImportFanWxAccount" resultMap="SysImportFanWxAccountResult">
|
||||
@ -38,6 +39,7 @@
|
||||
<if test="importFanRecordId != null">import_fan_record_id,</if>
|
||||
<if test="importWxAccountId != null">import_wx_account_id,</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="createBy != null">create_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
@ -48,6 +50,7 @@
|
||||
<if test="importFanRecordId != null">#{importFanRecordId},</if>
|
||||
<if test="importWxAccountId != null">#{importWxAccountId},</if>
|
||||
<if test="importFanNum != null">#{importFanNum},</if>
|
||||
<if test="importTime != null">#{importTime},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
@ -62,6 +65,7 @@
|
||||
<if test="importFanRecordId != null">import_fan_record_id = #{importFanRecordId},</if>
|
||||
<if test="importWxAccountId != null">import_wx_account_id = #{importWxAccountId},</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="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
|
@ -113,6 +113,9 @@
|
||||
<if test="status != null ">and status = #{status}</if>
|
||||
<if test="payTypeId != null ">and pay_type_id = #{payTypeId}</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="nutritionistId != null ">and nutritionist_id = #{nutritionistId}</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="status != null ">and status = #{status}</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="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if>
|
||||
<if test="nutritionistId != null ">and nutritionist_id = #{nutritionistId}</if>
|
||||
|
@ -284,4 +284,16 @@
|
||||
update sys_recipes_plan set start_date = #{startDate},end_date = #{endDate},pause_date=#{pauseDate} where id =
|
||||
#{id}
|
||||
</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>
|
@ -22,6 +22,7 @@
|
||||
|
||||
<!-- 销售 -->
|
||||
<result property="saleName" column="sale_name"></result>
|
||||
<result property="channel" column="channel"></result>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSysWxSaleAccountVo">
|
||||
@ -140,7 +141,7 @@
|
||||
|
||||
<!-- 查询可以接粉的微信号以及对应销售,用于导粉记录管理 -->
|
||||
<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
|
||||
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
|
||||
|
Reference in New Issue
Block a user