店铺对接企业微信

master
wangweijia 6 years ago
parent 5bf4716cb1
commit f3697f5bda

@ -0,0 +1,9 @@
package com.kiisoo.ic.employee.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
import org.springframework.stereotype.Repository;
@Repository
public interface PrivilageCpUserDOMapper extends BaseMapper<PrivilageCpUserDO> {
}

@ -1,6 +1,9 @@
package com.kiisoo.ic.employee.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kiisoo.ic.employee.entity.EmployeeDO;
import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper;
import com.kiisoo.ic.wx.service.QWMailListManageService;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.factory.annotation.Autowired;
@ -19,6 +22,9 @@ public class EmployeeService {
@Autowired
private QWMailListManageService qwMailListManageService;
@Autowired
private PrivilageCpUserDOMapper privilageCpUserDOMapper;
@Transactional(rollbackFor = Exception.class)
public Boolean addUser(EmployeeDO employee) throws WxErrorException {
//数据库创建用户
@ -30,4 +36,15 @@ public class EmployeeService {
return true;
}
/**
*
* @param phone
*/
public PrivilageCpUserDO getUserWX(String phone){
PrivilageCpUserDO privilageCpUserDO = new PrivilageCpUserDO();
privilageCpUserDO.setMobile(phone);
return privilageCpUserDOMapper.selectOne(new QueryWrapper<>(privilageCpUserDO));
}
}

@ -0,0 +1,21 @@
package com.kiisoo.ic.test;
import com.kiisoo.ic.app.IcApplication;
import com.kiisoo.ic.wx.service.AddWXService;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = IcApplication.class)
public class Test {
@Autowired
AddWXService addWXService;
@org.junit.Test
public void te(){
addWXService.addWX("a","b");
}
}

@ -1,15 +0,0 @@
package com.kiisoo.ic.wechat.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/wechat")
public class CreateWechatController {
@RequestMapping("/create")
public void createWechat(@RequestParam("code") String code){
System.out.println(code) ;
}
}

@ -0,0 +1,14 @@
package com.kiisoo.ic.wx.constants;
/***
*
*/
public class Constant {
/**增加企业微信返回状态码*/
public static String ADD_URL_RETURN_PARAM = "errcode";
/**增企业微信成功返回码*/
public static int ADD_URL_SUCC_CODE = 0;
}

@ -0,0 +1,44 @@
package com.kiisoo.ic.wx.controller;
import com.alibaba.fastjson.JSON;
import com.kiisoo.ic.common.BaseController;
import com.kiisoo.ic.wx.entity.CreateWXDO;
import com.kiisoo.ic.wx.service.AddWXService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping("/wechat")
public class CreateWechatController extends BaseController {
@RequestMapping("/create")
public void createWechat(@RequestParam("code") String code){
System.out.println(code) ;
}
@Autowired
private AddWXService addWXService;
/**
*
* @return /
*/
@RequestMapping(value = "/test",method = RequestMethod.POST)
@ResponseBody
public String loginAccount(@RequestBody CreateWXDO createWXDO){
Map<String, Object> m = new HashMap<>();
m.put("errcode",0);
return JSON.toJSONString(m);
}
// @Scheduled(cron = "59 05 17 * * ?")
public void a(){
addWXService.addWX("a","b");
}
}

@ -0,0 +1,82 @@
package com.kiisoo.ic.wx.entity;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
*
*/
@Data
public class CreateWXDO {
/**调用接口凭证。获取方法查看“获取access_token”*/
@JSONField(name = "access_token")
private String accessToken;
/**成员UserID。对应管理端的帐号企业内必须唯一。不区分大小写长度为1~64个字节。只能由数字、字母和“_-@.”四种字符组成,且第一个字符必须是数字或字母。*/
private String userid;
/**成员名称。长度为1~64个utf8字符*/
private String name;
/**成员别名。长度1~32个utf8字符*/
private String alias;
/**手机号码。企业内必须唯一mobile/email二者不能同时为空*/
private String mobile;
/**成员所属部门id列表,不超过20个*/
private long[] department;
/**0
* department[0, 2^32)*/
private int[] order;
/**职务信息。长度为0~128个字符*/
private String position;
/**1表示男性2表示女性*/
private int gender;
/**邮箱。长度6~64个字节且为有效的email格式。企业内必须唯一mobile/email二者不能同时为空*/
private String email;
/** 座机。32字节以内由纯数字或-‘号组成。*/
private String telephone;
/**department
* 10*/
@JSONField(name = "is_leader_in_dept")
private long[] isLeaderInIept;
/**成员头像的mediaid通过素材管理接口上传图片获得的mediaid*/
@JSONField(name = "avatar_mediaid")
private long avatarMediaid;
/**启用/禁用成员。1表示启用成员0表示禁用成员*/
private int enable;
/**WEB
* type=0type=1*/
private String extattr;
/**使
* 3true*/
@JSONField(name = "to_invite")
private boolean toInvite = true;
/**成员对外属性,字段详情见对外属性*/
@JSONField(name = "external_profile")
private String externalProfile;
/**对外职务如果设置了该值则以此作为对外展示的职务否则以position来展示。长度12个汉字内*/
@JSONField(name = "external_position")
private String externalPosition;
/**地址。长度最大128个字符*/
private String address;
/**主部门*/
@JSONField(name = "main_department")
private int mainDepartment;
}

@ -0,0 +1,48 @@
package com.kiisoo.ic.wx.service;
import com.alibaba.fastjson.JSON;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult;
import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
import com.kiisoo.ic.employee.service.EmployeeService;
import com.kiisoo.ic.wx.constants.Constant;
import com.kiisoo.ic.wx.utils.UrlUtil;
import com.kiisoo.ic.wx.entity.CreateWXDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
*
*/
@Service
public class AddWXService {
@Autowired
private EmployeeService employeeServicel;
String token = "a";
boolean ifHad = false;
String tock = "";
/**
*
*/
public void addWX(String phone, String name){
//查看此人是否已经创建过企业微信
PrivilageCpUserDO privilageCpUserDO = employeeServicel.getUserWX(phone);
//如果已经创建过
if(privilageCpUserDO == null){
return;
}
//创建企业微信基础数据
CreateWXDO createWXDO = new CreateWXDO();
createWXDO.setUserid(phone);
createWXDO.setName(name);
//未创建,则创建
HttpResult result = HttpClientUtil.httpPost(UrlUtil.getAddWXUrl(token), JSON.toJSONString(createWXDO), tock);
//是否添加微信成功
boolean ifAdd = UrlUtil.compHttpResult(result, Constant.ADD_URL_RETURN_PARAM, Constant.ADD_URL_SUCC_CODE);
//如果成功,则添加对应的表信息
// if(ifAdd){
//
// }
}
}

@ -0,0 +1,36 @@
package com.kiisoo.ic.wx.utils;
import com.alibaba.fastjson.JSONObject;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult;
/**
*
*/
public class UrlUtil {
/**增加企业微信路径*/
private static String ADD_WX_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/create";
/**
* url
* @param token
* @return
*/
public static String getAddWXUrl(String token){
return ADD_WX_URL+token;
}
/**
*
* @param httpResult
* @param resultParam
* @param compData
* @return
*/
public static boolean compHttpResult(HttpResult httpResult, String resultParam, int compData){
//http返回参数
String resultEntity = httpResult.getMessage();
int resultData = JSONObject.parseObject(resultEntity).getInteger(resultParam);
return resultData == compData;
}
}
Loading…
Cancel
Save