Merge remote-tracking branch 'origin/feature/20200402_init_dev' into feature/20200402_init_dev

master
wangweijia 6 years ago
commit 3a80623e09

@ -21,7 +21,8 @@ import {
DatePicker,
CheckboxGroup,
Checkbox,
RadioGroup
RadioGroup,
Switch
} from "view-design";
import 'view-design/dist/styles/iview.css';
@ -49,3 +50,4 @@ Vue.component('DatePicker', DatePicker);
Vue.component('CheckboxGroup', CheckboxGroup);
Vue.component('Checkbox', Checkbox);
Vue.component('RadioGroup', RadioGroup);
Vue.component('i-switch', Switch);

@ -15,7 +15,7 @@
<p class="region">时间</p>
</i-col>
<i-col span="4" style="padding-left: 10px;">
<DatePicker type="daterange" placement="bottom-end" placeholder="Select date" style="width: 200px"
<DatePicker type="daterange" placement="bottom-end" placeholder="请选择日期" style="width: 200px"
@on-change="onChangeDateLister"></DatePicker>
</i-col>
<i-col span="4">

@ -33,7 +33,7 @@
<p class="region">时间</p>
</i-col>
<i-col span="4" style="padding-left: 10px;">
<DatePicker type="daterange" placement="bottom-end" placeholder="Select date" style="width: 200px"
<DatePicker type="daterange" placement="bottom-end" placeholder="请选择日期" style="width: 200px"
@on-change="onChangeDateLister"></DatePicker>
</i-col>
<i-col span="2">

@ -23,7 +23,7 @@
<p class="region">时间</p>
</i-col>
<i-col span="4" style="padding-left: 10px;">
<DatePicker type="daterange" placement="bottom-end" placeholder="Select date" style="width: 200px"
<DatePicker type="daterange" placement="bottom-end" placeholder="请选择日期" style="width: 200px"
@on-change="onChangeDateLister"></DatePicker>
</i-col>
<i-col span="4">

@ -1,15 +1,198 @@
<template>
<div>
<p>IncreaseStaffManager</p>
<Row style="margin-top: 20px;width: 100%;background-color: #F7F8FA;">
<i-col span="24" style="text-align: left;padding-left: 10px;">
<Row class="row-style">
<i-col span="1" style="text-align: right;">
<span class="region">区域选择</span>
</i-col>
<i-col span="4" style="padding-left: 10px;">
<Select v-model="selectedRegion" filterable style="width: 200px;">
<Option v-for="item in regionList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</i-col>
<i-col span="1" style="text-align: right;">
<span class="region">店铺选择</span>
</i-col>
<i-col span="4" style="padding-left: 10px;">
<Select v-model="selectedStore" filterable style="width: 200px;">
<Option v-for="item in storeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</i-col>
<i-col span="2">
<Button type="primary">查询</Button>
</i-col>
<i-col span="12" style="text-align: right;padding-right: 20px;">
<Button type="primary" style="margin-right: 10px;">批量下载</Button>
<Button type="primary" style="margin-right: 10px;">批量添加</Button>
<Button type="primary">添加推广人员</Button>
</i-col>
</Row>
</i-col>
</Row>
<Table :columns="columns1" :data="data1" style="margin-top: 20px;">
<template slot-scope="{ row, index }" slot="qrCodeAction">
<Button ghost type="primary" size="small" style="margin-right: 5px" @click="show(index)"></Button>
<Button ghost type="primary" size="small" @click="download(index)"></Button>
</template>
<template slot-scope="{ row, index }" slot="state">
<i-switch size="large" :value="row.qrCodeState" @on-change="onSwitchChangeLister(row, index)">
<span slot="open">开启</span>
<span slot="close">关闭</span>
</i-switch>
</template>
<template slot-scope="{ row, index }" slot="action">
<Button ghost type="primary" size="small" style="margin-right: 5px" @click="open(index)"></Button>
<Button ghost type="error" size="small" @click="remove(index)"></Button>
</template>
</Table>
</div>
</template>
<script>
export default {
name: "IncreaseStaffManager"
name: "IncreaseStaffManager",
data () {
return {
selectedRegion: null,
regionList: [],
selectedStore: null,
storeList: [],
columns1: [
{
title: '序号',
key: 'id',
width: 100
},
{
title: '姓名',
key: 'name',
width: 100
},
{
title: '员工ID',
key: 'code',
width: 100
},
{
title: '手机号码',
key: 'phone',
width: 160
},
{
title: '店铺',
key: 'storeName',
width: 100
},
{
title: '角色',
key: 'role',
width: 100
},
{
title: '客户数',
key: 'customerNum',
width: 100
},
{
title: '推广码',
slot: 'qrCodeAction',
width: 150
},
{
title: '推广码',
key: 'qrCodeState',
width: 150,
slot: 'state'
},
{
title: '操作',
slot: 'action',
}
],
data1: [
{
id: 1,
name: '王老吉',
code: 'D1',
phone: '13112345678',
storeName: '店铺1',
role: 1,
customerNum: 999,
qrCodeState: true
},
{
id: 2,
name: '王老吉2',
code: 'D2',
phone: '13112345678',
storeName: '店铺2',
role: 2,
customerNum: 999,
qrCodeState: true
},
{
id: 3,
name: '王老吉3',
code: 'D3',
phone: '13112345678',
storeName: '店铺3',
role: 3,
customerNum: 999,
qrCodeState: false
},
{
id: 4,
name: '王老吉4',
code: 'D4',
phone: '13112345678',
storeName: '店铺4',
role: 3,
customerNum: 999,
qrCodeState: false
}
]
}
},
methods: {
//
onChangeDateLister: function () {
},
//
show: function () {
},
//
download: function () {
},
//
open: function () {
},
//
remove: function () {
},
// switch
onSwitchChangeLister: function () {
}
}
}
</script>
<style scoped>
.region {
font-size: 14px;
line-height: 32px;
}
.row-style {
padding-top: 20px;
padding-bottom: 20px;
}
</style>

