Commit 796cd7b2 by 徐高华

Merge branch 'master' into 'feature/社群'

# Conflicts:
#   haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/QywxSendServiceImpl.java
parents bc375ff4 3ad36424
......@@ -10,6 +10,17 @@ public class ContentMaterialDTO implements Serializable {
private int materialType;
private String imgUrl;
// 1群发 2朋友圈
private int mediaType ;
public int getMediaType() {
return mediaType;
}
public void setMediaType(int mediaType) {
this.mediaType = mediaType;
}
public String getImgUrl() {
return imgUrl;
......
......@@ -4,6 +4,7 @@ import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.BatchAddMaterialDTO;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.MaterialCategoryDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
......@@ -75,5 +76,7 @@ public interface MaterialApiService {
* @author: YongEn
*/
void batchInsertMaterial(BatchAddMaterialDTO dto);
public com.gic.api.base.commons.ServiceResponse<String> getMaterialId(String wxEnterpriseId, ContentMaterialDTO dto) ;
}
......@@ -92,6 +92,8 @@ public interface StaffApiService {
void wxFristAdd(String userJson, String wxEnterpriseId);
List<String> listBindStaffId(String storeId);
List<String> listBindClerkId(String storeId);
List<StaffClerkRelationDTO> listBindRelationUserId(String storeId);
......
package com.gic.haoban.manage.service.service;
import com.gic.api.base.commons.JSONResponse;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import java.util.List;
......@@ -51,5 +53,9 @@ public interface MaterialService {
void delmaterialByIds(List<String> ids);
public MaterialDTO getHasChangeMadieMaterialById(String materialId,int from) ;
public JSONResponse reUpdalodMetailJson(String materialId,int from) ;
public List<String> getImageMediaId(String wxEnterpriseId, List<ContentMaterialDTO> imageList, int mediaType) ;
}
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.service.impl;
import static org.slf4j.LoggerFactory.getLogger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
......@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
import com.gic.api.base.commons.JSONResponse;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.service.config.Config;
......@@ -27,6 +29,7 @@ import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.util.CommonUtil;
import com.gic.wechat.api.enums.QywxMediaTypeEnum;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import com.gic.weimob.common.Md5Util;
import com.github.pagehelper.Page;
@Service
......@@ -145,72 +148,114 @@ public class MaterialServiceImpl implements MaterialService {
}
private String reUpdalodMetail(String materialId,int from) {
MaterialDTO old = null ;
TabMaterialContent entity =null ;
if(from == 1) {
old = this.selectMaterialById(materialId);
}
if(from == 2) {
entity =this.materialContentMapper.selectById(materialId) ;
if(null != entity) {
old = EntityUtil.changeEntityByJSON(MaterialDTO.class, entity) ;
}
}
Integer type = old.getMaterialType();
if (type == null) {
return "";
}
String wxEnterpriseId = old.getWxEnterpriseId();
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
if (qwDTO == null) {
logger.info("qwDTO is null");
return "";
}
String url = "";
QywxMediaTypeEnum fileType = null;
if (type == 2) {
fileType = QywxMediaTypeEnum.IMAGE;
url = old.getImgUrl();
}
if (type == 4) {
fileType = QywxMediaTypeEnum.VIDEO;
url = old.getLink();
}
if (type == 5) {
fileType = QywxMediaTypeEnum.FILE;
url = old.getLink();
} else if (type == 6) {
fileType = QywxMediaTypeEnum.IMAGE;
url = old.getImgUrl();
}
if (fileType == null) {
logger.error("materialId无类型,materialId:{}", materialId);
return "";
}
String[] arr = url.split("/");
int count = arr.length;
JSONResponse jp = null ;
if(from==2 && entity.getMediaType()==2) {
jp = qywxSuiteApiService.uploadAttachment(qwDTO.getThirdCorpid(), config.getWxSuiteid(), CommonUtil.getFileByte(url), arr[count - 1], fileType.getCode());
}else {
jp = qywxSuiteApiService.uploadMedia(qwDTO.getThirdCorpid(), config.getWxSuiteid(), CommonUtil.getFileByte(url), arr[count - 1], fileType.getCode());
}
String mediaid = old.getMediaId();
if (jp.getErrorCode() == 0) {
if(from==1) {
old.setWxLastUploadTime(new Date());
old.setMediaId(jp.getResult().toString());
mediaid = old.getMediaId() ;
this.edit(old);
}
if(from==2) {
entity.setWxLastUploadTime(new Date());
entity.setMediaId(jp.getResult().toString());
mediaid = entity.getMediaId() ;
this.materialContentMapper.updateByPrimaryKey(entity) ;
JSONResponse jp = this.reUpdalodMetailJson(materialId, from) ;
if(null == jp) {
return "";
}
if (jp.getErrorCode() == 0) {
return jp.getResult().toString() ;
}
return "";
}
public JSONResponse reUpdalodMetailJson(String materialId,int from) {
JSONResponse jp = new JSONResponse() ;
MaterialDTO old = null ;
TabMaterialContent entity =null ;
if(from == 1) {
old = this.selectMaterialById(materialId);
}
if(from == 2) {
entity =this.materialContentMapper.selectById(materialId) ;
if(null != entity) {
old = EntityUtil.changeEntityByJSON(MaterialDTO.class, entity) ;
}
// 1群发 2朋友圈
from = entity.getMediaType() ;
}
Integer type = old.getMaterialType();
if (type == null) {
return jp;
}
String wxEnterpriseId = old.getWxEnterpriseId();
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
if (qwDTO == null) {
logger.info("qwDTO is null");
return jp;
}
String url = "";
QywxMediaTypeEnum fileType = null;
if (type == 2) {
fileType = QywxMediaTypeEnum.IMAGE;
url = old.getImgUrl();
}
if (type == 4) {
fileType = QywxMediaTypeEnum.VIDEO;
url = old.getLink();
}
if (type == 5) {
fileType = QywxMediaTypeEnum.FILE;
url = old.getLink();
} else if (type == 6) {
fileType = QywxMediaTypeEnum.IMAGE;
url = old.getImgUrl();
}
if (fileType == null) {
logger.error("materialId无类型,materialId:{}", materialId);
return jp;
}
if(from == 2) {
url = entity.getImgUrl() ;
}
String[] arr = url.split("/");
int count = arr.length;
if(from==2) {
// 朋友圈上传接口
if (type == 2) {
url+= "?imageView2/2/w/1440/h/1080" ;
}
jp = qywxSuiteApiService.uploadAttachment(qwDTO.getThirdCorpid(), config.getWxSuiteid(), CommonUtil.getFileByte(url), arr[count - 1], fileType.getCode());
}else {
// 群发上传
jp = qywxSuiteApiService.uploadMedia(qwDTO.getThirdCorpid(), config.getWxSuiteid(), CommonUtil.getFileByte(url), arr[count - 1], fileType.getCode());
}
if (jp.getErrorCode() == 0) {
if(from==1) {
old.setWxLastUploadTime(new Date());
old.setMediaId(jp.getResult().toString());
this.edit(old);
}
if(from==2) {
entity.setWxLastUploadTime(new Date());
entity.setMediaId(jp.getResult().toString());
this.materialContentMapper.updateByPrimaryKey(entity) ;
}
}
return jp;
}
public List<String> getImageMediaId(String wxEnterpriseId, List<ContentMaterialDTO> imageList, int mediaType) {
List<String> materialIdList = new ArrayList<>();
imageList.forEach(dto -> {
String imageUrl = dto.getImgUrl();
int type = dto.getMaterialType();
String md5 = Md5Util.MD5(imageUrl);
TabMaterialContent tab = this.materialContentMapper.selectByUrl(wxEnterpriseId, md5, mediaType);
if (null != tab) {
materialIdList.add(tab.getMaterialId());
} else {
String id = StringUtil.randomUUID();
tab = new TabMaterialContent();
tab.setMaterialId(id);
tab.setMaterialType(type);
tab.setImgUrl(imageUrl);
tab.setUrlMd5(md5);
tab.setMediaType(mediaType);
tab.setWxEnterpriseId(wxEnterpriseId);
this.materialContentMapper.insert(tab);
materialIdList.add(id);
}
}
return mediaid;
});
return materialIdList;
}
}
......@@ -15,16 +15,13 @@ import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.dao.mapper.TabMaterialContentMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabMaterialContent;
import com.gic.haoban.manage.service.service.MaterialService;
import com.gic.haoban.manage.service.service.QywxSendService;
import com.gic.haoban.manage.service.service.StaffService;
......@@ -42,7 +39,6 @@ import com.gic.wechat.api.dto.qywx.moment.VisibleRange;
import com.gic.wechat.api.enums.QywxMediaTypeEnum;
import com.gic.wechat.api.service.qywx.QywxExternalUserService;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import com.gic.weimob.common.Md5Util;
/**
*
......@@ -68,8 +64,6 @@ public class QywxSendServiceImpl implements QywxSendService {
@Autowired
private QywxSuiteApiService qywxSuiteApiService;
@Autowired
private TabMaterialContentMapper tabMaterialContentMapper;
@Autowired
private QywxExternalUserService qywxExternalUserService;
@Autowired
private TabHaobanStaffClerkRelationMapper tabHaobanStaffClerkRelationMapper;
......@@ -86,8 +80,8 @@ public class QywxSendServiceImpl implements QywxSendService {
@Override
public ServiceResponse<String> sendMessageShare(String wxEnterpriseId, String staffId, List<String> extendUserList,
List<ContentMaterialDTO> imageList, String message) {
List<String> materialIdList = this.getImageMediaId(wxEnterpriseId, imageList, 1);
return this.send(wxEnterpriseId, staffId, extendUserList, materialIdList, message, 2 , null);
List<String> materialIdList = this.materialService.getImageMediaId(wxEnterpriseId, imageList, 1);
return this.send(wxEnterpriseId, staffId, extendUserList, materialIdList, message, 2);
}
// 群发发送
......@@ -100,7 +94,9 @@ public class QywxSendServiceImpl implements QywxSendService {
}
// 群发请求参数
QywxExternalMessageDTO messageDTO = this.getMessage(from, message, materialIdList,chatType);
log.info("群发信息={}",JSON.toJSONString(messageDTO));
if (messageDTO.getAttachments().isEmpty() && StringUtils.isBlank(messageDTO.getContent())) {
log.info("群发素材不存在, 群发创建失败");
return ServiceResponse.failure("9999", "群发素材不存在, 群发创建失败");
}
messageDTO.setExternalUserid(extendUserList);
......@@ -113,7 +109,7 @@ public class QywxSendServiceImpl implements QywxSendService {
// 调接口执行创建群发
JSONResponse respon = qywxSuiteApiService.sendExternalMessage(qwDTO.getThirdCorpid(), config.getWxSuiteid(),
messageDTO);
log.info("群发消息={},返回={}", JSON.toJSONString(messageDTO), JSON.toJSONString(respon));
log.info("群发返回={}", JSON.toJSONString(respon));
Map<String, Object> returnMap = respon.getReturnMap();
String msgIdKey = "msgid";
String msgId = returnMap.get(msgIdKey) == null ? "" : returnMap.get(msgIdKey).toString();
......@@ -124,37 +120,12 @@ public class QywxSendServiceImpl implements QywxSendService {
return ServiceResponse.failure("9999", error);
}
private List<String> getImageMediaId(String wxEnterpriseId, List<ContentMaterialDTO> imageList, int mediaType) {
List<String> materialIdList = new ArrayList<>();
imageList.forEach(dto -> {
String imageUrl = dto.getImgUrl();
int type = dto.getMaterialType();
String md5 = Md5Util.MD5(imageUrl);
TabMaterialContent tab = this.tabMaterialContentMapper.selectByUrl(wxEnterpriseId, md5, mediaType);
if (null != tab) {
materialIdList.add(tab.getMaterialId());
} else {
String id = StringUtil.randomUUID();
tab = new TabMaterialContent();
tab.setMaterialId(id);
tab.setMaterialType(type);
tab.setImgUrl(imageUrl);
tab.setUrlMd5(md5);
tab.setMediaType(mediaType);
tab.setWxEnterpriseId(wxEnterpriseId);
this.tabMaterialContentMapper.insert(tab);
materialIdList.add(id);
}
});
return materialIdList;
}
// 分享朋友圈
@Override
public ServiceResponse<String> share(String wxEnterpriseId, List<String> clerkIdList, String message,
List<ContentMaterialDTO> imageList) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
List<String> materialIdList = this.getImageMediaId(wxEnterpriseId, imageList, 2);
List<String> materialIdList = this.materialService.getImageMediaId(wxEnterpriseId, imageList, 2);
QywxExternalMessageDTO dto = this.getMessage(2, message, materialIdList,null);
MomentTaskDTO moment = EntityUtil.changeEntity(MomentTaskDTO.class, dto);
Text text = new Text();
......
......@@ -25,12 +25,15 @@ import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.BatchAddMaterialDTO;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.MaterialCategoryDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.service.MaterialApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.TabMaterialContentMapper;
import com.gic.haoban.manage.service.entity.TabHaobanMaterial;
import com.gic.haoban.manage.service.entity.TabMaterialContent;
import com.gic.haoban.manage.service.entity.TabMiniprogramSetting;
import com.gic.haoban.manage.service.service.MaterialCategoryService;
import com.gic.haoban.manage.service.service.MaterialService;
......@@ -61,6 +64,8 @@ public class MaterialApiServiceImpl implements MaterialApiService {
@Autowired
private MiniprogramSettingService miniprogramSettingService;
@Autowired
private TabMaterialContentMapper materialContentMapper ;
private static Logger logger = LoggerFactory.getLogger(MaterialApiServiceImpl.class);
......@@ -444,4 +449,34 @@ public class MaterialApiServiceImpl implements MaterialApiService {
}
return null;
}
public com.gic.api.base.commons.ServiceResponse<String> getMaterialId(String wxEnterpriseId, ContentMaterialDTO dto) {
List<ContentMaterialDTO> imageList = Arrays.asList(dto) ;
List<String> materialIdList = this.materialService.getImageMediaId(wxEnterpriseId, imageList, dto.getMediaType());
if (CollectionUtils.isEmpty(materialIdList)) {
com.gic.api.base.commons.ServiceResponse.failure("9999", "素材记录不存") ;
}
String materialId = materialIdList.get(0) ;
TabMaterialContent entity = this.materialContentMapper.selectById(materialId) ;
if(null == entity) {
com.gic.api.base.commons.ServiceResponse.failure("9999", "素材记录不存") ;
}
Date lastUploadTime = entity.getWxLastUploadTime();
Date date = new Date();
Date compareDate = DateUtils.addDays(date, -3);
String madiaId= entity.getMediaId() ;
if (lastUploadTime != null && lastUploadTime.after(compareDate) && StringUtils.isNotBlank(madiaId)) {
return com.gic.api.base.commons.ServiceResponse.success(madiaId) ;
}
JSONResponse json = this.materialService.reUpdalodMetailJson(materialId,2) ;
if (json.getErrorCode() == 0) {
madiaId= json.getResult().toString() ;
return com.gic.api.base.commons.ServiceResponse.success(madiaId) ;
}else {
return com.gic.api.base.commons.ServiceResponse.failure("9999",json.getErrorMessage()) ;
}
}
}
......@@ -661,10 +661,10 @@ public class MessageApiServiceImpl implements MessageApiService {
}
messageDTO.setAppid(config.getAppid());
messageDTO.setUserIds(Arrays.asList(wxUserId));
messageDTO.setPage(NoticeMessageTypeEnum.OFFLINE_PRE.getPageUrl());
messageDTO.setPage(NoticeMessageTypeEnum.OFFLINE_PRE.getPageUrl()+NoticeMessageTypeEnum.OFFLINE_PRE.getPageType());
messageDTO.setTitle(NoticeMessageTypeEnum.OFFLINE_PRE.getName());
Map<String, String> map = new HashMap<>();
map.put("事件", "完成预约");
map.put("事件", message);
List<ItemDTO> items = getItemsList(map);
messageDTO.setItems(items);
qywxSuiteApiService.sendMessage(qwDTO.getThirdCorpid(), config.getWxSuiteid(), messageDTO);
......
......@@ -631,6 +631,15 @@ public class StaffApiServiceImpl implements StaffApiService {
@Override
public List<String> listBindStaffId(String storeId) {
return this.listBind(storeId, 1) ;
}
@Override
public List<String> listBindClerkId(String storeId) {
return this.listBind(storeId, 2) ;
}
private List<String> listBind(String storeId , int type) {
List<String> userIdList = new ArrayList<String>();
List<String> storeIds = new ArrayList<String>();
storeIds.add(storeId);
......@@ -639,15 +648,21 @@ public class StaffApiServiceImpl implements StaffApiService {
if (CollectionUtils.isEmpty(staffRelationList)) {
return Collections.EMPTY_LIST;
}
Map<String, StaffClerkRelationDTO> clerkIdMap = staffRelationList.stream().filter(s -> s.getClerkId() != null).collect(Collectors.toMap(StaffClerkRelationDTO::getClerkId, s -> s));
Set<String> keySet = clerkIdMap.keySet();
for (String clerkId : clerkList) {
if (keySet.contains(clerkId)) {
userIdList.add(clerkIdMap.get(clerkId).getStaffId());
if(type==1) {
Map<String, StaffClerkRelationDTO> clerkIdMap = staffRelationList.stream().filter(s -> s.getClerkId() != null).collect(Collectors.toMap(StaffClerkRelationDTO::getClerkId, s -> s));
Set<String> keySet = clerkIdMap.keySet();
for (String clerkId : clerkList) {
if (keySet.contains(clerkId)) {
userIdList.add(clerkIdMap.get(clerkId).getStaffId());
}
}
}
if(type==2) {
userIdList = staffRelationList.stream().filter(s -> s.getClerkId() != null).map(dto->dto.getClerkId()).collect(Collectors.toList());
}
return userIdList;
}
@Override
public List<StaffClerkRelationDTO> listBindRelationUserId(String storeId) {
......
......@@ -272,7 +272,8 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService {
List<TabHaobanWxEnterpriseRelated> list = this.wxEnterpriseRelatedMapper.listByWxenterpriseId(wxEnterpriseId);
if (CollectionUtils.isEmpty(list)) {
log.info("企微无关联gic商户,wxEnterpriseId={}",wxEnterpriseId);
return ServiceResponse.failure("1000", "无关联商户");
//return ServiceResponse.failure("1000", "无关联商户");
return ServiceResponse.success() ;
}
int count = list.size();
log.info("企微关联数={},{}", count, JSON.toJSONString(list));
......
......@@ -329,7 +329,7 @@
</if>
<if test="type==2">
and b.wx_open_user_id in
<foreach collection="wxOpenUserIds" item="id" index="index" open="(" close=")" separator=",">
<foreach collection="wxUserIds" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</if>
......
......@@ -159,14 +159,16 @@ public class StoreController extends WebBaseController {
}
List<String> storeIdList = list.stream().map(dto -> dto.getStoreId()).collect(Collectors.toList());
// 处理主门店
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId, storeIdList);
String mainStoreId = mainDTO == null ? "" : mainDTO.getStoreId();
if (null != mainStoreId) {
list.forEach(item -> {
if (item.getStoreId().equals(mainStoreId)) {
item.setMainStoreFlag(1);
}
});
if(StringUtils.isBlank(gicEnterpriseId)) {
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId, storeIdList);
String mainStoreId = mainDTO == null ? "" : mainDTO.getStoreId();
if (null != mainStoreId) {
list.forEach(item -> {
if (item.getStoreId().equals(mainStoreId)) {
item.setMainStoreFlag(1);
}
});
}
}
return resultResponse(HaoBanErrCode.ERR_1, list);
}
......
......@@ -11,6 +11,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -31,10 +32,11 @@ import com.gic.thirdparty.cloudfile.CloudFileUtil;
import com.gic.thirdparty.cloudfile.enums.CloudFileBusinessOptEnum;
import com.gic.thirdparty.cloudfile.enums.CloudFileTypeEnum;
import com.gic.thirdparty.cloudfile.pojo.CloudFileInfo;
import com.gic.thirdparty.cloudfile.pojo.ImageCloudFileInfo;
@RestController
public class UploadController extends WebBaseController {
private static org.apache.logging.log4j.Logger logger = LogManager.getLogger(UploadController.class);
@Autowired
private QQCloudPicService qqCloudPicService;
@Autowired
......@@ -98,10 +100,22 @@ public class UploadController extends WebBaseController {
CloudFileTypeEnum type = getType(fileType) ;
File file = File.createTempFile("tmp", null);
mf.transferTo(file);
CloudFileInfo uploadInfo = CloudFileUtil.uploadTempFile(file, mf.getOriginalFilename(), type, factoryCode , CloudFileBusinessOptEnum.COMMON, 7*24L) ;
if (uploadInfo != null) {
map.put("qcloudImageUrl", uploadInfo.getOrgFileUrl());
map.put("imageFiledCode", "imageFiledCode");
try {
String name = mf.getOriginalFilename() ;
if(name.contains(".")) {
name = name.substring(name.lastIndexOf(".")+1) ;
}
CloudFileInfo uploadInfo = CloudFileUtil.uploadTempFile(file, name, type, factoryCode , CloudFileBusinessOptEnum.COMMON, 7*24L) ;
if (uploadInfo != null) {
map.put("qcloudImageUrl", uploadInfo.getOrgFileUrl());
map.put("imageFiledCode", "imageFiledCode");
if(uploadInfo instanceof ImageCloudFileInfo) {
ImageCloudFileInfo info = (ImageCloudFileInfo) uploadInfo ;
map.put("compressFileUrl", info.getCompressFileUrl());
}
}
}catch(Exception e) {
return RestResponse.failure("9999", e.getMessage()) ;
}
picList.add(map);
file.deleteOnExit();
......
package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.ServiceResponse;
......@@ -12,17 +31,43 @@ import com.gic.dict.api.dto.DictDTO;
import com.gic.dict.api.service.ManagerDictService;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.AccountService;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.app.customer.dto.*;
import com.gic.haoban.app.customer.dto.ChildDTO;
import com.gic.haoban.app.customer.dto.CustomerDTO;
import com.gic.haoban.app.customer.dto.FilterListDTO;
import com.gic.haoban.app.customer.dto.MemberInfoListParamsDTO;
import com.gic.haoban.app.customer.dto.StaffOpenRelatedDTO;
import com.gic.haoban.app.customer.service.api.service.CustomerApiService;
import com.gic.haoban.app.customer.service.api.service.StaffMemberRelationApiService;
import com.gic.haoban.common.anno.HttpLimit;
import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.ClerkMainStoreRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalUserDTO;
import com.gic.haoban.manage.api.dto.MemberStoreDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.api.dto.MiniprogramSettingDTO;
import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.api.dto.StaffClerkInfoDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.StaffPrivacyUseLogDTO;
import com.gic.haoban.manage.api.dto.UserLoginLogDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseRelationDetailDTO;
import com.gic.haoban.manage.api.dto.YwWxEnterpriseDTO;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.GetUserByMemberCodeQo;
......@@ -37,21 +82,9 @@ import com.gic.member.api.service.MemberOpenCardBusinessService;
import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxCorpApiService;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
@RestController
public class WxEnterpriseInfoController extends WebBaseController {
......@@ -92,6 +125,8 @@ public class WxEnterpriseInfoController extends WebBaseController {
private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService;
@Autowired
private CustomerApiService customerApiService;
@Autowired
private AccountService accountService ;
/**
......@@ -612,5 +647,16 @@ public class WxEnterpriseInfoController extends WebBaseController {
memberOpenCardBusinessService.memberClerkProcessByQywxFriend(enterpriseId, memberId, unionid, relationKey);
return resultResponse(HaoBanErrCode.ERR_1);
}
@RequestMapping("check-storage-fee")
@ResponseBody
public RestResponse<Object> checkStorageFee(String enterpriseId , String url) {
String gicUrl = "1251519181.cos.ap-shanghai.myqcloud.com" ;
if(StringUtils.isNotBlank(url) && !url.contains(gicUrl)) {
return RestResponse.successResult(true) ;
}
boolean check = this.accountService.storageFeeCheck(enterpriseId) ;
return RestResponse.successResult(check) ;
}
}
......@@ -1589,14 +1589,16 @@ public class WxStaffController extends WebBaseController {
}
List<String> storeIdList = list.stream().map(dto -> dto.getStoreId()).collect(Collectors.toList());
// 处理主门店
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId, storeIdList);
String mainStoreId = mainDTO == null ? "" : mainDTO.getStoreId();
if (null != mainStoreId) {
list.forEach(item -> {
if (item.getStoreId().equals(mainStoreId)) {
item.setMainStoreFlag(1);
}
});
if(StringUtils.isBlank(gicEnterpriseId)) {
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId, storeIdList);
String mainStoreId = mainDTO == null ? "" : mainDTO.getStoreId();
if (null != mainStoreId) {
list.forEach(item -> {
if (item.getStoreId().equals(mainStoreId)) {
item.setMainStoreFlag(1);
}
});
}
}
return RestResponse.successResult(list);
}
......@@ -1677,14 +1679,14 @@ public class WxStaffController extends WebBaseController {
@RequestMapping("/list-clerk-store-page")
@RequestMapping("/search-clerk-store-page")
public RestResponse<Object> listClerkStorePage(String wxEnterpriseId , String enterpriseId,String clerkId, @RequestParam(defaultValue="20")int pageSize , @RequestParam(defaultValue="1")int currentPage , String storeSearchParams) {
// 如果有权限控制,进行管辖门店过0滤
List<String> authStoreIdList = this.staffApiService.getHaoBanStoreIdsRolesByClerkId(clerkId, wxEnterpriseId);
if (CollectionUtils.isEmpty(authStoreIdList)) {
return RestResponse.failure("-1", "无授权门店");
}
Page page = this.page(wxEnterpriseId, enterpriseId, clerkId, 20, 1, storeSearchParams, authStoreIdList) ;
Page page = this.page(wxEnterpriseId, enterpriseId, clerkId, pageSize, currentPage, storeSearchParams, authStoreIdList) ;
List<StoreDTO> storeList = (List<StoreDTO>) page.getResult();
List<StoreListVO> retList = this.toList(storeList) ;
Page<StoreListVO> retPage = new Page<>();
......
......@@ -8,6 +8,7 @@ import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.content.api.dto.column.ContentColumnListDTO;
import com.gic.content.api.dto.material.ContentMaterialFrontDTO;
import com.gic.content.api.dto.material.ContentMaterialShareInfoDTO;
import com.gic.content.api.enums.ColumnEnum;
import com.gic.content.api.qdto.material.ContentMaterialPageFrontQDTO;
import com.gic.content.api.qdto.material.ContentMaterialShareQDTO;
import com.gic.content.api.service.ContentColumnApiService;
......@@ -68,8 +69,16 @@ public class ContentMaterialController {
* @return
*/
@RequestMapping(path = "/column-list")
public RestResponse<List<ContentColumnInfoVO>> queryContentColumn(String enterpriseId){
ServiceResponse<List<ContentColumnListDTO>> serviceResponse = contentColumnApiService.listColumn(enterpriseId, 1);
public RestResponse<List<ContentColumnInfoVO>> queryContentColumn(String enterpriseId,String storeId,String wxEnterpriseId,String clerkId){
List<String> storeIdList = new ArrayList<>();
if (StringUtils.isBlank(storeId)){
// 区经 获取管辖的权限
List<String> storeIds = this.queryClerkStoreIds(clerkId, wxEnterpriseId);
storeIdList.addAll(storeIds);
}else {
storeIdList.add(storeId);
}
ServiceResponse<List<ContentColumnListDTO>> serviceResponse = contentColumnApiService.listColumnFront(enterpriseId, ColumnEnum.MATERIAL.value, storeIdList);
if (!serviceResponse.isSuccess() || CollectionUtils.isEmpty(serviceResponse.getResult())){
return RestResponse.successResult(Collections.emptyList());
}
......@@ -151,6 +160,8 @@ public class ContentMaterialController {
return contentMaterialInfoVO;
}).collect(Collectors.toList());
result.setResult(contentMaterialInfos);
result.setCurrentPage(contentMaterialQO.getPageNum());
result.setPageSize(contentMaterialQO.getPageSize());
return RestResponse.successResult(result);
}
......
......@@ -9,10 +9,11 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil;
......@@ -21,7 +22,9 @@ import com.gic.haoban.app.customer.dto.CustomerDTO;
import com.gic.haoban.app.customer.dto.MemberInfoListParamsDTO;
import com.gic.haoban.app.customer.service.api.service.DistributeApiService;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.service.MaterialApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.web.controller.WebBaseController;
......@@ -39,6 +42,8 @@ public class QwMessageController extends WebBaseController {
private ClerkService clerkService;
@Autowired
private StaffClerkRelationApiService staffClerkRelationApiService ;
@Autowired
private MaterialApiService materialApiService ;
/**
* 群发-分享 - 店员和店长
......@@ -150,5 +155,18 @@ public class QwMessageController extends WebBaseController {
}
return RestResponse.successResult();
}
// 1群发 2朋友圈
@RequestMapping("get-qw-materialid")
public RestResponse<Object> getMaterialId(String wxEnterpriseId,String imgUrl , int materialType , @RequestParam(defaultValue="2")int mediaType) {
ContentMaterialDTO dto = new ContentMaterialDTO();
dto.setImgUrl(imgUrl);
dto.setMediaType(mediaType);
dto.setMaterialType(materialType);
ServiceResponse<String> resp = this.materialApiService.getMaterialId(wxEnterpriseId, dto) ;
if(resp.isSuccess()) {
return RestResponse.successResult(resp.getResult()) ;
}
return RestResponse.failure("-1", resp.getMessage()) ;
}
}
package com.gic.haoban.manage.web.controller.offline;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.manage.web.qo.offline.PageOfflinePreQO;
import com.gic.haoban.manage.web.qo.offline.WriteOffOfflinePreQO;
import com.gic.haoban.manage.web.vo.offline.CountOfflinePreVO;
import com.gic.haoban.manage.web.vo.offline.OfflinePreInfoVO;
import com.gic.marketing.pro.api.dto.offline.CountOfflinePreDTO;
import com.gic.marketing.pro.api.dto.offline.OfflinePreInfoDTO;
import com.gic.marketing.pro.api.qdto.offline.PageOfflinePreQDTO;
import com.gic.marketing.pro.api.qdto.offline.WriteOffOfflinePreQDTO;
import com.gic.marketing.pro.api.service.offline.OfflinePreApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 好办小程序-线下预约
*/
@Controller
public class OfflinePreController {
@Autowired
private OfflinePreApiService offlinePreApiService;
/**
* 预约列表
* @param qo 参数
* @return 预约列表
*/
@RequestMapping("/page-offline-pre")
@ResponseBody
public RestResponse<Page<OfflinePreInfoVO>> pageOfflinePre(@RequestBody PageOfflinePreQO qo){
ServiceResponse<Page<OfflinePreInfoDTO>> offlinePreInfoDTO = offlinePreApiService.pageOfflinePre(JSONObject.parseObject(JSONObject.toJSONString(qo), PageOfflinePreQDTO.class));
return JSONObject.parseObject(JSONObject.toJSONString(offlinePreInfoDTO, SerializerFeature.WriteMapNullValue), RestResponse.class);
}
/**
* 获取预约详情
* @param offlinePreId 预约ID
* @param enterpriseId 企业ID
* @return 预约详情
*/
@RequestMapping("/get-offline-pre")
@ResponseBody
public RestResponse<OfflinePreInfoVO> getOfflinePre(Long offlinePreId, String enterpriseId){
ServiceResponse<OfflinePreInfoDTO> offlinePreInfo = offlinePreApiService.getOfflinePre(offlinePreId, enterpriseId);
return JSONObject.parseObject(JSONObject.toJSONString(offlinePreInfo, SerializerFeature.WriteMapNullValue), RestResponse.class);
}
/**
* 核销预约单
* @param qo 入参
* @return
*/
@RequestMapping("/write-off-offline-pre")
@ResponseBody
public RestResponse<Boolean> writeOffOfflinePre(@RequestBody WriteOffOfflinePreQO qo){
ServiceResponse<Boolean> writeOffOfflinePre = offlinePreApiService.writeOffOfflinePre(JSONObject.parseObject(JSONObject.toJSONString(qo), WriteOffOfflinePreQDTO.class));
return JSONObject.parseObject(JSONObject.toJSONString(writeOffOfflinePre, SerializerFeature.WriteMapNullValue), RestResponse.class);
}
/**
* 预约统计
* @param storeId 门店ID
* @param enterpriseId 企业ID
* @return 预约详情
*/
@RequestMapping("/count-offline-pre")
@ResponseBody
public RestResponse<CountOfflinePreVO> countOfflinePre(String storeId, String enterpriseId){
ServiceResponse<CountOfflinePreDTO> countOfflinePre = offlinePreApiService.countOfflinePre(storeId, enterpriseId);
return JSONObject.parseObject(JSONObject.toJSONString(countOfflinePre, SerializerFeature.WriteMapNullValue), RestResponse.class);
}
/**
* 校验是否核销
* @param offlinePreId 预约ID
* @param storeId 门店ID
* @return 预约详情
*/
@RequestMapping("/check-offline-pre-write-off")
@ResponseBody
public RestResponse<Void> checkOfflinePreWriteOff(Long offlinePreId, String storeId){
ServiceResponse<Void> countOfflinePre = offlinePreApiService.checkOfflinePreWriteOff(offlinePreId, storeId);
return JSONObject.parseObject(JSONObject.toJSONString(countOfflinePre, SerializerFeature.WriteMapNullValue), RestResponse.class);
}
}
......@@ -32,12 +32,6 @@ public class GlobalExceptionHandler extends WebBaseController {
/**
* 控制器运行异常
*
* @param response 响应
* @param ex 前女友
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:50
*/
@ResponseBody
@ExceptionHandler(RuntimeException.class)
......@@ -60,12 +54,6 @@ public class GlobalExceptionHandler extends WebBaseController {
/**
* 全局异常
*
* @param response 响应
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:54:25
*/
@ResponseBody
@ExceptionHandler(Exception.class)
......
package com.gic.haoban.manage.web.qo.offline;
import com.gic.commons.web.qo.PageQo;
import java.io.Serializable;
/**
* @description: 这里是描述文字
* @author: 巴弗
* @createDate: 2022/11/22 15:25
*/
public class PageOfflinePreQO extends PageQo implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 会员ID
*/
private String memberId;
/**
* 企业ID
*/
private String enterpriseId;
/**
* type 1:预约中 2:历史预约
*/
private Integer type;
/**
* 门店ID
*/
private String storeId;
/**
* 查询角色 1:会员 2:导购
*/
private Integer role;
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public Integer getRole() {
return role;
}
public void setRole(Integer role) {
this.role = role;
}
}
package com.gic.haoban.manage.web.qo.offline;
import java.io.Serializable;
/**
* @description: 这里是描述文字
* @author: 巴弗
* @createDate: 2022/11/22 16:13
*/
public class WriteOffOfflinePreQO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 活动预约ID
*/
private Long offlinePreId;
/**
* 核销上传图片,英文逗号隔开
*/
private String writeOffImgUrl;
/**
* 核销导购
*/
private String clerkId;
/**
* 核销兑换数量
*/
private Integer writeOffExchangeNum;
/**
* 门店ID
*/
private String storeId;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public Long getOfflinePreId() {
return offlinePreId;
}
public void setOfflinePreId(Long offlinePreId) {
this.offlinePreId = offlinePreId;
}
public String getWriteOffImgUrl() {
return writeOffImgUrl;
}
public void setWriteOffImgUrl(String writeOffImgUrl) {
this.writeOffImgUrl = writeOffImgUrl;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getWriteOffExchangeNum() {
return writeOffExchangeNum;
}
public void setWriteOffExchangeNum(Integer writeOffExchangeNum) {
this.writeOffExchangeNum = writeOffExchangeNum;
}
}
......@@ -93,6 +93,11 @@ public class ContentMaterialInfoVO implements Serializable {
*/
private List<SimpleGoodsInfoVO> contentGoodsList;
/**
* 视频时长
*/
private Integer duration;
public Long getContentMaterialId() {
return contentMaterialId;
......@@ -213,4 +218,12 @@ public class ContentMaterialInfoVO implements Serializable {
public void setMaterialThumbnailImageUrls(List<String> materialThumbnailImageUrls) {
this.materialThumbnailImageUrls = materialThumbnailImageUrls;
}
public Integer getDuration() {
return duration;
}
public void setDuration(Integer duration) {
this.duration = duration;
}
}
package com.gic.haoban.manage.web.vo.offline;
import java.io.Serializable;
/**
* @description: 这里是描述文字
* @author: 巴弗
* @createDate: 2022/12/1 15:41
*/
public class CountOfflinePreVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 今天
*/
private Integer today;
/**
* 近7天
*/
private Integer nearly7Days;
public Integer getToday() {
return today;
}
public void setToday(Integer today) {
this.today = today;
}
public Integer getNearly7Days() {
return nearly7Days;
}
public void setNearly7Days(Integer nearly7Days) {
this.nearly7Days = nearly7Days;
}
}
package com.gic.haoban.manage.web.vo.offline;
import com.gic.marketing.pro.api.dto.offline.RewardDTO;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @description: 预约详情页
* @author: 巴弗
* @createDate: 2022/11/22 15:13
*/
public class OfflinePreInfoVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 活动预约ID
*/
private String offlinePreId;
/**
* 活动名称
*/
private String name;
/**
* 可预约地址 1:门店 2:自定义地址
*/
private Integer preAddressFlag;
/**
* 当pre_address_flag 为门店时这里存store_widget_id;为自定义地址时这里存具体地址
*/
private String preAddress;
/**
* 状态 0:进行中;1: 已完成;2:已过期;3:已取消
*/
private Integer statusFlag;
/**
* 预约时间
*/
private Date preTime;
/**
* 门店ID
*/
private String storeId;
/**
* 门店名称
*/
private String storeName;
/**
* 预兑换数量
*/
private Integer preExchangeNum;
/**
* 预约上传图片,英文逗号隔开
*/
private String preImgUrl;
/**
* 预约核销方式 1:导购核销 2:扫码核销
*/
private Integer writeOffType;
/**
* 核销时间
*/
private Date writeOffTime;
/**
* 引导添加企微开关 0: 关闭 1:开启
*/
private Integer addEnterpriseWechatFlag;
/**
* 导购企微二维码
*/
private String clerkQrCodeUrl;
/**
* 核销链接
*/
private String writeOffUrl;
/**
* 取消时间
*/
private Date cancelTime;
/**
* 修改信息次数
*/
private Integer editNum;
/**
* 证书json
*/
private String certificateContent;
/**
* 奖励信息
*/
private List<RewardDTO> rewardList;
/**
* 会员ID
*/
private String memberId;
/**
* 预约类型1: 服务预约 2:物品回收
*/
private Integer preType;
/**
* 等级名称
*/
private String gradeName;
/**
* 会员名称
*/
private String memberName;
/**
* 会员头像
*/
private String thirdImg;
/**
* 核销导购
*/
private String clerkId;
/**
* 核销导购
*/
private String clerkName;
/**
* 核销上传图片,英文逗号隔开
*/
private String writeOffImgUrl;
/**
* 核销兑换数量
*/
private Integer writeOffExchangeNum;
public Integer getWriteOffExchangeNum() {
return writeOffExchangeNum;
}
public void setWriteOffExchangeNum(Integer writeOffExchangeNum) {
this.writeOffExchangeNum = writeOffExchangeNum;
}
public String getOfflinePreId() {
return offlinePreId;
}
public void setOfflinePreId(String offlinePreId) {
this.offlinePreId = offlinePreId;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Date getPreTime() {
return preTime;
}
public void setPreTime(Date preTime) {
this.preTime = preTime;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public Integer getPreExchangeNum() {
return preExchangeNum;
}
public void setPreExchangeNum(Integer preExchangeNum) {
this.preExchangeNum = preExchangeNum;
}
public String getPreImgUrl() {
return preImgUrl;
}
public void setPreImgUrl(String preImgUrl) {
this.preImgUrl = preImgUrl;
}
public Integer getWriteOffType() {
return writeOffType;
}
public void setWriteOffType(Integer writeOffType) {
this.writeOffType = writeOffType;
}
public String getClerkQrCodeUrl() {
return clerkQrCodeUrl;
}
public void setClerkQrCodeUrl(String clerkQrCodeUrl) {
this.clerkQrCodeUrl = clerkQrCodeUrl;
}
public String getWriteOffUrl() {
return writeOffUrl;
}
public void setWriteOffUrl(String writeOffUrl) {
this.writeOffUrl = writeOffUrl;
}
public Integer getAddEnterpriseWechatFlag() {
return addEnterpriseWechatFlag;
}
public void setAddEnterpriseWechatFlag(Integer addEnterpriseWechatFlag) {
this.addEnterpriseWechatFlag = addEnterpriseWechatFlag;
}
public Date getCancelTime() {
return cancelTime;
}
public void setCancelTime(Date cancelTime) {
this.cancelTime = cancelTime;
}
public Integer getEditNum() {
return editNum;
}
public void setEditNum(Integer editNum) {
this.editNum = editNum;
}
public String getCertificateContent() {
return certificateContent;
}
public void setCertificateContent(String certificateContent) {
this.certificateContent = certificateContent;
}
public List<RewardDTO> getRewardList() {
return rewardList;
}
public void setRewardList(List<RewardDTO> rewardList) {
this.rewardList = rewardList;
}
public Date getWriteOffTime() {
return writeOffTime;
}
public void setWriteOffTime(Date writeOffTime) {
this.writeOffTime = writeOffTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPreAddressFlag() {
return preAddressFlag;
}
public void setPreAddressFlag(Integer preAddressFlag) {
this.preAddressFlag = preAddressFlag;
}
public String getPreAddress() {
return preAddress;
}
public void setPreAddress(String preAddress) {
this.preAddress = preAddress;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public Integer getPreType() {
return preType;
}
public void setPreType(Integer preType) {
this.preType = preType;
}
public String getGradeName() {
return gradeName;
}
public void setGradeName(String gradeName) {
this.gradeName = gradeName;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getThirdImg() {
return thirdImg;
}
public void setThirdImg(String thirdImg) {
this.thirdImg = thirdImg;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getWriteOffImgUrl() {
return writeOffImgUrl;
}
public void setWriteOffImgUrl(String writeOffImgUrl) {
this.writeOffImgUrl = writeOffImgUrl;
}
}
......@@ -113,10 +113,16 @@
timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.role.HaobanRoleApiService" id="haobanRoleApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.role.HaobanMenuApiService" id="haobanMenuApiService"/>
<dubbo:reference interface="com.gic.marketing.pro.api.service.offline.OfflinePreApiService" id="offlinePreApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.enterprise.api.service.AccountService" id="accountService"/>
<dubbo:reference interface="com.gic.content.api.service.ContentColumnApiService" id="contentColumnApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.ContentMaterialApiService" id="contentMaterialApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.ContentMaterialShareApiService" id="contentMaterialShareApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference id="settingApiService" interface="com.gic.haoban.app.aggregation.api.service.SettingApiService" timeout="10000" retries="0" check="false"/>
</beans>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment