Merge branch 'master' of gitee.com:darlk/ShengTangManage into develop
This commit is contained in:
commit
4137d96cee
@ -79,8 +79,8 @@ public class SysCustomerController extends BaseController {
|
||||
for (SysCustomer sysCus : list) {
|
||||
if (StringUtils.isNotEmpty(sysCus.getPhone())) {
|
||||
sysCus.setPhone(StringUtils.hiddenPhoneNumber(sysCus.getPhone()));
|
||||
sysCus.setEncId(sysCus.getId() != null ? AesUtils.encrypt(sysCus.getId() + "", null) : "");
|
||||
}
|
||||
sysCus.setEncId(sysCus.getId() != null ? AesUtils.encrypt(sysCus.getId() + "", null) : "");
|
||||
}
|
||||
}
|
||||
return getDataTable(list);
|
||||
|
@ -1,6 +1,14 @@
|
||||
package com.stdiet.web.controller.custom;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.stdiet.common.utils.StringUtils;
|
||||
import com.stdiet.custom.domain.SysImportFanWxAccount;
|
||||
import com.stdiet.custom.domain.SysWxSaleAccount;
|
||||
import com.stdiet.custom.service.ISysImportFanWxAccountService;
|
||||
import com.stdiet.custom.service.ISysWxSaleAccountService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -33,6 +41,12 @@ public class SysImportFanRecordController extends BaseController
|
||||
@Autowired
|
||||
private ISysImportFanRecordService sysImportFanRecordService;
|
||||
|
||||
@Autowired
|
||||
private ISysWxSaleAccountService sysWxSaleAccountService;
|
||||
|
||||
@Autowired
|
||||
private ISysImportFanWxAccountService sysImportFanWxAccountService;
|
||||
|
||||
/**
|
||||
* 查询导粉管理列表
|
||||
*/
|
||||
@ -42,6 +56,12 @@ public class SysImportFanRecordController extends BaseController
|
||||
{
|
||||
startPage();
|
||||
List<SysImportFanRecord> list = sysImportFanRecordService.selectSysImportFanRecordList(sysImportFanRecord);
|
||||
SysImportFanWxAccount sysImportFanWxAccount = new SysImportFanWxAccount();
|
||||
if(list != null && list.size() > 0){
|
||||
//总导粉量
|
||||
int totalNum = sysImportFanRecordService.selectTotalSysImportFanNum(sysImportFanRecord);
|
||||
list.get(0).setTotalFanNum(totalNum);
|
||||
}
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@ -76,7 +96,34 @@ public class SysImportFanRecordController extends BaseController
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody SysImportFanRecord sysImportFanRecord)
|
||||
{
|
||||
return toAjax(sysImportFanRecordService.insertSysImportFanRecord(sysImportFanRecord));
|
||||
if(sysImportFanRecord.getImportFanDate() == null){
|
||||
return AjaxResult.error("导入日期不存在");
|
||||
}
|
||||
int row = 0;
|
||||
//批量保存
|
||||
if(StringUtils.isNotEmpty(sysImportFanRecord.getImportFanChannels() )){
|
||||
String[] importFanChannelArray = sysImportFanRecord.getImportFanChannels().split(",");
|
||||
String[] importFanLiveArray = sysImportFanRecord.getImportFanLives().split(",");
|
||||
String[] wxAccountIdArray = sysImportFanRecord.getWxAccountIds().split(",");
|
||||
String[] fanNumArray = sysImportFanRecord.getFanNums().split(",");
|
||||
int index = -1;
|
||||
for (String importFanChannel : importFanChannelArray) {
|
||||
index++;
|
||||
if(StringUtils.isEmpty(importFanChannel)){
|
||||
continue;
|
||||
}
|
||||
sysImportFanRecord.setImportFanChannel(Long.parseLong(importFanChannel));
|
||||
sysImportFanRecord.setImportFanLive(StringUtils.isEmpty(importFanLiveArray[index]) ? 0L : Long.parseLong(importFanLiveArray[index]));
|
||||
sysImportFanRecord.setWxAccountId(Long.parseLong(wxAccountIdArray[index]));
|
||||
sysImportFanRecord.setFanNum(Long.parseLong(fanNumArray[index]));
|
||||
row = sysImportFanRecordService.insertSysImportFanRecord(sysImportFanRecord);
|
||||
}
|
||||
}else{
|
||||
if(sysImportFanRecord.getImportFanChannel() != null){
|
||||
row = sysImportFanRecordService.insertSysImportFanRecord(sysImportFanRecord);
|
||||
}
|
||||
}
|
||||
return toAjax(row);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -100,4 +147,41 @@ public class SysImportFanRecordController extends BaseController
|
||||
{
|
||||
return toAjax(sysImportFanRecordService.deleteSysImportFanRecordByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可接粉的微信号以及对应销售
|
||||
* @return
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('custom:importFanRecord:add')")
|
||||
@GetMapping(value = "/getWxAccountAndSale")
|
||||
public AjaxResult getWxAccountAndSale(SysImportFanWxAccount sysImportFanWxAccount){
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<SysWxSaleAccount> list = sysWxSaleAccountService.getWxAccountAndSale();
|
||||
List<Map<String,Object>> fanNumList = sysImportFanWxAccountService.getTotalImportFanNum(sysImportFanWxAccount);
|
||||
result.put("wxSaleAccountList", list);
|
||||
result.put("fanNumList", fanNumList);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除导粉记录中对应微信记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('custom:importFanRecord:remove')")
|
||||
@Log(title = "删除导粉记录中对应微信记录", businessType = BusinessType.DELETE)
|
||||
@GetMapping("/removeFanWxAccount/{ids}")
|
||||
public AjaxResult removeFanWxAccount(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(sysImportFanWxAccountService.deleteSysImportFanWxAccountByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除导粉记录中对应微信记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('custom:importFanRecord:edit')")
|
||||
@GetMapping("/saveWxAccountFanNum")
|
||||
public AjaxResult saveWxAccountFanNum(SysImportFanWxAccount sysImportFanWxAccount)
|
||||
{
|
||||
return toAjax(sysImportFanWxAccountService.updateSysImportFanWxAccount(sysImportFanWxAccount));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -233,4 +233,13 @@ public class SysLiveSchedulController extends BaseController
|
||||
public AjaxResult copyLastTimeLiveSchedul(){
|
||||
return sysLiveSchedulService.copyLastTimeLiveSchedul();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据日期查询直播记录
|
||||
*/
|
||||
@GetMapping(value = "/getAllLiveSchedulByDate")
|
||||
public AjaxResult getAllLiveSchedulByDate(SysLiveSchedul sysLiveSchedul){
|
||||
List<SysLiveSchedul> list = sysLiveSchedulService.selectSysLiveSchedulList(sysLiveSchedul);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
@ -1,9 +1,13 @@
|
||||
package com.stdiet.custom.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.stdiet.common.annotation.Excel;
|
||||
import com.stdiet.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 导粉管理对象 sys_import_fan_record
|
||||
@ -11,6 +15,7 @@ import com.stdiet.common.core.domain.BaseEntity;
|
||||
* @author xzj
|
||||
* @date 2021-05-17
|
||||
*/
|
||||
@Data
|
||||
public class SysImportFanRecord extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -33,4 +38,31 @@ public class SysImportFanRecord extends BaseEntity
|
||||
|
||||
/** 删除标识,0未删除 1已删除 */
|
||||
private Long delFlag;
|
||||
|
||||
//微信ID
|
||||
private Long wxAccountId;
|
||||
|
||||
//进粉数量
|
||||
private Long fanNum;
|
||||
|
||||
private String importFanChannelName;
|
||||
|
||||
private String liveRoomName;
|
||||
|
||||
private String liveNutritionistName;
|
||||
|
||||
private List<Map<String,Object>> wxAccountList;
|
||||
|
||||
|
||||
private String importFanChannels;
|
||||
|
||||
private String importFanLives;
|
||||
|
||||
private String wxAccountIds;
|
||||
|
||||
private String fanNums;
|
||||
|
||||
|
||||
//总进粉数量
|
||||
private Integer totalFanNum;
|
||||
}
|
@ -1,9 +1,12 @@
|
||||
package com.stdiet.custom.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import com.stdiet.common.annotation.Excel;
|
||||
import com.stdiet.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 导粉记录中对应微信记录对象 sys_import_fan_wx_account
|
||||
*
|
||||
@ -32,4 +35,8 @@ public class SysImportFanWxAccount extends BaseEntity
|
||||
|
||||
/** 删除标识 0未删除 1已删除 */
|
||||
private Long delFlag;
|
||||
|
||||
//导粉日期
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date importFanDate;
|
||||
}
|
@ -44,4 +44,7 @@ public class SysWxSaleAccount extends BaseEntity
|
||||
private Integer status;
|
||||
|
||||
private Integer useCount;
|
||||
|
||||
//销售昵称
|
||||
private String saleName;
|
||||
}
|
@ -58,4 +58,14 @@ public interface SysImportFanRecordMapper
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysImportFanRecordByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 根据日期渠道、直播间获取进粉记录
|
||||
* @param sysImportFanRecord
|
||||
* @return
|
||||
*/
|
||||
public SysImportFanRecord getFanRecordByChannelLive(SysImportFanRecord sysImportFanRecord);
|
||||
|
||||
//查询总导粉数量
|
||||
int selectTotalSysImportFanNum(SysImportFanRecord sysImportFanRecord);
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
package com.stdiet.custom.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.stdiet.custom.domain.SysImportFanWxAccount;
|
||||
|
||||
/**
|
||||
@ -58,4 +60,25 @@ public interface SysImportFanWxAccountMapper
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysImportFanWxAccountByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 根据导粉记录ID、微信ID查询对应微信记录
|
||||
* @param sysImportFanWxAccount
|
||||
* @return
|
||||
*/
|
||||
public SysImportFanWxAccount getWxAccountByFanRecordId(SysImportFanWxAccount sysImportFanWxAccount);
|
||||
|
||||
/**
|
||||
* 根据微信号查询
|
||||
* @param sysImportFanWxAccount
|
||||
* @return
|
||||
*/
|
||||
List<Map<String,Object>> getTotalImportFanNum(SysImportFanWxAccount sysImportFanWxAccount);
|
||||
|
||||
/**
|
||||
* 根据记录ID删除对应所有微信
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
int deleteSysImportFanWxAccountByFanRecordIds(Long[] ids);
|
||||
}
|
@ -71,4 +71,10 @@ public interface SysWxSaleAccountMapper
|
||||
SysWxSaleAccount selectWxAdId();
|
||||
|
||||
int insertWxAdLog(SysWxAdLog sysWxAdLog);
|
||||
|
||||
/**
|
||||
* 获取可接粉的微信号以及分配的销售昵称
|
||||
* @return
|
||||
*/
|
||||
List<SysWxSaleAccount> getWxAccountAndSale();
|
||||
}
|
@ -2,6 +2,7 @@ package com.stdiet.custom.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.stdiet.custom.domain.SysWxUserInfo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 微信用户Mapper接口
|
||||
@ -62,4 +63,11 @@ public interface SysWxUserInfoMapper
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysWxUserInfoByIds(String[] openids);
|
||||
|
||||
/**
|
||||
* 根据手机号查询微信用户
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
public SysWxUserInfo getSysWxUserInfoByPhone(@Param("phone")String phone);
|
||||
}
|
@ -58,4 +58,7 @@ public interface ISysImportFanRecordService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysImportFanRecordById(Long id);
|
||||
|
||||
//查询总导粉数量
|
||||
int selectTotalSysImportFanNum(SysImportFanRecord sysImportFanRecord);
|
||||
}
|
@ -1,7 +1,10 @@
|
||||
package com.stdiet.custom.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.stdiet.custom.domain.SysImportFanWxAccount;
|
||||
import com.stdiet.custom.domain.SysWxSaleAccount;
|
||||
|
||||
/**
|
||||
* 导粉记录中对应微信记录Service接口
|
||||
@ -58,4 +61,24 @@ public interface ISysImportFanWxAccountService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysImportFanWxAccountById(Long id);
|
||||
|
||||
/**
|
||||
* 根据导粉记录ID、微信ID查询对应微信记录
|
||||
* @param sysImportFanWxAccount
|
||||
* @return
|
||||
*/
|
||||
public SysImportFanWxAccount getWxAccountByFanRecordId(SysImportFanWxAccount sysImportFanWxAccount);
|
||||
|
||||
/**
|
||||
* 根据日期统计微信号导粉数量
|
||||
* @return
|
||||
*/
|
||||
List<Map<String,Object>> getTotalImportFanNum(SysImportFanWxAccount sysImportFanWxAccount);
|
||||
|
||||
/**
|
||||
* 根据记录ID删除对应所有微信
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
int deleteSysImportFanWxAccountByFanRecordIds(Long[] ids);
|
||||
}
|
@ -72,4 +72,10 @@ public interface ISysWxSaleAccountService
|
||||
String getWxAdId(SysWxAdLog sysWxAdLog);
|
||||
|
||||
Integer logWxAd(SysWxAdLog sysWxAdLog);
|
||||
|
||||
/**
|
||||
* 获取可接粉的微信号以及分配的销售昵称
|
||||
* @return
|
||||
*/
|
||||
List<SysWxSaleAccount> getWxAccountAndSale();
|
||||
}
|
@ -63,5 +63,12 @@ public interface ISysWxUserInfoService
|
||||
*/
|
||||
public int deleteSysWxUserInfoById(String openid);
|
||||
|
||||
/**
|
||||
* 根据手机号查询微信用户
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
public SysWxUserInfo getSysWxUserInfoByPhone(String phone);
|
||||
|
||||
|
||||
}
|
@ -33,7 +33,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
private SysOrderMapper sysOrderMapper;
|
||||
|
||||
@Autowired
|
||||
private SysOrderPauseMapper sysOrderPauseMapper;
|
||||
private SysOrderPauseMapper sysOrderPauseMapper ;
|
||||
|
||||
@Autowired
|
||||
private ISysOrderNutritionistReplaceRecordService sysOrderNutritionistReplaceRecordService;
|
||||
|
@ -14,6 +14,7 @@ import com.stdiet.custom.domain.SysCustomer;
|
||||
import com.stdiet.custom.domain.SysCustomerPhysicalSigns;
|
||||
import com.stdiet.custom.dto.request.HealthyDetailRequest;
|
||||
import com.stdiet.custom.dto.response.NutritionalCalories;
|
||||
import com.stdiet.custom.mapper.SysCustomerMapper;
|
||||
import com.stdiet.custom.service.ISysCustomerService;
|
||||
import com.stdiet.custom.utils.NutritionalUtils;
|
||||
import com.stdiet.custom.utils.PdfUtils;
|
||||
@ -36,7 +37,7 @@ public class SysCustomerHealthyServiceImpl implements ISysCustomerHealthyService
|
||||
private SysCustomerHealthyMapper sysCustomerHealthyMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysCustomerService sysCustomerService;
|
||||
private SysCustomerMapper sysCustomerMapper;
|
||||
|
||||
public static final String reportDownFileNameFormat = "%s超重%s斤%s";
|
||||
|
||||
@ -78,7 +79,7 @@ public class SysCustomerHealthyServiceImpl implements ISysCustomerHealthyService
|
||||
return AjaxResult.error("客户不存在");
|
||||
}
|
||||
//判断客户是否存在
|
||||
SysCustomer sysCustomer = sysCustomerService.selectSysCustomerById(Long.parseLong(customerId));
|
||||
SysCustomer sysCustomer = sysCustomerMapper.selectSysCustomerById(Long.parseLong(customerId));
|
||||
if(sysCustomer == null){
|
||||
return AjaxResult.error("客户不存在");
|
||||
}
|
||||
|
@ -6,10 +6,14 @@ import com.stdiet.common.utils.sign.AesUtils;
|
||||
import com.stdiet.custom.domain.SysCustomer;
|
||||
import com.stdiet.custom.domain.SysCustomerHealthy;
|
||||
import com.stdiet.custom.domain.SysCustomerPhysicalSigns;
|
||||
import com.stdiet.custom.domain.SysWxUserInfo;
|
||||
import com.stdiet.custom.mapper.SysCustomerMapper;
|
||||
import com.stdiet.custom.mapper.SysCustomerPhysicalSignsMapper;
|
||||
import com.stdiet.custom.mapper.SysWxUserInfoMapper;
|
||||
import com.stdiet.custom.service.ISysCustomerService;
|
||||
import com.stdiet.custom.service.ISysWxUserInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@ -38,6 +42,9 @@ public class SysCustomerServiceImpl implements ISysCustomerService {
|
||||
@Autowired
|
||||
private SysCustomerPhysicalSignsServiceImpl sysCustomerPhysicalSignsService;
|
||||
|
||||
@Autowired
|
||||
private ISysWxUserInfoService sysWxUserInfoService;
|
||||
|
||||
/**
|
||||
* 查询客户信息
|
||||
*
|
||||
@ -69,7 +76,11 @@ public class SysCustomerServiceImpl implements ISysCustomerService {
|
||||
@Override
|
||||
public int insertSysCustomer(SysCustomer sysCustomer) {
|
||||
sysCustomer.setCreateTime(DateUtils.getNowDate());
|
||||
return sysCustomerMapper.insertSysCustomer(sysCustomer);
|
||||
int row = sysCustomerMapper.insertSysCustomer(sysCustomer);
|
||||
if(row > 0){
|
||||
updateWxInfoMessage(sysCustomer);
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,7 +92,11 @@ public class SysCustomerServiceImpl implements ISysCustomerService {
|
||||
@Override
|
||||
public int updateSysCustomer(SysCustomer sysCustomer) {
|
||||
sysCustomer.setUpdateTime(DateUtils.getNowDate());
|
||||
return sysCustomerMapper.updateSysCustomer(sysCustomer);
|
||||
int row = sysCustomerMapper.updateSysCustomer(sysCustomer);
|
||||
if(row > 0){
|
||||
updateWxInfoMessage(sysCustomer);
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -177,4 +192,17 @@ public class SysCustomerServiceImpl implements ISysCustomerService {
|
||||
public SysCustomer getCustomerByOpenId(String openid){
|
||||
return sysCustomerMapper.getCustomerByOpenId(openid);
|
||||
}
|
||||
|
||||
@Async
|
||||
public void updateWxInfoMessage(SysCustomer newCustomer){
|
||||
if(newCustomer == null || newCustomer.getId() == null || StringUtils.isEmpty(newCustomer.getPhone())){
|
||||
return;
|
||||
}
|
||||
//根据手机号查询微信用户记录
|
||||
SysWxUserInfo wxUserInfo = sysWxUserInfoService.getSysWxUserInfoByPhone(newCustomer.getPhone());
|
||||
if(wxUserInfo != null && (wxUserInfo.getCusId() == null || wxUserInfo.getCusId().longValue() != newCustomer.getId())){
|
||||
wxUserInfo.setCusId(newCustomer.getId());
|
||||
sysWxUserInfoService.updateSysWxUserInfo(wxUserInfo);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +1,10 @@
|
||||
package com.stdiet.custom.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.custom.domain.SysImportFanWxAccount;
|
||||
import com.stdiet.custom.service.ISysImportFanWxAccountService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.stdiet.custom.mapper.SysImportFanRecordMapper;
|
||||
@ -20,6 +23,9 @@ public class SysImportFanRecordServiceImpl implements ISysImportFanRecordService
|
||||
@Autowired
|
||||
private SysImportFanRecordMapper sysImportFanRecordMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysImportFanWxAccountService sysImportFanWxAccountService;
|
||||
|
||||
/**
|
||||
* 查询导粉管理
|
||||
*
|
||||
@ -54,7 +60,29 @@ public class SysImportFanRecordServiceImpl implements ISysImportFanRecordService
|
||||
public int insertSysImportFanRecord(SysImportFanRecord sysImportFanRecord)
|
||||
{
|
||||
sysImportFanRecord.setCreateTime(DateUtils.getNowDate());
|
||||
return sysImportFanRecordMapper.insertSysImportFanRecord(sysImportFanRecord);
|
||||
//根据账号渠道、直播间判断是否已存在该渠道的导粉记录
|
||||
SysImportFanRecord record = sysImportFanRecordMapper.getFanRecordByChannelLive(sysImportFanRecord);
|
||||
int row = 0;
|
||||
if(record == null){
|
||||
row = sysImportFanRecordMapper.insertSysImportFanRecord(sysImportFanRecord);
|
||||
}
|
||||
if(record != null || row > 0){
|
||||
//添加微信号对应记录
|
||||
SysImportFanWxAccount sysImportFanWxAccount = new SysImportFanWxAccount();
|
||||
sysImportFanWxAccount.setImportFanRecordId(record != null ? record.getId() : sysImportFanRecord.getId());
|
||||
sysImportFanWxAccount.setImportWxAccountId(sysImportFanRecord.getWxAccountId());
|
||||
sysImportFanWxAccount.setImportFanNum(sysImportFanRecord.getFanNum());
|
||||
sysImportFanWxAccount.setCreateTime(new Date());
|
||||
//根据微信号、导粉记录查询是否存在
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -79,7 +107,11 @@ public class SysImportFanRecordServiceImpl implements ISysImportFanRecordService
|
||||
@Override
|
||||
public int deleteSysImportFanRecordByIds(Long[] ids)
|
||||
{
|
||||
return sysImportFanRecordMapper.deleteSysImportFanRecordByIds(ids);
|
||||
int row = sysImportFanRecordMapper.deleteSysImportFanRecordByIds(ids);
|
||||
if(row > 0){
|
||||
sysImportFanWxAccountService.deleteSysImportFanWxAccountByFanRecordIds(ids);
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,6 +123,16 @@ public class SysImportFanRecordServiceImpl implements ISysImportFanRecordService
|
||||
@Override
|
||||
public int deleteSysImportFanRecordById(Long id)
|
||||
{
|
||||
return sysImportFanRecordMapper.deleteSysImportFanRecordById(id);
|
||||
int row = sysImportFanRecordMapper.deleteSysImportFanRecordById(id);
|
||||
if(row > 0){
|
||||
Long[] ids = {id};
|
||||
sysImportFanWxAccountService.deleteSysImportFanWxAccountByFanRecordIds(ids);
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
//查询总导粉数量
|
||||
public int selectTotalSysImportFanNum(SysImportFanRecord sysImportFanRecord){
|
||||
return sysImportFanRecordMapper.selectTotalSysImportFanNum(sysImportFanRecord);
|
||||
}
|
||||
}
|
@ -1,7 +1,10 @@
|
||||
package com.stdiet.custom.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.custom.domain.SysWxSaleAccount;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.stdiet.custom.mapper.SysImportFanWxAccountMapper;
|
||||
@ -93,4 +96,31 @@ public class SysImportFanWxAccountServiceImpl implements ISysImportFanWxAccountS
|
||||
{
|
||||
return sysImportFanWxAccountMapper.deleteSysImportFanWxAccountById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据导粉记录ID、微信ID查询对应微信记录
|
||||
* @param sysImportFanWxAccount
|
||||
* @return
|
||||
*/
|
||||
public SysImportFanWxAccount getWxAccountByFanRecordId(SysImportFanWxAccount sysImportFanWxAccount){
|
||||
return sysImportFanWxAccountMapper.getWxAccountByFanRecordId(sysImportFanWxAccount);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据日期统计微信号导粉数量
|
||||
* @return
|
||||
*/
|
||||
public List<Map<String,Object>> getTotalImportFanNum(SysImportFanWxAccount sysImportFanWxAccount){
|
||||
return sysImportFanWxAccountMapper.getTotalImportFanNum(sysImportFanWxAccount);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据记录ID删除对应所有微信
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
public int deleteSysImportFanWxAccountByFanRecordIds(Long[] ids){
|
||||
return sysImportFanWxAccountMapper.deleteSysImportFanWxAccountByFanRecordIds(ids);
|
||||
}
|
||||
}
|
@ -64,7 +64,10 @@ public class SysRecipesServiceImpl implements ISysRecipesService {
|
||||
|
||||
@Override
|
||||
public List<SysRecipes> selectSysRecipesByRecipesId(Long id) {
|
||||
return sysRecipesMapper.selectSysRecipesByRecipesId(id);
|
||||
long t = System.currentTimeMillis();
|
||||
List<SysRecipes> list = sysRecipesMapper.selectSysRecipesByRecipesId(id);
|
||||
System.out.println(System.currentTimeMillis() - t);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -9,7 +9,9 @@ import com.stdiet.custom.service.ISysWxSaleAccountService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 微信账号Service业务层处理
|
||||
@ -128,4 +130,13 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService {
|
||||
public Integer logWxAd(SysWxAdLog sysWxAdLog) {
|
||||
return sysWxSaleAccountMapper.insertWxAdLog(sysWxAdLog);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可接粉的微信号以及分配的销售昵称
|
||||
* @param sysWxSaleAccount
|
||||
* @return
|
||||
*/
|
||||
public List<SysWxSaleAccount> getWxAccountAndSale(){
|
||||
return sysWxSaleAccountMapper.getWxAccountAndSale();
|
||||
}
|
||||
}
|
@ -97,4 +97,13 @@ public class SysWxUserInfoServiceImpl implements ISysWxUserInfoService {
|
||||
public int deleteSysWxUserInfoById(String openid) {
|
||||
return sysWxUserInfoMapper.deleteSysWxUserInfoById(openid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据手机号查询微信用户
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
public SysWxUserInfo getSysWxUserInfoByPhone(String phone){
|
||||
return sysWxUserInfoMapper.getSysWxUserInfoByPhone(phone);
|
||||
}
|
||||
}
|
@ -14,18 +14,56 @@
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
|
||||
<result property="importFanChannelName" column="import_fan_channel_name"></result>
|
||||
<result property="liveRoomName" column="live_room_name"></result>
|
||||
<result property="liveNutritionistName" column="live_nutritionist_name"></result>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="SysImportFanRecord" id="SysImportFanRecordResultExtended">
|
||||
<result property="id" column="id" />
|
||||
<result property="importFanDate" column="import_fan_date" />
|
||||
<result property="importFanChannel" column="import_fan_channel" />
|
||||
<result property="importFanLive" column="import_fan_live" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
|
||||
<result property="importFanChannelName" column="import_fan_channel_name"></result>
|
||||
<result property="liveRoomName" column="live_room_name"></result>
|
||||
<result property="liveNutritionistName" column="live_nutritionist_name"></result>
|
||||
|
||||
<!-- 查询该渠道已导粉的微信号 -->
|
||||
<association property="wxAccountList" column="id" select="getWxAccountListByFanRecordId"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSysImportFanRecordVo">
|
||||
select id, import_fan_date, import_fan_channel, import_fan_live, create_time, create_by, update_time, update_by, del_flag from sys_import_fan_record
|
||||
</sql>
|
||||
|
||||
<select id="selectSysImportFanRecordList" parameterType="SysImportFanRecord" resultMap="SysImportFanRecordResult">
|
||||
<include refid="selectSysImportFanRecordVo"/>
|
||||
where del_flag = 0
|
||||
<if test="importFanDate != null "> and import_fan_date = #{importFanDate}</if>
|
||||
<if test="importFanChannel != null "> and import_fan_channel = #{importFanChannel}</if>
|
||||
<if test="importFanLive != null "> and import_fan_live = #{importFanLive}</if>
|
||||
<select id="selectSysImportFanRecordList" parameterType="SysImportFanRecord" resultMap="SysImportFanRecordResultExtended">
|
||||
select fc.id, fc.import_fan_date, fc.import_fan_channel, fc.import_fan_live, fc.create_time,
|
||||
ca.dict_label as import_fan_channel_name, slt.dict_label as live_room_name,su_nutritionist.nick_name as live_nutritionist_name
|
||||
from sys_import_fan_record as fc
|
||||
left join (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_account') AS ca ON ca.dict_value = fc.import_fan_channel
|
||||
left join sys_live_schedul as slc on slc.id = fc.import_fan_live and slc.del_flag = 0
|
||||
left join (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'sys_live_type') AS slt ON slt.dict_value = slc.live_room
|
||||
left join sys_user as su_nutritionist on su_nutritionist.user_id = slc.live_nutritionist_id and su_nutritionist.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>
|
||||
order by fc.import_fan_date desc,fc.import_fan_channel asc
|
||||
</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>
|
||||
|
||||
<select id="selectSysImportFanRecordById" parameterType="Long" resultMap="SysImportFanRecordResult">
|
||||
@ -83,4 +121,20 @@
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="getFanRecordByChannelLive" parameterType="SysImportFanRecord" resultMap="SysImportFanRecordResult">
|
||||
select * from sys_import_fan_record where del_flag = 0 and import_fan_date = #{importFanDate} and import_fan_channel = #{importFanChannel}
|
||||
and import_fan_live = #{importFanLive}
|
||||
order by id desc limit 1
|
||||
</select>
|
||||
|
||||
<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
|
||||
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
|
||||
left join sys_user su on swd.user_id = su.user_id and su.del_flag = 0
|
||||
where fwc.del_flag = 0 and fwc.import_fan_record_id = #{id}
|
||||
</select>
|
||||
|
||||
</mapper>
|
@ -82,4 +82,35 @@
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="getWxAccountByFanRecordId" parameterType="SysImportFanWxAccount" resultMap="SysImportFanWxAccountResult">
|
||||
select * from sys_import_fan_wx_account where del_flag = 0 and import_fan_record_id = #{importFanRecordId}
|
||||
and import_wx_account_id = #{importWxAccountId} order by id desc limit 1
|
||||
</select>
|
||||
|
||||
<!-- 根据微信号ID查询导粉多少 -->
|
||||
<select id="getTotalImportFanNum" parameterType="SysImportFanWxAccount" resultType="Map">
|
||||
select w.import_wx_account_id as wxAccountId,sum(w.import_fan_num) as fanNum
|
||||
from
|
||||
(
|
||||
select fwa.import_wx_account_id,fwa.import_fan_num from sys_import_fan_wx_account fwa
|
||||
left join sys_import_fan_record ifr on fwa.import_fan_record_id = ifr.id and ifr.del_flag = 0
|
||||
where fwa.del_flag = 0
|
||||
<if test="importFanDate != null">
|
||||
and ifr.import_fan_date = #{importFanDate}
|
||||
</if>
|
||||
<if test="importWxAccountId != null">
|
||||
and fwa.import_wx_account_id = #{importWxAccountId}
|
||||
</if>
|
||||
) w
|
||||
group by w.import_wx_account_id order by w.import_wx_account_id desc
|
||||
</select>
|
||||
|
||||
<!-- 根据导粉ID删除对应所有微信记录 -->
|
||||
<update id="deleteSysImportFanWxAccountByFanRecordIds" parameterType="String">
|
||||
update sys_import_fan_wx_account set del_flag = 1 where import_fan_record_id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
@ -28,7 +28,7 @@
|
||||
<result property="fanChannelName" column="fan_channel_name"></result>
|
||||
|
||||
<!-- 根据渠道查询对应微信号(微信账号分配表中) -->
|
||||
<!--<association property="wxAccountList" column="fan_channel" select="getWxAccountListByFanChannel"/>-->
|
||||
<association property="wxAccountList" column="id" select="getWxAccountListByLiveId"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="SysLiveSchedul" id="SysLiveSchedulResultSigle">
|
||||
@ -74,9 +74,9 @@
|
||||
<if test="fanChannel != null">
|
||||
and slc.fan_channel = #{fanChannel}
|
||||
</if>
|
||||
<if test="wxAccountId != null">
|
||||
<!--<if test="wxAccountId != null">
|
||||
and slc.fan_channel = (SELECT swd.account_id FROM sys_wx_distribution AS swd where swd.wechat_account = #{wxAccountId} and swd.del_flag = 0 limit 1)
|
||||
</if>
|
||||
</if>-->
|
||||
order by slc.live_schedul_date desc,slc.live_start_time desc ,slc.live_room asc
|
||||
</select>
|
||||
|
||||
@ -162,14 +162,15 @@
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 根据渠道查询该渠道下分配的微信号 -->
|
||||
<select id="getWxAccountListByFanChannel" parameterType="Integer" resultType="Map">
|
||||
SELECT su.nick_name as nickName,swsa.wx_account as wxAccount,asg.dict_label as saleGroupName
|
||||
FROM sys_wx_distribution AS swd
|
||||
lEFT JOIN sys_wx_sale_account swsa ON swsa.id = swd.wechat_account and swsa.del_flag = 0
|
||||
LEFT JOIN sys_user su ON su.user_id = swd.user_id AND su.del_flag = 0
|
||||
LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'sale_group') AS asg ON asg.dict_value = swd.sale_group_id
|
||||
where swd.account_id = #{fan_channel} and swd.del_flag = 0
|
||||
<!-- 根据直播ID查询该渠道下分配的微信号 -->
|
||||
<select id="getWxAccountListByLiveId" parameterType="Long" resultType="Map">
|
||||
SELECT su.nick_name as saleName,w.wx_account as wxAccount, sum(wa.import_fan_num) as fanNum from sys_import_fan_record as fc
|
||||
left join sys_import_fan_wx_account as wa on wa.import_fan_record_id = fc.id and wa.del_flag = 0
|
||||
left join sys_wx_sale_account as w on w.id = wa.import_wx_account_id and w.del_flag = 0
|
||||
left join sys_wx_distribution swd on swd.wechat_account = w.id and swd.del_flag = 0
|
||||
left join sys_user su on swd.user_id = su.user_id and su.del_flag = 0
|
||||
where fc.import_fan_live = #{id} and fc.del_flag = 0
|
||||
group by w.wx_account,su.nick_name
|
||||
</select>
|
||||
|
||||
<!-- 查询直播时间范围是否重叠 -->
|
||||
|
@ -198,12 +198,16 @@
|
||||
</select>
|
||||
|
||||
<select id="selectDishesByMenuIdShow" parameterType="Long" resultMap="SysDishesResultShow">
|
||||
SELECT * FROM (SELECT id, menu_id, dishes_id, type, detail, remark FROM sys_customer_menu_dishes WHERE menu_id = #{id}) AS menu
|
||||
LEFT JOIN sys_dishes ON menu.dishes_id = sys_dishes.id
|
||||
SELECT
|
||||
menu.id, menu.menu_id, menu.dishes_id, menu.type, menu.detail, menu.remark, sd.is_main,sd.name,sd.methods
|
||||
FROM (SELECT id, menu_id, dishes_id, type, detail, remark FROM sys_customer_menu_dishes WHERE menu_id = #{id}) AS menu
|
||||
LEFT JOIN sys_dishes as sd ON menu.dishes_id = sd.id
|
||||
</select>
|
||||
|
||||
<select id="selectIngredientsByDishesIdShow" parameterType="Long" resultMap="SysIgdsResultShow">
|
||||
SELECT * FROM(
|
||||
SELECT
|
||||
ing.id,ing.name,ing.type.ing.protein_ratio,ing.fat_ratio,ing.carbon_ratio.ing.area,dishes.cus_weight,dishes.cus_unit,dishes.weight
|
||||
FROM(
|
||||
SELECT ingredient_id AS id, ingredient_weight AS weight, cus_weight, cus_unit, remark
|
||||
FROM sys_dishes_ingredient
|
||||
WHERE dishes_id = #{id}
|
||||
|
@ -19,6 +19,9 @@
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="useCount" column="use_count"/>
|
||||
|
||||
<!-- 销售 -->
|
||||
<result property="saleName" column="sale_name"></result>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSysWxSaleAccountVo">
|
||||
@ -31,6 +34,7 @@
|
||||
<if test="wxNickName != null and wxNickName != ''">and wx_nick_name like concat('%', #{wxNickName}, '%')</if>
|
||||
<if test="wxAccount != null and wxAccount != ''">and wx_account like concat('%', #{wxAccount}, '%')</if>
|
||||
<if test="wxPhone != null and wxPhone != ''">and wx_phone like concat('%', #{wxPhone}, '%')</if>
|
||||
<if test="status != null">and status = #{status}</if>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
@ -134,4 +138,14 @@
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<!-- 查询可以接粉的微信号以及对应销售,用于导粉记录管理 -->
|
||||
<select id="getWxAccountAndSale" resultMap="SysWxSaleAccountResult">
|
||||
select wa.id, wa.wx_account, 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
|
||||
where wa.del_flag = 0 and wa.status = 0
|
||||
order by su.user_id asc
|
||||
</select>
|
||||
|
||||
</mapper>
|
@ -129,4 +129,10 @@
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<!-- 根据手机号查询微信用户 -->
|
||||
<select id="getSysWxUserInfoByPhone" parameterType="String" resultMap="SysWxUserInfoResult">
|
||||
<include refid="selectSysWxUserInfoVo"/>
|
||||
where phone = #{phone} order by create_time desc limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
78
stdiet-ui/src/api/custom/importFanRecord.js
Normal file
78
stdiet-ui/src/api/custom/importFanRecord.js
Normal file
@ -0,0 +1,78 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询导粉管理列表
|
||||
export function listImportFanRecord(query) {
|
||||
return request({
|
||||
url: '/custom/importFanRecord/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询导粉管理详细
|
||||
export function getImportFanRecord(id) {
|
||||
return request({
|
||||
url: '/custom/importFanRecord/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增导粉管理
|
||||
export function addImportFanRecord(data) {
|
||||
return request({
|
||||
url: '/custom/importFanRecord',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改导粉管理
|
||||
export function updateImportFanRecord(data) {
|
||||
return request({
|
||||
url: '/custom/importFanRecord',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除导粉管理
|
||||
export function delImportFanRecord(id) {
|
||||
return request({
|
||||
url: '/custom/importFanRecord/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 导出导粉管理
|
||||
export function exportImportFanRecord(query) {
|
||||
return request({
|
||||
url: '/custom/importFanRecord/export',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getWxAccountAndSale(query){
|
||||
return request({
|
||||
url: '/custom/importFanRecord/getWxAccountAndSale',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 删除导粉记录中对应的微信记录
|
||||
export function removeFanWxAccount(id) {
|
||||
return request({
|
||||
url: '/custom/importFanRecord/removeFanWxAccount/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function saveWxAccountFanNum(data){
|
||||
return request({
|
||||
url: '/custom/importFanRecord/saveWxAccountFanNum',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
@ -71,4 +71,14 @@ export function copyLastTimeLiveSchedul() {
|
||||
})
|
||||
}
|
||||
|
||||
// 根据日期查询直播记录
|
||||
export function getAllLiveSchedulByDate(data) {
|
||||
return request({
|
||||
url: '/custom/liveSchedul/getAllLiveSchedulByDate',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
297
stdiet-ui/src/components/ImportFanRecord/ImportFan/index.vue
Normal file
297
stdiet-ui/src/components/ImportFanRecord/ImportFan/index.vue
Normal file
@ -0,0 +1,297 @@
|
||||
<template>
|
||||
<!-- -->
|
||||
<!-- 添加或修改导粉管理对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="1100px" :close-on-click-modal="false" append-to-body @closed="cancel">
|
||||
<div style="height: 500px; overflow: auto">
|
||||
<el-table v-loading="loading" :data="wxAccountList">
|
||||
<!--<el-table-column label="微信昵称" align="center" prop="wxNickName" />-->
|
||||
<el-table-column label="微信号" align="center" prop="wxAccount" width="160"/>
|
||||
<el-table-column label="销售" align="center" prop="saleName" width="120"/>
|
||||
<el-table-column label="已导粉数量" align="center" prop="importFanNum" width="120"/>
|
||||
<el-table-column label="进粉渠道" align="center" prop="importFanChannel" >
|
||||
<template slot-scope="scope">
|
||||
<el-select
|
||||
v-model="scope.row.importFanChannel"
|
||||
placeholder="请选择账号渠道"
|
||||
clearable
|
||||
filterable
|
||||
size="small"
|
||||
@change="autoSelectLive(scope.row)"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in fanChanneloptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="parseInt(dict.dictValue)"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="直播间" align="center" prop="importFanLive" >
|
||||
<template slot-scope="scope">
|
||||
<el-select
|
||||
v-model="scope.row.importFanLive"
|
||||
placeholder="请选择直播间"
|
||||
clearable
|
||||
filterable
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in liveSchedukList"
|
||||
:key="dict.id"
|
||||
:label="dict.liveRoomName"
|
||||
:value="parseInt(dict.id)"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="导粉数量" align="center" prop="fanNum" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number v-model="scope.row.fanNum" :min="1" :max="10000" label="导粉数量" style="width:160px"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="normal"
|
||||
type="text"
|
||||
@click="addImportFanRecord(scope.row)"
|
||||
v-hasPermi="['custom:importFanRecord:add']"
|
||||
>保存</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="addMuchImport"
|
||||
v-hasPermi="['custom:importFanRecord:add']"
|
||||
>全部保存</el-button>
|
||||
<el-button @click="cancel">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { addImportFanRecord,getWxAccountAndSale } from "@/api/custom/importFanRecord";
|
||||
import { getAllLiveSchedulByDate } from "@/api/custom/liveSchedul";
|
||||
import dayjs from "dayjs";
|
||||
const nowTime = dayjs().format("YYYY-MM-DD HH:mm");
|
||||
export default {
|
||||
name: "ImportFan",
|
||||
components: {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 表单校验
|
||||
rules: {
|
||||
title: [
|
||||
{ required: true, message: "标题不能为空", trigger: "blur" },
|
||||
]
|
||||
},
|
||||
data: null,
|
||||
callback: null,
|
||||
//可接粉的微信号
|
||||
wxAccountList:[],
|
||||
fanChanneloptions:[],
|
||||
//当日直播间
|
||||
liveSchedukList:[],
|
||||
//总导粉统计
|
||||
fanNumList:[],
|
||||
//是否进行了导粉操作
|
||||
importFanFlag: false
|
||||
};
|
||||
},
|
||||
created(){
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
showDialog(data, callback, fanChanneloptions) {
|
||||
if(!data || data == undefined || data == null){
|
||||
return;
|
||||
}
|
||||
this.importFanFlag = false;
|
||||
this.data = data;
|
||||
this.fanChanneloptions = fanChanneloptions;
|
||||
this.title = "「"+data.importFanDate+"」微信导粉(只显示可接粉微信号)";
|
||||
this.reset();
|
||||
this.callback = callback;
|
||||
this.getListWxAccount();
|
||||
this.getAllLiveSchedulByDate();
|
||||
this.open = true;
|
||||
},
|
||||
reset(){
|
||||
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
|
||||
},
|
||||
onClosed() {
|
||||
this.reset();
|
||||
},
|
||||
cancel(){
|
||||
this.open = false;
|
||||
if(this.importFanFlag){
|
||||
this.callback && this.callback();
|
||||
}
|
||||
this.reset();
|
||||
},
|
||||
//获取所有可接粉的微信号
|
||||
getListWxAccount() {
|
||||
this.loading = true;
|
||||
getWxAccountAndSale({'importFanDate': this.data.importFanDate}).then((response) => {
|
||||
response.data.wxSaleAccountList.forEach((item,index) => {
|
||||
item.fanNum = 1;
|
||||
item.importFanNum = this.getTotalFanNum(response.data.fanNumList, item.id);
|
||||
item.importFanChannel = null;
|
||||
item.importFanLive = null;
|
||||
});
|
||||
this.wxAccountList = response.data.wxSaleAccountList;
|
||||
this.fanNumList = response.data.fanNumList;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
getAllLiveSchedulByDate(){
|
||||
getAllLiveSchedulByDate({'liveSchedulDate':this.data.importFanDate}).then((response) => {
|
||||
response.data.forEach((item,index) => {
|
||||
item.liveRoomName = item.liveNutritionistName + " " + item.liveRoomName;
|
||||
});
|
||||
this.liveSchedukList = response.data;
|
||||
});
|
||||
},
|
||||
getTotalFanNum(fanNumList, wxAccountId){
|
||||
if(wxAccountId == null || fanNumList == null){
|
||||
return 0;
|
||||
}
|
||||
let num = 0;
|
||||
fanNumList.forEach((item,index) => {
|
||||
if(item.wxAccountId == wxAccountId){
|
||||
num = item.fanNum;
|
||||
}
|
||||
});
|
||||
return num;
|
||||
},
|
||||
addImportFanRecord(row){
|
||||
//账号渠道、进粉数量不能为空
|
||||
if(row.importFanChannel == undefined || row.importFanChannel == null || row.importFanChannel == ""){
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '进粉渠道不能为空',
|
||||
center: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(row.fanNum == undefined || row.fanNum == null || row.fanNum == ""){
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '进粉数量不能为空',
|
||||
center: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
let param = {
|
||||
'importFanDate': this.data.importFanDate,
|
||||
'importFanChannel': row.importFanChannel,
|
||||
'importFanLive': row.importFanLive,
|
||||
'wxAccountId': row.id,
|
||||
'fanNum': row.fanNum
|
||||
}
|
||||
addImportFanRecord(param).then((response) => {
|
||||
if(response.code == 200){
|
||||
this.msgSuccess("保存成功");
|
||||
row.importFanChannel = null;
|
||||
row.importFanLive = null;
|
||||
row.importFanNum += row.fanNum;
|
||||
row.fanNum = 1;
|
||||
this.importFanFlag = true;
|
||||
}
|
||||
});
|
||||
},
|
||||
addMuchImport(){
|
||||
if(this.wxAccountList == null || this.wxAccountList.length == 0){
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '微信号不存在',
|
||||
center: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
let param = {
|
||||
'importFanDate': this.data.importFanDate,
|
||||
'importFanChannels': null,
|
||||
'importFanLives': null,
|
||||
'wxAccountIds': null,
|
||||
'fanNums': null
|
||||
}
|
||||
this.wxAccountList.forEach((item,index) => {
|
||||
if(item.importFanChannel != undefined && item.importFanChannel != null && item.importFanChannel != ""){
|
||||
param.importFanChannels += param.importFanChannels != null ? (","+this.nullToString(item.importFanChannel)) : item.importFanChannel;
|
||||
param.importFanLives += param.importFanLives != null ? (","+this.nullToString(item.importFanLive)) : item.importFanLive;
|
||||
param.wxAccountIds += param.wxAccountIds != null ? (","+this.nullToString(item.id)) : item.id;
|
||||
param.fanNums += param.fanNums != null ? (","+this.nullToString(item.fanNum)) : item.fanNum;
|
||||
}
|
||||
if(index == this.wxAccountList.length -1){
|
||||
if(param.importFanChannels == null){
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '请至少存在一条数据',
|
||||
center: true
|
||||
});
|
||||
}else{
|
||||
addImportFanRecord(param).then((response) => {
|
||||
if(response.code == 200){
|
||||
this.msgSuccess("全部保存成功");
|
||||
this.importFanFlag = true;
|
||||
for(let i=0; i < this.wxAccountList.length; i++){
|
||||
this.wxAccountList[i].importFanLive = null;
|
||||
this.wxAccountList[i].importFanChannel = null;
|
||||
this.wxAccountList[i].importFanNum += this.wxAccountList[i].fanNum;
|
||||
this.wxAccountList[i].fanNum = 1;
|
||||
//this.$set('wxAccountList', index, item);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
nullToString(value){
|
||||
return (value == undefined || value == null || value == "") ? "" : value;
|
||||
},
|
||||
autoSelectLive(row){
|
||||
if(row.importFanLive == undefined || row.importFanLive == null || row.importFanLive == ""){
|
||||
if(row.importFanChannel == undefined || row.importFanChannel == null || row.importFanChannel == ""){
|
||||
row.importFanLive = null;
|
||||
}else{
|
||||
let now = dayjs();//"2021-05-19 16:42"
|
||||
//console.log(now.unix());
|
||||
if(this.liveSchedukList != null){
|
||||
this.liveSchedukList.forEach((item,index) => {
|
||||
if(item.fanChannel == row.importFanChannel && now.unix() >= dayjs(item.liveStartTime).unix() && dayjs(item.liveEndTime).unix() >= now.unix()){
|
||||
row.importFanLive = item.id;
|
||||
return;
|
||||
}
|
||||
if(index == this.liveSchedukList.length - 1){
|
||||
row.importFanLive = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
462
stdiet-ui/src/views/custom/importFanRecord/index.vue
Normal file
462
stdiet-ui/src/views/custom/importFanRecord/index.vue
Normal file
@ -0,0 +1,462 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="导粉日期" prop="importFanDate">
|
||||
<el-date-picker clearable size="small" style="width: 200px"
|
||||
v-model="queryParams.importFanDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择导粉日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="账号渠道" prop="importFanChannel">
|
||||
<el-select
|
||||
v-model="queryParams.importFanChannel"
|
||||
placeholder="请选择账号渠道"
|
||||
clearable
|
||||
filterable
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in fanChanneloptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="parseInt(dict.dictValue)"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="进粉直播间" prop="importFanLive">
|
||||
<el-input
|
||||
v-model="queryParams.importFanLive"
|
||||
placeholder="请输入进粉直播间"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>-->
|
||||
<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-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="showDialog(null)"
|
||||
v-hasPermi="['custom:importFanRecord:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['custom:importFanRecord:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['custom:importFanRecord:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<!--<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['custom:importFanRecord:export']"
|
||||
>导出</el-button>
|
||||
</el-col>-->
|
||||
<el-col :span="1.5">
|
||||
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="importFanRecordList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="导粉日期" align="center" prop="importFanDate" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.importFanDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进粉账号渠道" align="center" prop="importFanChannelName" />
|
||||
<el-table-column label="所属直播间" align="center" prop="liveRoomName" >
|
||||
<template slot-scope="scope">
|
||||
{{(scope.row.liveRoomName != null || scope.row.liveNutritionistName != null) ? (scope.row.liveRoomName + "—" + scope.row.liveNutritionistName) : ""}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="导粉总数" align="center" prop="wxAccountList" :formatter="getTotalFanNum">
|
||||
</el-table-column>
|
||||
<el-table-column label="导粉微信号" align="center" prop="wxAccountList" >
|
||||
<template slot-scope="scope">
|
||||
<el-popover
|
||||
placement="left"
|
||||
width="520"
|
||||
trigger="click">
|
||||
<el-table :data="scope.row.wxAccountList" style="width:450;height: 400px;overflow: auto;">
|
||||
<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="120" property="importFanNum" label="导粉数量" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.updateFlag">
|
||||
<el-input-number v-model="scope.row.importFanNum" controls-position="right" :min="1" :max="10000" style="width:100px"></el-input-number>
|
||||
</div>
|
||||
<div v-else>
|
||||
{{scope.row.importFanNum}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="120" label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="scope.row.updateFlag"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-check"
|
||||
@click="saveWxAccountFanNum(scope.row)"
|
||||
v-hasPermi="['custom:importFanRecord:edit']"
|
||||
>保存</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="scope.row.updateFlag = true"
|
||||
v-hasPermi="['custom:importFanRecord:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="removeWxAccount(scope.row.id)"
|
||||
v-hasPermi="['custom:importFanRecord:remove']"
|
||||
>移除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-button slot="reference">详情</el-button>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<!--<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['custom:importFanRecord:edit']"
|
||||
>修改</el-button>-->
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['custom:importFanRecord:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!--<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
:layout="'total, slot, sizes, prev, pager, next, jumper'"
|
||||
@pagination="getList"
|
||||
<span style="margin-right: 12px"
|
||||
>总计导粉量:{{totalFanNum}}
|
||||
元</span
|
||||
>
|
||||
</pagination>-->
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
:layout="`${'total, slot, sizes, prev, pager, next, jumper'}`"
|
||||
@pagination="getList"
|
||||
>
|
||||
<span style="margin-right: 12px"
|
||||
>总计导粉量:{{
|
||||
totalFanNum
|
||||
}}
|
||||
</span
|
||||
>
|
||||
</pagination>
|
||||
|
||||
<!-- 添加或修改导粉管理对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="导粉日期" prop="importFanDate">
|
||||
<el-date-picker clearable size="small" style="width: 200px"
|
||||
v-model="form.importFanDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择导粉日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="导粉渠道" prop="importFanChannel">
|
||||
<el-input v-model="form.importFanChannel" placeholder="请输入导粉渠道" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进粉直播间" prop="importFanLive">
|
||||
<el-input v-model="form.importFanLive" placeholder="请输入进粉直播间" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<ImportFan ref="importFanRef"></ImportFan>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listImportFanRecord, getImportFanRecord, delImportFanRecord, addImportFanRecord, updateImportFanRecord, exportImportFanRecord,removeFanWxAccount,saveWxAccountFanNum } from "@/api/custom/importFanRecord";
|
||||
import ImportFan from "@/components/ImportFanRecord/ImportFan";
|
||||
import dayjs from "dayjs";
|
||||
const nowDate = dayjs().format("YYYY-MM-DD");
|
||||
const nowTime = dayjs().format("YYYY-MM-DD HH:mm");
|
||||
export default {
|
||||
name: "ImportFanRecord",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 导粉管理表格数据
|
||||
importFanRecordList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
importFanDate: nowDate,
|
||||
importFanChannel: null,
|
||||
importFanLive: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
},
|
||||
//导粉账号渠道
|
||||
fanChanneloptions:[],
|
||||
//总导粉量
|
||||
totalFanNum:0
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getDicts("cus_account").then((response) => {
|
||||
this.fanChanneloptions = response.data;
|
||||
});
|
||||
},
|
||||
components:{
|
||||
ImportFan
|
||||
},
|
||||
methods: {
|
||||
/** 查询导粉管理列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listImportFanRecord(this.queryParams).then(response => {
|
||||
if(response.rows != null && response.rows.length > 0){
|
||||
this.totalFanNum = response.rows[0].totalFanNum;
|
||||
response.rows.forEach((item,index) => {
|
||||
if(item.wxAccountList != null && item.wxAccountList.length > 0){
|
||||
item.wxAccountList.forEach((wx,i) => {
|
||||
wx.updateFlag = false;
|
||||
})
|
||||
}
|
||||
});
|
||||
}else{
|
||||
this.totalFanNum = 0;
|
||||
}
|
||||
this.importFanRecordList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
importFanDate: null,
|
||||
importFanChannel: null,
|
||||
importFanLive: null,
|
||||
createTime: null,
|
||||
createBy: null,
|
||||
updateTime: null,
|
||||
updateBy: null,
|
||||
delFlag: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加导粉管理";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getImportFanRecord(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改导粉管理";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateImportFanRecord(this.form).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
addImportFanRecord(this.form).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$confirm('是否确认删除导粉管理编号为"' + ids + '"的数据项?', "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(function() {
|
||||
return delImportFanRecord(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.msgSuccess("删除成功");
|
||||
}).catch(function() {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const queryParams = this.queryParams;
|
||||
this.$confirm('是否确认导出所有导粉管理数据项?', "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(function() {
|
||||
return exportImportFanRecord(queryParams);
|
||||
}).then(response => {
|
||||
this.download(response.msg);
|
||||
}).catch(function() {});
|
||||
},
|
||||
showDialog(data){
|
||||
if(this.queryParams.importFanDate == undefined || this.queryParams.importFanDate == null){
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '导粉日期不能为空',
|
||||
center: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(data == null){
|
||||
data = {};
|
||||
}
|
||||
data.importFanDate = this.queryParams.importFanDate;
|
||||
this.$refs.importFanRef.showDialog(data,()=>{
|
||||
this.getList();
|
||||
}, this.fanChanneloptions);
|
||||
},
|
||||
getTotalFanNum(row, column){
|
||||
let fanNum = 0;
|
||||
if(row.wxAccountList != null){
|
||||
row.wxAccountList.forEach((item,index) => {
|
||||
fanNum += item.importFanNum == null ? 0 : item.importFanNum;
|
||||
});
|
||||
}
|
||||
return fanNum;
|
||||
},
|
||||
removeWxAccount(id){
|
||||
removeFanWxAccount(id).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.msgSuccess("移除成功");
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
},
|
||||
saveWxAccountFanNum(row){
|
||||
let param = {
|
||||
id: row.id,
|
||||
importFanNum: row.importFanNum
|
||||
};
|
||||
saveWxAccountFanNum(param).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.msgSuccess("保存成功");
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -144,12 +144,12 @@
|
||||
<template slot-scope="scope">
|
||||
<el-popover
|
||||
placement="left"
|
||||
width="390"
|
||||
width="370"
|
||||
trigger="click">
|
||||
<el-table :data="scope.row.wxAccountList" style="width:370;height: 400px;overflow: auto;">
|
||||
<el-table-column width="100" property="nickName" label="销售"></el-table-column>
|
||||
<el-table-column width="120" property="wxAccount" label="微信号"></el-table-column>
|
||||
<el-table-column width="120" property="saleGroupName" label="销售组别"></el-table-column>
|
||||
<el-table :data="scope.row.wxAccountList" style="width:360;height: 300px;overflow: auto;">
|
||||
<el-table-column width="80" property="saleName" label="销售"></el-table-column>
|
||||
<el-table-column width="180" property="wxAccount" label="微信号" align="center"></el-table-column>
|
||||
<el-table-column width="80" property="fanNum" label="导粉量" align="center"></el-table-column>
|
||||
</el-table>
|
||||
<el-button slot="reference">详情</el-button>
|
||||
</el-popover>
|
||||
|
Loading…
x
Reference in New Issue
Block a user