@ -1,15 +1,150 @@
<template>
<div>
<p>IncreaseStoreManager</p>
<Row style="margin-top: 20px;width: 100%;background-color: #F7F8FA;">
<i-col span="24" style="text-align: left;padding-left: 10px;">
<Row class="row-style">
<i-col span="1" style="text-align: right;">
<span class="region">区域选择</span>
</i-col>
<i-col span="4" style="padding-left: 10px;">
<Select v-model="selectedRegion" filterable style="width: 200px;">
<Option v-for="item in regionList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</i-col>
<i-col span="1" style="text-align: right;">
<span class="region">店铺选择</span>
</i-col>
<i-col span="4" style="padding-left: 10px;">
<Select v-model="selectedStore" filterable style="width: 200px;">
<Option v-for="item in storeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</i-col>
<i-col span="2">
<Button type="primary">查询</Button>
</i-col>
<i-col span="12" style="text-align: right;padding-right: 20px;">
<Button type="primary" style="margin-right: 10px;">批量下载</Button>
<Button type="primary" style="margin-right: 10px;">批量开通</Button>
</i-col>
</Row>
</i-col>
</Row>
<Table :columns="columns1" :data="data1" style="margin-top: 20px;">
<template slot-scope="{ row, index }" slot="qrCodeAction">
<Button ghost type="primary" size="small" style="margin-right: 5px" @click="show(index)"></Button>
<Button ghost type="primary" size="small" @click="download(index)"></Button>
</template>
<template slot-scope="{ row, index }" slot="action">
<Button ghost type="primary" size="small" style="margin-right: 5px" @click="open(index)"></Button>
<Button ghost type="error" size="small" @click="remove(index)"></Button>
</template>
</Table>
</div>
</template>
<script>
export default {
name: "IncreaseStoreManager"
name: "IncreaseStoreManager",
data () {
return {
selectedRegion: null,
regionList: [],
selectedStore: null,
storeList: [],
columns1: [
{
title: '序号',
key: 'id',
width: 100
},
{
title: '门店名称',
key: 'storeName'
},
{
title: '门店企业号',
key: 'storeWx'
},
{
title: '员工数',
key: 'staffNum',
},
{
title: '客户数',
key: 'customerNum',
width: 100
},
{
title: '推广码',
slot: 'qrCodeAction',
width: 150
},
{
title: '操作',
slot: 'action',
}
],
data1: [
{
id: 1,
storeName: '店铺1',
storeWx: 'D1',
staffNum: 10,
customerNum: 999
},
{
id: 2,
storeName: '店铺2',
storeWx: 'D2',
staffNum: 10,
customerNum: 999
},
{
id: 3,
storeName: '店铺3',
storeWx: 'D3',
staffNum: 10,
customerNum: 999
},
{
id: 4,
storeName: '店铺4',
storeWx: 'D4',
staffNum: 10,
customerNum: 999
}
]
}
},
methods: {
onChangeDateLister: function () {
},
show: function () {
},
download: function () {
},
open: function () {
},
remove: function () {
}
}
}
</script>
<style scoped>
.region {
font-size: 14px;
line-height: 32px;
}
.row-style {
padding-top: 20px;
padding-bottom: 20px;
}
</style>

