下载excel

master
yechenhao 6 years ago
parent 93636f8a7a
commit f6a22b78f5

@ -47,6 +47,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/img/**", "anon");
filterChainDefinitionMap.put("/js/**", "anon");
filterChainDefinitionMap.put("/realtime/**", "anon");
filterChainDefinitionMap.put("/store/emp/import", "anon");
filterChainDefinitionMap.put("/view/**", "anon");
filterChainDefinitionMap.put("/templates/**", "anon");
filterChainDefinitionMap.put("/login", "anon");

@ -3,6 +3,7 @@ package com.kiisoo.ic.store.controller;
import com.kiisoo.ic.common.BaseController;
import com.kiisoo.ic.store.service.StoreEmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@ -23,6 +24,7 @@ import java.util.Map;
@Slf4j
public class StoreEmployeeController extends BaseController {
@Autowired
private StoreEmployeeService storeEmployeeService;
/**

@ -0,0 +1,11 @@
package com.kiisoo.ic.tag.constant;
/**
* @Description:
* @Auther: yechenhao
* @Date: 2020/4/14 0002 21:14
* @Version: v1
*/
public class Constants {
}

@ -0,0 +1,93 @@
package com.kiisoo.ic.tag.controller;
import com.kiisoo.ic.common.BaseController;
import com.kiisoo.ic.tag.entity.TagDO;
import com.kiisoo.ic.tag.service.TagService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* @Description: controller
* @Auther: yechenhao
* @Date: 2020/4/14 0002 21:14
* @Version: v1
*/
@Controller
@RequestMapping("/tag")
@Slf4j
public class TagController extends BaseController {
@Autowired
private TagService tagService;
/**
*
* @param tagDO
* @return
* @throws Exception
*/
@RequestMapping(value = "add",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> addTag(@RequestBody TagDO tagDO){
try {
Boolean hasAdd = tagService.addTag(tagDO);
return data(hasAdd);
}catch (Exception e){
log.error("添加标签失败",e);
return fail();
}
}
/**
*
* @param tagDO
* @return
* @throws Exception
*/
@RequestMapping(value = "update",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> updateTag(@RequestBody TagDO tagDO){
try {
Boolean hasUpdate = tagService.updateTag(tagDO);
return data(hasUpdate);
}catch (Exception e){
log.error("修改标签失败",e);
return fail();
}
}
/**
*
* @param tagId id
* @return
* @throws Exception
*/
@RequestMapping(value = "delete",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> deleteTag(@RequestParam("tagId") Long tagId){
try {
Boolean hasDel = tagService.deleteTag(tagId);
return data(hasDel);
}catch (Exception e){
log.error("删除标签失败",e);
return fail();
}
}
// @RequestMapping(value = "sync",method = RequestMethod.GET)
// @ResponseBody
// public Map<String,Object> syncTag(){
// try {
// Boolean hasSync = tagService.syncTag();
// return data(hasSync);
// }catch (Exception e){
// log.error("添加标签失败",e);
// return fail();
// }
// }
}

@ -0,0 +1,26 @@
package com.kiisoo.ic.tag.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.List;
/**
* @Description:
* @Auther: yechenhao
* @Date: 2020/4/7 0002 10:06
* @Version: v1
*/
@Data
@TableName("privilage_tag")
public class TagDO {
/**
* idid
*/
private Long id;
/**
*
*/
private String name;
}

@ -0,0 +1,14 @@
package com.kiisoo.ic.tag.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kiisoo.ic.tag.entity.TagDO;
import org.springframework.stereotype.Repository;
@Repository
public interface TagDOMapper extends BaseMapper<TagDO> {
/**
* id
* @return
*/
Long selectMaxTagId();
}

@ -0,0 +1,83 @@
package com.kiisoo.ic.tag.service;
import com.kiisoo.ic.tag.entity.TagDO;
import com.kiisoo.ic.tag.mapper.TagDOMapper;
import com.kiisoo.ic.wx.service.QWMailListManageService;
import lombok.Synchronized;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: service
* @Auther: yechenhao
* @Date: 2020/4/7 0002 10:06
* @Version: v1
*/
@Service
public class TagService {
@Autowired
private QWMailListManageService qwMailListManageService;
@Autowired
private TagDOMapper tagDOMapper;
/**
*
* @param tagDO
* @return
* @throws Exception
*/
@Transactional(rollbackFor = Exception.class)
@Synchronized
public Boolean addTag(TagDO tagDO) throws Exception {
//数据库创建标签需要返回标签id
Long maxId = tagDOMapper.selectMaxTagId();
tagDO.setId(maxId+1);
int insert = tagDOMapper.insert(tagDO);
if (insert == 0){
throw new Exception("创建标签service失败");
}
//成功则添加用户到企业微信
qwMailListManageService.addTag(tagDO);
return true;
}
/**
*
* @param tagDO
* @return
* @throws Exception
*/
@Transactional(rollbackFor = Exception.class)
public Boolean updateTag(TagDO tagDO) throws Exception {
//数据库创建标签需要返回标签id
int update = tagDOMapper.updateById(tagDO);
if (update == 0){
throw new Exception("修改标签service失败");
}
//成功则添加用户到企业微信
qwMailListManageService.updateTag(tagDO);
return true;
}
/**
*
* @param tagId id
* @return
* @throws Exception
*/
@Transactional(rollbackFor = Exception.class)
public Boolean deleteTag(Long tagId) throws Exception {
//数据库创建标签需要返回标签id
int delete = tagDOMapper.deleteById(tagId);
if (delete == 0){
throw new Exception("删除标签service失败");
}
//todo 删除标签后操作员工
//成功则添加用户到企业微信
qwMailListManageService.deleteTag(tagId);
return true;
}
}

@ -1,18 +1,23 @@
package com.kiisoo.ic.wx.service;
import com.alibaba.fastjson.JSON;
import com.kiisoo.ic.config.WxCpConfiguration;
import com.kiisoo.ic.department.entity.DepartmentDO;
import com.kiisoo.ic.employee.entity.EmployeeDO;
import com.kiisoo.ic.tag.entity.TagDO;
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpDepartmentService;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.api.WxCpUserService;
import me.chanjar.weixin.cp.api.*;
import me.chanjar.weixin.cp.bean.WxCpDepart;
import me.chanjar.weixin.cp.bean.WxCpTag;
import me.chanjar.weixin.cp.bean.WxCpUser;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.kiisoo.ic.department.constant.Constants.MAIN_DEPARTMENT_ID;
@ -98,6 +103,33 @@ public class QWMailListManageService {
//todo 删除部门后操作员工
}
/**
*
*/
public void addTag(TagDO tagDO) throws WxErrorException {
wxCpService = WxCpConfiguration.getCpService(applicationid);
WxCpTagService tagService = wxCpService.getTagService();
tagService.create(tagDO.getName(),tagDO.getId().intValue());
}
/**
*
*/
public void updateTag(TagDO tagDO) throws WxErrorException {
wxCpService = WxCpConfiguration.getCpService(applicationid);
WxCpTagService tagService = wxCpService.getTagService();
tagService.update(tagDO.getId().toString(),tagDO.getName());
}
/**
*
*/
public void deleteTag(Long tagId) throws WxErrorException {
wxCpService = WxCpConfiguration.getCpService(applicationid);
WxCpTagService tagService = wxCpService.getTagService();
tagService.delete(tagId.toString());
}
/**
*
*/
@ -106,4 +138,92 @@ public class QWMailListManageService {
WxCpDepartmentService departmentService = wxCpService.getDepartmentService();
return departmentService.list(null);
}
public void sendWelcomeMsg(String welcomeCode, String content, File file) throws WxErrorException {
String mediaType = "";
wxCpService = WxCpConfiguration.getCpService(applicationid);
WxCpMediaService mediaService = wxCpService.getMediaService();
WxMediaUploadResult upload = mediaService.upload(mediaType,file);
String url = wxCpService.getWxCpConfigStorage().getApiUrl("/cgi-bin/externalcontact/send_welcome_msg");
String accessToken = wxCpService.getWxCpConfigStorage().getAccessToken();
Map<String, Object> map = new HashMap<>();
map.put("access_token", accessToken);
Map<String, Object> text = new HashMap<>();
map.put("content", content);
Map<String, Object> image = new HashMap<>();
map.put("media_id", upload.getMediaId());
Map<String, Object> link = new HashMap<>();
map.put("title", "");
map.put("picurl", "");
map.put("desc", "");
map.put("url", "");
Map<String, Object> miniprogram = new HashMap<>();
map.put("title", "");
map.put("pic_media_id", "");
map.put("appid", "");
map.put("page", "");
map.put("text",text);
map.put("image",image);
map.put("link",link);
map.put("miniprogram",miniprogram);
String result = wxCpService.post(url, JSON.toJSONString(map));
//todo判断返回码
}
public void sendExternalContactMsg(List<String> cpUserIds, String sender,String content, File file) throws WxErrorException {
String mediaType = "";
wxCpService = WxCpConfiguration.getCpService(applicationid);
WxCpMediaService mediaService = wxCpService.getMediaService();
WxMediaUploadResult upload = mediaService.upload(mediaType,file);
String url = wxCpService.getWxCpConfigStorage().getApiUrl("/cgi-bin/externalcontact/send_welcome_msg");
String accessToken = wxCpService.getWxCpConfigStorage().getAccessToken();
Map<String, Object> map = new HashMap<>();
map.put("access_token", accessToken);
map.put("chat_type", "single");
map.put("external_userid", cpUserIds);
map.put("sender", sender);
Map<String, Object> text = new HashMap<>();
map.put("content", content);
Map<String, Object> image = new HashMap<>();
map.put("media_id", upload.getMediaId());
Map<String, Object> link = new HashMap<>();
map.put("title", "");
map.put("picurl", "");
map.put("desc", "");
map.put("url", "");
Map<String, Object> miniprogram = new HashMap<>();
map.put("title", "");
map.put("pic_media_id", "");
map.put("appid", "");
map.put("page", "");
map.put("text",text);
map.put("image",image);
map.put("link",link);
map.put("miniprogram",miniprogram);
String result = wxCpService.post(url, JSON.toJSONString(map));
//todo判断返回码
}
}

@ -16,6 +16,7 @@ import com.kiisoo.ic.wx.entity.FollowUserDTO;
import com.kiisoo.ic.wx.entity.FollowUserTag;
import com.sun.org.apache.regexp.internal.RE;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
@ -50,6 +51,9 @@ public class WxResponseService {
@Autowired
private CustomerEnterpriseService customerEnterpriseService;
@Autowired
private QWMailListManageService qwMailListManageService;
/**
* (使)
*
@ -271,7 +275,7 @@ public class WxResponseService {
* @return
* @throws Exception
*/
public String customerParse(String sVerifyMsgSig, String sVerifyTimeStamp, String sVerifyNonce, String data) throws AesException, ParserConfigurationException, IOException, SAXException {
public String customerParse(String sVerifyMsgSig, String sVerifyTimeStamp, String sVerifyNonce, String data) throws AesException, ParserConfigurationException, IOException, SAXException, WxErrorException {
WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(WeixinApi.CUSTOMER_TOKEN, WeixinApi.CUSTOMER_ENCODING_AES_KEY, WeixinApi.CORPID);
String sMsg = wxcpt.DecryptMsg(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, data);
log.info(sMsg);
@ -310,6 +314,10 @@ public class WxResponseService {
//根据解析的xml结果执行业务操作并取得返回内容
String content = "";
NodeList welcomeCodeNode;
String welcomeCode;
switch (changeType) {
case "edit_external_contact":
@ -340,6 +348,12 @@ public class WxResponseService {
log.info(res);
//添加客户并添加店铺企业微信信息
addExternalContact(res);
welcomeCodeNode = root.getElementsByTagName("WelcomeCode");
welcomeCode = welcomeCodeNode.item(0).getTextContent();
sendWelcomeMsg(welcomeCode);
break;
case "add_half_external_contact":
// NodeList stateNode2 = root.getElementsByTagName("State");
@ -359,8 +373,8 @@ public class WxResponseService {
log.info("del_follow_user 配置了客户联系功能的成员被外部联系人删除时,回调该事件");
break;
default:
NodeList welcomeCodeNode = root.getElementsByTagName("WelcomeCode");
String welcomeCode = welcomeCodeNode.item(0).getTextContent();
welcomeCodeNode = root.getElementsByTagName("WelcomeCode");
welcomeCode = welcomeCodeNode.item(0).getTextContent();
log.info("change_external_chat 客户群被修改后(群名变更,群成员增加或移除),回调该事件。收到该事件后,企业需要再调用获取客户群详情接口,以获取最新的群详情。");
break;
}
@ -381,6 +395,10 @@ public class WxResponseService {
}
}
private void sendWelcomeMsg(String welcomeCode) throws WxErrorException {
// qwMailListManageService.sendWelcomeMsg(welcomeCode);
}
/**
*
* @param

Loading…
Cancel
Save