@ -11,6 +11,9 @@ import IncreaseData from '@/pages/shop/IncreaseData';
import IncreaseDataRegion from '@/pages/shop/IncreaseDataRegion';
import IncreaseDataStaff from '@/pages/shop/IncreaseDataStaff';
import IncreaseDataStore from '@/pages/shop/IncreaseDataStore';
import IncreaseStaffManager from '@/pages/shop/IncreaseStaffManager';
import IncreaseStoreManager from '@/pages/shop/IncreaseStoreManager';
Vue.use(Router);
const router = new Router({
@ -58,13 +61,13 @@ const router = new Router({
},
{
path: '/shop/increase/manager/store',
name: 'IncreaseDataRegion',
component: IncreaseDataRegion
name: 'IncreaseStoreManager',
component: IncreaseStoreManager
},
{
path: '/shop/increase/manager/staff',
name: 'IncreaseDataStore',
component: IncreaseDataStore
name: 'IncreaseStaffManager',
component: IncreaseStaffManager
}
]
},

@ -0,0 +1,22 @@
package com.kiisoo.ic.department.constant;
/**
* @Description:
* @Auther: yechenhao
* @Date: 2020/4/8 0002 21:14
* @Version: v1
*/
public class Constants {
/**
* id
*/
public static Long MAIN_DEPARTMENT_ID = 1L;
/**
*
*/
public static int LEVEL_ONE = 1;
/**
*
*/
public static int LEVEL_TWO = 2;
}

@ -1,7 +1,14 @@
package com.kiisoo.ic.department.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.List;
/**
* @Description:
* @Auther: yechenhao
@ -9,6 +16,7 @@ import lombok.Data;
* @Version: v1
*/
@Data
@TableName("privilage_department")
public class DepartmentDO {
/**
* idid
@ -22,8 +30,19 @@ public class DepartmentDO {
* id32
*/
private Long parentId;
/**
*
*/
private Integer level;
/**
* order[0, 2^32)
*/
private Long order;
@JSONField(name = "order_num")
private Long orderNum;
/**
*
*/
@TableField(exist = false)
private List<DepartmentDO> departments;
}

@ -11,8 +11,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import static com.kiisoo.ic.department.constant.Constants.*;
/**
* @Description: service
* @Auther: yechenhao
@ -42,14 +45,126 @@ public class DepartmentService {
public Boolean syncDepartment() throws WxErrorException {
//获取企业微信部门架构
List<WxCpDepart> wxCpDeparts = qwMailListManageService.syncDepartment();
//分组
List<DepartmentDO> departmentDOS = new ArrayList<>();
groupByDepartments(wxCpDeparts,departmentDOS);
recursionInsertDepartment(departmentDOS);
return true;
}
/**
*
* @param wxCpDeparts
* @param departmentDOS
* @return
*/
private void groupByDepartments(List<WxCpDepart> wxCpDeparts,List<DepartmentDO> departmentDOS){
List<WxCpDepart> recursionList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(wxCpDeparts)){
wxCpDeparts.forEach(wxDept -> {
Long departmentId = wxDept.getId();
Long parentId = wxDept.getParentId();
//如果部门id为1为首部门直接加入数组
if (MAIN_DEPARTMENT_ID.equals(departmentId)){
DepartmentDO departmentDO = new DepartmentDO();
BeanUtils.copyProperties(wxDept,departmentDO);
departmentDO.setOrderNum(wxDept.getOrder());
departmentDO.setLevel(LEVEL_ONE);
departmentDOS.add(departmentDO);
}else{
//部门id不为1则寻找部门数组中是否有其夫部门
Boolean hasParents = false;
if (CollectionUtils.isNotEmpty(departmentDOS)){
for(DepartmentDO departmentDO:departmentDOS) {
Long oneId = departmentDO.getId();
//判断该部门是否为夫部门
if (parentId.equals(oneId)){
List<DepartmentDO> departments = departmentDO.getDepartments();
if (CollectionUtils.isEmpty(departments)){
departments = new ArrayList<>();
}
DepartmentDO de = new DepartmentDO();
BeanUtils.copyProperties(wxDept,de);
de.setOrderNum(wxDept.getOrder());
de.setLevel(LEVEL_TWO);
departments.add(de);
departmentDO.setDepartments(departments);
hasParents = true;
break;
}else{
//不是副部门则递归判断该部门的子部门时候为父部门
hasParents = recursionLevel(LEVEL_TWO,hasParents,departmentDO,wxDept);
}
}
if(!hasParents){
recursionList.add(wxDept);
}
}else {
recursionList.add(wxDept);
}
}
});
groupByDepartments(recursionList,departmentDOS);
}
}
/**
*
* @param level
* @param hasParents
* @param departmentDO
* @param wxDept
*/
private Boolean recursionLevel(int level,Boolean hasParents,DepartmentDO departmentDO,WxCpDepart wxDept){
int nowLevel = ++level;
Long parentId = wxDept.getParentId();
List<DepartmentDO> departments = departmentDO.getDepartments();
//寻找部门数组中是否有其夫部门
if (CollectionUtils.isNotEmpty(departments)){
for(DepartmentDO dep:departments) {
Long oneId = dep.getId();
//判断该部门是否为夫部门
if (parentId.equals(oneId)){
List<DepartmentDO> deps = dep.getDepartments();
if (CollectionUtils.isEmpty(deps)){
deps = new ArrayList<>();
}
DepartmentDO de = new DepartmentDO();
BeanUtils.copyProperties(wxDept,de);
de.setOrderNum(wxDept.getOrder());
de.setLevel(nowLevel);
deps.add(de);
dep.setDepartments(deps);
hasParents = true;
}else{
//不是副部门则递归判断该部门的子部门时候为父部门
hasParents = recursionLevel(nowLevel,hasParents,dep,wxDept);
}
}
}
return hasParents;
}
/**
*
* @param departmentDO
*/
private void recursionInsertDepartment(List<DepartmentDO> departmentDO){
if (CollectionUtils.isNotEmpty(departmentDO)){
departmentDO.forEach(department -> {
DepartmentDO dep = departmentDOMapper.selectById(department.getId());
if (dep == null){
departmentDOMapper.insert(department);
}else{
departmentDOMapper.updateById(department);
}
List<DepartmentDO> departments = department.getDepartments();
if (CollectionUtils.isNotEmpty(departments)){
recursionInsertDepartment(departments);
}
});
}
// departmentDOMapper.insert(departmentDO);
return true;
}
}

@ -1,16 +1,16 @@
package com.kiisoo.ic.employee.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kiisoo.ic.employee.entity.PoiStoreStaffDO;
import org.springframework.stereotype.Repository;
/**
* @Description mapper
* @Author yinliujing
* @Version V1.0.0
* @Date 2020/4/7
*/
@Repository
public interface PoiStoreStaffDOMapper extends BaseMapper<PoiStoreStaffDO> {
}
//package com.kiisoo.ic.employee.mapper;
//
//import com.baomidou.mybatisplus.core.mapper.BaseMapper;
//import com.kiisoo.ic.employee.entity.PoiStoreStaffDO;
//import org.springframework.stereotype.Repository;
//
///**
// * @Description 店铺人员表mapper
// * @Author yinliujing
// * @Version V1.0.0
// * @Date 2020/4/7
// */
//@Repository
//public interface PoiStoreStaffDOMapper extends BaseMapper<PoiStoreStaffDO> {
//
//}

@ -1,86 +1,87 @@
package com.kiisoo.ic.employee.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.kiisoo.ic.config.WxCpConfiguration;
import com.kiisoo.ic.employee.entity.PoiStoreStaffDO;
import com.kiisoo.ic.employee.entity.QrCodeDO;
import com.kiisoo.ic.employee.entity.QrCodeVO;
import com.kiisoo.ic.employee.mapper.PoiStoreStaffDOMapper;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
/**
* @Description: 广
* @Auther: yinliujing
* @Date: 2020/4/7 0002 14:06
* @Version: v1
*/
@Service
public class QrCodeService {
WxCpService mainService = WxCpConfiguration.getCpService(1000037);
@Autowired
private PoiStoreStaffDOMapper poiStoreStaffDOMapper;
public QrCodeVO getQrCode(QrCodeDO qrCodeDO) throws Exception {
//获取token
String token = mainService.getAccessToken();
qrCodeDO.setAccess_token(token);
//获取configId
String configId = getConfigId(qrCodeDO);
//获取配置实体
QrCodeVO qrCodeVO = getContactWay(token, configId);
return qrCodeVO;
}
/**
*
*
* @param qrCodeDO
* @return
* @throws WxErrorException
*/
public String getConfigId(QrCodeDO qrCodeDO) throws WxErrorException {
String url = mainService.getWxCpConfigStorage().getApiUrl("/cgi-bin/externalcontact/add_contact_way");
String result = mainService.post(url, qrCodeDO.toJson());
JSONObject parseObject = JSON.parseObject(result);
String configId = parseObject.getString("config_id");
return configId;
}
/**
*
*
* @param token
* @param configId
* @return
* @throws WxErrorException
*/
public QrCodeVO getContactWay(String token, String configId) throws WxErrorException {
String url = mainService.getWxCpConfigStorage().getApiUrl("/cgi-bin/externalcontact/get_contact_way");
Map<String, Object> map = new HashMap<>();
map.put("config_id", configId);
map.put("access_token", token);
String result = mainService.post(url, JSON.toJSONString(map));
JSONObject parseObject = JSON.parseObject(result);
QrCodeVO qrCodeVO = JSONObject.parseObject(parseObject.getString("contact_way"), QrCodeVO.class);
return qrCodeVO;
}
/**
*
* @return
* @throws WxErrorException
*/
@Transactional(rollbackFor = Exception.class)
public int saveStoreStaff(PoiStoreStaffDO poiStoreStaffDO) throws Exception {
return poiStoreStaffDOMapper.insert(poiStoreStaffDO);
}
}
//package com.kiisoo.ic.employee.service;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.kiisoo.ic.config.WxCpConfiguration;
//import com.kiisoo.ic.employee.entity.PoiStoreStaffDO;
//import com.kiisoo.ic.employee.entity.QrCodeDO;
//import com.kiisoo.ic.employee.entity.QrCodeVO;
////import com.kiisoo.ic.employee.mapper.PoiStoreStaffDOMapper;
//import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
//import me.chanjar.weixin.common.error.WxErrorException;
//import me.chanjar.weixin.cp.api.WxCpService;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @Description: 推广码业务
// * @Auther: yinliujing
// * @Date: 2020/4/7 0002 14:06
// * @Version: v1
// */
//@Service
//public class QrCodeService {
// WxCpService mainService = WxCpConfiguration.getCpService(1000037);
// @Autowired
// private PoiStoreStaffDOMapper poiStoreStaffDOMapper;
//
// public QrCodeVO getQrCode(QrCodeDO qrCodeDO) throws Exception {
// //获取token
// String token = mainService.getAccessToken();
// qrCodeDO.setAccess_token(token);
// //获取configId
// String configId = getConfigId(qrCodeDO);
// //获取配置实体
// QrCodeVO qrCodeVO = getContactWay(token, configId);
// return qrCodeVO;
// }
//
// /**
// * 配置客户联系「联系我」方式
// *
// * @param qrCodeDO
// * @return
// * @throws WxErrorException
// */
// public String getConfigId(QrCodeDO qrCodeDO) throws WxErrorException {
// String url = mainService.getWxCpConfigStorage().getApiUrl("/cgi-bin/externalcontact/add_contact_way");
// String result = mainService.post(url, qrCodeDO.toJson());
// JSONObject parseObject = JSON.parseObject(result);
// String configId = parseObject.getString("config_id");
// return configId;
// }
//
// /**
// * 获取企业已配置的「联系我」方式
// *
// * @param token
// * @param configId
// * @return
// * @throws WxErrorException
// */
// public QrCodeVO getContactWay(String token, String configId) throws WxErrorException {
// String url = mainService.getWxCpConfigStorage().getApiUrl("/cgi-bin/externalcontact/get_contact_way");
// Map<String, Object> map = new HashMap<>();
// map.put("config_id", configId);
// map.put("access_token", token);
// String result = mainService.post(url, JSON.toJSONString(map));
// JSONObject parseObject = JSON.parseObject(result);
// QrCodeVO qrCodeVO = JSONObject.parseObject(parseObject.getString("contact_way"), QrCodeVO.class);
// return qrCodeVO;
// }
//
// /**
// * 添加店铺人员表
// * @return
// * @throws WxErrorException
// */
// @Transactional(rollbackFor = Exception.class)
// public int saveStoreStaff(PoiStoreStaffDO poiStoreStaffDO) throws Exception {
// return poiStoreStaffDOMapper.insert(poiStoreStaffDO);
// }
//}

@ -6,7 +6,7 @@ import com.kiisoo.ic.common.utils.SignUtils;
import com.kiisoo.ic.common.utils.WeixinApi;
import com.kiisoo.ic.employee.entity.QrCodeDO;
import com.kiisoo.ic.employee.entity.QrCodeVO;
import com.kiisoo.ic.employee.service.QrCodeService;
//import com.kiisoo.ic.employee.service.QrCodeService;
import com.kiisoo.ic.wx.entity.ContactWayDTO;
import com.kiisoo.ic.wx.service.WxAccessService;
import com.kiisoo.ic.wx.service.WxLoginService;
@ -55,8 +55,8 @@ public class WxAccessController extends BaseController {
@Autowired
private WxResponseService wxResponseService;
@Autowired
private QrCodeService qrCodeService;
// @Autowired
// private QrCodeService qrCodeService;
private String loginPageUrl = "http://localhost:8311/kiisoo-ic-ui";
private String baseUrl = "http://jdxdev.vipgz4.idcfengye.com/kiisoo-ic";
@ -318,9 +318,9 @@ public class WxAccessController extends BaseController {
// contactWayDTO.setState("D1");
contactWayDTO.setState("D2");
QrCodeVO res = qrCodeService.getQrCode(contactWayDTO);
System.out.println(res);
return res;
// QrCodeVO res = qrCodeService.getQrCode(contactWayDTO);
// System.out.println(res);
return null;
} catch (Exception e) {
//验证URL失败错误原因请查看异常
e.printStackTrace();

@ -55,7 +55,7 @@ public class QWMailListManageService {
*
*/
public List<WxCpDepart> syncDepartment() throws WxErrorException {
wxCpService = WxCpConfiguration.getCpService(applicationid);
wxCpService = WxCpConfiguration.getCpService(1);
WxCpDepartmentService departmentService = wxCpService.getDepartmentService();
return departmentService.list(null);
}

@ -8,7 +8,7 @@ mybatis:
spring:
datasource:
url: jdbc:mysql://192.168.0.215:3306/p2p?characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true
url: jdbc:mysql://192.168.0.215:3306/ic?characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true
username: p2p
password: p2p
driver-class-name: com.mysql.jdbc.Driver

Loading…
Cancel
Save