|
@@ -484,6 +484,75 @@ public class WeiXinCorpController {
|
|
|
ReportServiceImpl.corpwxJobCenter.put(jobId, result);
|
|
|
UserServiceImpl.corpwxJobCenter.put(jobId, result);
|
|
|
TaskServiceImpl.corpwxJobCenter.put(jobId, result);
|
|
|
+ } else if ("auto_activate".equals(infoType)) {
|
|
|
+ //被邀请的同事自动激活使用
|
|
|
+ //{"xml":{"Scene":1,"InfoType":"auto_activate",
|
|
|
+ // "AccountList":{"Type":1,"PreviousStatus":1,"UserId":"woy9TkCAAACuqbgmQBZxra6gy6Bv7mMg",
|
|
|
+ // "ExpireTime":1671465600,"ActiveCode":"LA10000001400000163774145"},
|
|
|
+ // "ServiceCorpId":"wwf11426cf618e1703",
|
|
|
+ // "AuthCorpId":"wpy9TkCAAA6ii2OYKAEj5rCEqjwEQSuA","TimeStamp":1668761791}}
|
|
|
+ String corpId = jsonObject.getString("AuthCorpId");
|
|
|
+ org.json.JSONObject authUserJson = jsonObject.getJSONObject("AccountList");
|
|
|
+ String authUserId = authUserJson.getString("UserId");
|
|
|
+ User oneUser = userMapper.selectOne(new QueryWrapper<User>().eq("corpwx_userid", authUserId));
|
|
|
+ if (oneUser == null) {
|
|
|
+ //生成该用户
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectById(corpId);
|
|
|
+ if (wxCorpInfo != null) {
|
|
|
+ Integer companyId = wxCorpInfo.getCompanyId();
|
|
|
+ SysRole defaultRole = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", companyId).eq("is_default", 1));
|
|
|
+
|
|
|
+ if (wxCorpInfo.getSaasSyncContact() == 1) {
|
|
|
+ //直接通过企业微信通讯录同步
|
|
|
+ JSONObject userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), authUserId);
|
|
|
+ System.out.println("userObj=="+userObj);
|
|
|
+ //成功获取到通讯录的个人详情
|
|
|
+ Long id = SnowFlake.nextId();
|
|
|
+ //通过getUserInfo接口获取到的json key是小写的
|
|
|
+ JSONArray department = userObj.getJSONArray("department");
|
|
|
+ Integer curUserWXDeptid = getMaxDeptIdFromArray(department);
|
|
|
+ Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
|
|
|
+ String userId = userObj.getString("userid");
|
|
|
+ String openUserId = userObj.getString("open_userid");
|
|
|
+ User user = new User()
|
|
|
+ .setId(id.toString())
|
|
|
+ .setRoleId(defaultRole.getId())
|
|
|
+ .setRoleName(defaultRole.getRolename())
|
|
|
+ .setName(userObj.getString("name"))
|
|
|
+ .setPhone(userObj.getString("mobile"))
|
|
|
+ .setPassword(MD5Util.getPassword("000000"))
|
|
|
+ .setCorpwxUserid(openUserId)
|
|
|
+ .setCorpwxRealUserid(userId)
|
|
|
+ .setJobNumber(openUserId.equals(userId)?null:userId)
|
|
|
+ .setColor(ColorUtil.randomColor())
|
|
|
+ .setCompanyId(companyId);
|
|
|
+ if (sysDept != null) {
|
|
|
+ user.setDepartmentId(sysDept.getDepartmentId());
|
|
|
+ List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
+ user.setDepartmentCascade(convertDepartmentIdToCascade(user.getDepartmentId(), allDeptList));
|
|
|
+ }
|
|
|
+ Integer employeeCnt = userMapper.selectCount(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active",1));
|
|
|
+ Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", companyId));
|
|
|
+ ContactSyncLog contactSyncLog = new ContactSyncLog();
|
|
|
+ contactSyncLog.setCompanyId(companyId);
|
|
|
+ System.err.println("企业微信自动同步新增人员日志记录===============================");
|
|
|
+ if (employeeCnt + 1 > company.getStaffCountMax()){
|
|
|
+ contactSyncLog.setResult(0);
|
|
|
+ //contactSyncLog.setMsg("公司人员已达上限,请联系客服提高人数上限。");
|
|
|
+ contactSyncLog.setMsg(MessageUtils.message("wx.employeeFull"));
|
|
|
+ System.err.println("日志信息:"+ contactSyncLog.toString());
|
|
|
+ contactSyncLogMapper.insert(contactSyncLog);
|
|
|
+ }else {
|
|
|
+ userMapper.insert(user);
|
|
|
+ contactSyncLog.setResult(1);
|
|
|
+ //contactSyncLog.setMsg("同步成功");
|
|
|
+ contactSyncLog.setMsg(MessageUtils.message("wx.synSuccess"));
|
|
|
+ System.err.println("日志信息:"+ contactSyncLog.toString());
|
|
|
+ contactSyncLogMapper.insert(contactSyncLog);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -540,22 +609,81 @@ public class WeiXinCorpController {
|
|
|
org.json.JSONObject jsonObject = XML.toJSONObject(sMsg);
|
|
|
log.info("json=="+jsonObject.toString());
|
|
|
jsonObject = jsonObject.getJSONObject("xml");
|
|
|
-
|
|
|
- //存储更新订单、更新公司续费情况
|
|
|
+ //订单回调。存储更新订单、更新公司续费情况
|
|
|
if (jsonObject.has("InfoType")){
|
|
|
+ System.err.println("+++++++++++++++++++订单回调开始++++++++++++++++++++++");
|
|
|
+ System.err.println(jsonObject);
|
|
|
String infoType = jsonObject.getString("InfoType");
|
|
|
- //open_order:下单成功通知; change_order:改单通知; pay_for_app_success:支付成功通知;
|
|
|
- //refund:退款通知; change_editon:付费版本变更通知;
|
|
|
- if ("open_order".equals(infoType) || "change_order".equals(infoType) || "pay_for_app_success".equals(infoType) || "refund".equals(infoType) || "change_editon".equals(infoType)){
|
|
|
- boolean b = saveOrderAndUpCompany(jsonObject);
|
|
|
- if (!b){
|
|
|
- System.out.println("+++++++++++++++++++微信应用市场付费回调处理失败+++++++++++++++++++++++");
|
|
|
- System.out.println(jsonObject);
|
|
|
- }
|
|
|
+ String orderId = "";
|
|
|
+ if (jsonObject.has("OrderId")){
|
|
|
+ orderId = jsonObject.getString("OrderId");
|
|
|
+ }
|
|
|
+ WxOrder wxOrder = null;
|
|
|
+ switch (infoType){
|
|
|
+ case "open_order"://open_order:下单成功通知
|
|
|
+ System.err.println("###########################下单成功");
|
|
|
+ wxOrder = getOrder(orderId);
|
|
|
+ if (wxOrder!=null){
|
|
|
+ wxOrderMapper.insert(wxOrder);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "pay_for_app_success"://pay_for_app_success:支付成功通知
|
|
|
+ System.err.println("###########################订单支付成功");
|
|
|
+ wxOrder = getOrder(orderId);
|
|
|
+ if (wxOrder!=null){
|
|
|
+ wxOrderMapper.updateById(wxOrder);
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("corpid", wxOrder.getPaidCorpid()));
|
|
|
+ if (wxCorpInfo!=null){
|
|
|
+ System.err.println("#######################要进行更改有效期的公司信息为:"+ wxCorpInfo.toString());
|
|
|
+ Company newCompany = new Company();
|
|
|
+ LocalDateTime endTime = wxOrder.getEndTime();
|
|
|
+ newCompany.setId(wxCorpInfo.getCompanyId());
|
|
|
+ newCompany.setExpirationDate(endTime);
|
|
|
+ newCompany.setSetMeal(1);
|
|
|
+ newCompany.setStaffCountMax(wxOrder.getUserCount());
|
|
|
+ companyMapper.updateById(newCompany);
|
|
|
+ System.out.println("有效期变更为:" + endTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "change_editon"://change_editon:付费版本变更通知
|
|
|
+ System.err.println("###########################付费版本变更");
|
|
|
+ String paidCorpId = jsonObject.getString("PaidCorpId");
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("corpid", paidCorpId));
|
|
|
+ if(wxCorpInfo != null){
|
|
|
+ System.err.println("版本变更的公司信息为:");
|
|
|
+ System.err.println(wxCorpInfo.toString());
|
|
|
+ versionChange(wxCorpInfo);
|
|
|
+ }else {
|
|
|
+ System.err.println("#############################" + paidCorpId + "该公司尚未授权开通,将在授权开通后为其变更版本及更新到期时间。");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "change_order"://change_order:改单通知
|
|
|
+ System.err.println("###########################改单通知");
|
|
|
+ orderId = jsonObject.getString("NewOrderId");
|
|
|
+ wxOrder = getOrder(orderId);
|
|
|
+ if (wxOrder!=null){
|
|
|
+ wxOrder.setOldOrderid(jsonObject.getString("OldOrderId"));
|
|
|
+ wxOrderMapper.insert(wxOrder);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "refund"://refund:退款通知
|
|
|
+ System.err.println("###########################退款通知");
|
|
|
+ wxOrder = getOrder(orderId);
|
|
|
+ wxOrderMapper.updateById(wxOrder);
|
|
|
+ WxCorpInfo corpid = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("corpid", wxOrder.getPaidCorpid()));
|
|
|
+ if (corpid!=null){
|
|
|
+ Company newCompany = new Company();
|
|
|
+ newCompany.setId(corpid.getCompanyId());
|
|
|
+ //退款则将其到期时间设置为现在的时间减去一天
|
|
|
+ newCompany.setExpirationDate(LocalDateTime.now().minusDays(1));
|
|
|
+ companyMapper.updateById(newCompany);
|
|
|
+ System.out.println("已将该公司有效期设置为:");
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
if (jsonObject.has("AuthCode")) {
|
|
|
//企业授权通知
|
|
|
String authCode = jsonObject.getString("AuthCode");
|
|
@@ -1148,8 +1276,8 @@ public class WeiXinCorpController {
|
|
|
project.setCreatorId(user.getId());
|
|
|
project.setCreatorName(user.getName());
|
|
|
project.setCreateDate(LocalDate.now());
|
|
|
- project.setProjectCode("example1");
|
|
|
- project.setProjectName(MessageUtils.message("project.example"));
|
|
|
+ project.setProjectCode("example");
|
|
|
+ project.setProjectName("示例项目");
|
|
|
projectMapper.insert(project);
|
|
|
//todo: 设置初始项目参与人
|
|
|
Participation participation=new Participation();
|
|
@@ -1165,13 +1293,13 @@ public class WeiXinCorpController {
|
|
|
TaskGroup taskGroup = new TaskGroup();
|
|
|
taskGroup.setProjectId(project.getId())
|
|
|
.setInchargerId(user.getId())
|
|
|
- .setName(MessageUtils.message("entry.projectStage"));
|
|
|
+ .setName("项目阶段");
|
|
|
taskGroupMapper.insert(taskGroup);
|
|
|
Stages stage = new Stages();
|
|
|
stage.setGroupId(taskGroup.getId());
|
|
|
stage.setSequence(1);
|
|
|
stage.setProjectId(project.getId());
|
|
|
- stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
|
|
|
+ stage.setStagesName("工作开展");
|
|
|
stagesMapper.insert(stage);
|
|
|
Task task=new Task();
|
|
|
task.setCreateDate(LocalDate.now());
|
|
@@ -1186,7 +1314,7 @@ public class WeiXinCorpController {
|
|
|
task.setStagesId(stage.getId());
|
|
|
task.setGroupId(taskGroup.getId());
|
|
|
task.setSeq(0);
|
|
|
- task.setName(MessageUtils.message("Stages.example"));
|
|
|
+ task.setName("示例任务");
|
|
|
taskMapper.insert(task);
|
|
|
}
|
|
|
|
|
@@ -1194,52 +1322,60 @@ public class WeiXinCorpController {
|
|
|
//获取公司根部门人员,也就是没有分配部门的人员
|
|
|
getCorpMembsFromPlatform(companyId);
|
|
|
//对已经开通版本的新公司进行版本变更和开通时长变更
|
|
|
+ System.err.println("###################################开始检查该新建公司是否已支付过订单");
|
|
|
+ System.err.println("该公司corpId为:"+corpId);
|
|
|
WxOrder wxOrder = wxOrderMapper.selectOne(new QueryWrapper<WxOrder>().eq("paid_corpid",corpId).eq("order_status",1).orderByDesc("paid_time"));
|
|
|
if (wxOrder != null){
|
|
|
+ Company newCompany = new Company();
|
|
|
+ newCompany.setId(company.getId());
|
|
|
System.err.println("########################查询到该新建企业" + company.getCompanyName() + "已支付过订单,进行版本变更");
|
|
|
String editionId = wxOrder.getEditionId();
|
|
|
switch (editionId){
|
|
|
//基础版
|
|
|
case "sp17da4a6e6f2a91f8":
|
|
|
- company.setPackageProject(0);
|
|
|
- company.setPackageOa(0);
|
|
|
- company.setPackageExpense(0);
|
|
|
- company.setPackageCustomer(0);
|
|
|
- company.setPackageEngineering(0);
|
|
|
- company.setPackageProvider(0);
|
|
|
+ newCompany.setPackageProject(0);
|
|
|
+ newCompany.setPackageOa(0);
|
|
|
+ newCompany.setPackageExpense(0);
|
|
|
+ newCompany.setPackageCustomer(0);
|
|
|
+ newCompany.setPackageEngineering(0);
|
|
|
+ newCompany.setPackageProvider(0);
|
|
|
break;
|
|
|
//专业版
|
|
|
case "sp4a30d92ede178afd":
|
|
|
- company.setPackageProject(1);//项目协作平台
|
|
|
- company.setPackageOa(0);//OA平台;请假,出差等
|
|
|
- company.setPackageExpense(1);//费用报销
|
|
|
- company.setPackageCustomer(0);//客户管理
|
|
|
- company.setPackageEngineering(0);//工程专业
|
|
|
- company.setPackageProvider(0);//供应商模块
|
|
|
+ newCompany.setPackageProject(1);//项目协作平台
|
|
|
+ newCompany.setPackageOa(0);//OA平台;请假,出差等
|
|
|
+ newCompany.setPackageExpense(1);//费用报销
|
|
|
+ newCompany.setPackageCustomer(0);//客户管理
|
|
|
+ newCompany.setPackageEngineering(0);//工程专业
|
|
|
+ newCompany.setPackageProvider(0);//供应商模块
|
|
|
break;
|
|
|
//建筑版
|
|
|
case "spd04f1b0582a0fe19":
|
|
|
- company.setPackageProject(1);//项目协作平台
|
|
|
- company.setPackageOa(0);//OA平台;请假,出差等
|
|
|
- company.setPackageExpense(1);//费用报销
|
|
|
- company.setPackageCustomer(1);//客户管理
|
|
|
- company.setPackageEngineering(1);//工程专业
|
|
|
- company.setPackageProvider(0);//供应商模块
|
|
|
+ newCompany.setPackageProject(1);//项目协作平台
|
|
|
+ newCompany.setPackageOa(0);//OA平台;请假,出差等
|
|
|
+ newCompany.setPackageExpense(1);//费用报销
|
|
|
+ newCompany.setPackageCustomer(1);//客户管理
|
|
|
+ newCompany.setPackageEngineering(1);//工程专业
|
|
|
+ newCompany.setPackageProvider(0);//供应商模块
|
|
|
break;
|
|
|
//旗舰版
|
|
|
case "sp69f71e42798c7f55":
|
|
|
- company.setPackageProject(1);//项目协作平台
|
|
|
- company.setPackageOa(1);//OA平台;请假,出差等
|
|
|
- company.setPackageExpense(1);//费用报销
|
|
|
- company.setPackageCustomer(1);//客户管理
|
|
|
- company.setPackageEngineering(0);//工程专业
|
|
|
- company.setPackageProvider(1);//供应商模块
|
|
|
+ newCompany.setPackageProject(1);//项目协作平台
|
|
|
+ newCompany.setPackageOa(1);//OA平台;请假,出差等
|
|
|
+ newCompany.setPackageExpense(1);//费用报销
|
|
|
+ newCompany.setPackageCustomer(1);//客户管理
|
|
|
+ newCompany.setPackageEngineering(0);//工程专业
|
|
|
+ newCompany.setPackageProvider(1);//供应商模块
|
|
|
break;
|
|
|
}
|
|
|
LocalDateTime endTime = wxOrder.getEndTime();
|
|
|
- company.setExpirationDate(endTime);
|
|
|
- System.out.println("版本变更成功,到期时间更新成功。版本变更后的信息为:" + company.toString());
|
|
|
- companyMapper.updateById(company);
|
|
|
+ newCompany.setExpirationDate(endTime);
|
|
|
+ newCompany.setSetMeal(1);
|
|
|
+ newCompany.setStaffCountMax(wxOrder.getUserCount());
|
|
|
+ companyMapper.updateById(newCompany);
|
|
|
+ System.out.println("版本变更成功,到期时间更新成功。");
|
|
|
+ }else {
|
|
|
+ System.out.println("未查询到该新建公司有支付订单");
|
|
|
}
|
|
|
} else {
|
|
|
//企业已经存在
|
|
@@ -2817,173 +2953,6 @@ public class WeiXinCorpController {
|
|
|
return cnt>0;
|
|
|
}
|
|
|
|
|
|
- private boolean saveOrderAndUpCompany(org.json.JSONObject jsonObject) throws Exception {
|
|
|
- System.err.println("+++++++++++++++++++订单回调开始++++++++++++++++++++++");
|
|
|
- String infoType = jsonObject.getString("InfoType");
|
|
|
- String suiteAccessToken = getSuiteAccessToken();
|
|
|
- System.out.println("++++++++++++++++++++suiteAccessToken为:"+suiteAccessToken);
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
- RestTemplate restTemplate = new RestTemplate();
|
|
|
- MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
- headers.setContentType(type);
|
|
|
- headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
|
|
- //版本变更
|
|
|
- if ("change_editon".equals(infoType)){
|
|
|
- String url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_auth_info?suite_access_token="+suiteAccessToken;
|
|
|
- String paidCorpId = jsonObject.getString("PaidCorpId");
|
|
|
- WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("corpid", paidCorpId));
|
|
|
- Company company = companyMapper.selectById(wxCorpInfo.getCompanyId());
|
|
|
- if(company != null){
|
|
|
- System.err.println("版本变更的公司信息为:");
|
|
|
- System.err.println(wxCorpInfo.toString());
|
|
|
- JSONObject map = new JSONObject();
|
|
|
- map.put("auth_corpid",wxCorpInfo.getCorpid());
|
|
|
- map.put("permanent_code",wxCorpInfo.getPermanentCode());
|
|
|
- HttpEntity<JSONObject> detailEntity = new HttpEntity<>(map, headers);
|
|
|
- ResponseEntity<String> detailResponseEntity = restTemplate.postForEntity(url, detailEntity, String.class);
|
|
|
- JSONObject json = JSONObject.parseObject(detailResponseEntity.getBody());
|
|
|
- System.out.println("+++++++++++++++++++++++++版本更新信息为:"+json);
|
|
|
- if (json.containsKey("auth_corp_info")){
|
|
|
- String edition_id = json.getJSONObject("edition_info").getJSONArray("agent")
|
|
|
- .getJSONObject(0).getString("edition_id");
|
|
|
- switch (edition_id){
|
|
|
- //基础版
|
|
|
- case "sp17da4a6e6f2a91f8":
|
|
|
- company.setPackageProject(0);
|
|
|
- company.setPackageOa(0);
|
|
|
- company.setPackageExpense(0);
|
|
|
- company.setPackageCustomer(0);
|
|
|
- company.setPackageEngineering(0);
|
|
|
- company.setPackageProvider(0);
|
|
|
- break;
|
|
|
- //专业版
|
|
|
- case "sp4a30d92ede178afd":
|
|
|
- company.setPackageProject(1);//项目协作平台
|
|
|
- company.setPackageOa(0);//OA平台;请假,出差等
|
|
|
- company.setPackageExpense(1);//费用报销
|
|
|
- company.setPackageCustomer(0);//客户管理
|
|
|
- company.setPackageEngineering(0);//工程专业
|
|
|
- company.setPackageProvider(0);//供应商模块
|
|
|
- break;
|
|
|
- //建筑版
|
|
|
- case "spd04f1b0582a0fe19":
|
|
|
- company.setPackageProject(1);//项目协作平台
|
|
|
- company.setPackageOa(0);//OA平台;请假,出差等
|
|
|
- company.setPackageExpense(1);//费用报销
|
|
|
- company.setPackageCustomer(1);//客户管理
|
|
|
- company.setPackageEngineering(1);//工程专业
|
|
|
- company.setPackageProvider(0);//供应商模块
|
|
|
- break;
|
|
|
- //旗舰版
|
|
|
- case "sp69f71e42798c7f55":
|
|
|
- company.setPackageProject(1);//项目协作平台
|
|
|
- company.setPackageOa(1);//OA平台;请假,出差等
|
|
|
- company.setPackageExpense(1);//费用报销
|
|
|
- company.setPackageCustomer(1);//客户管理
|
|
|
- company.setPackageEngineering(0);//工程专业
|
|
|
- company.setPackageProvider(1);//供应商模块
|
|
|
- break;
|
|
|
- }
|
|
|
- companyMapper.updateById(company);
|
|
|
- System.out.println(company.getCompanyName()+"已成功变更版本,版本号为:"+edition_id);
|
|
|
- }else {
|
|
|
- System.out.println("++++++++++++++++++++++"+"版本变更失败!"+"++++++++++++++++++++++++");
|
|
|
- return false;
|
|
|
- }
|
|
|
- }else {
|
|
|
- System.err.println("#############################" + paidCorpId + "该公司尚未授权开通,将在授权开通后为其变更版本及更新到期时间。");
|
|
|
- }
|
|
|
- }else {
|
|
|
- String orderId = "";
|
|
|
- if (jsonObject.has("OrderId")){
|
|
|
- orderId = jsonObject.getString("OrderId");
|
|
|
- }else {
|
|
|
- orderId = jsonObject.getString("NewOrderId");
|
|
|
- }
|
|
|
- WxOrder wxOrder = new WxOrder();
|
|
|
- String detailUrl = "https://qyapi.weixin.qq.com/cgi-bin/service/get_order?suite_access_token=" + suiteAccessToken;
|
|
|
- JSONObject detailMap = new JSONObject();
|
|
|
- detailMap.put("orderid",orderId);
|
|
|
- HttpEntity<JSONObject> detailEntity = new HttpEntity<>(detailMap, headers);
|
|
|
- ResponseEntity<String> detailResponseEntity = restTemplate.postForEntity(detailUrl, detailEntity, String.class);
|
|
|
- String body = detailResponseEntity.getBody();
|
|
|
- System.out.println("+++++++++++++++++++++++++++++++++++++++订单详情信息!");
|
|
|
- System.out.println(body);
|
|
|
- JSONObject orderDetail = JSONObject.parseObject(body);
|
|
|
- if (orderDetail.getInteger("errcode")==0){
|
|
|
- wxOrder.setOrderid(orderDetail.getString("orderid"));
|
|
|
- wxOrder.setOrderStatus(orderDetail.getInteger("order_status"));
|
|
|
- wxOrder.setOrderType(orderDetail.getInteger("order_type"));
|
|
|
- wxOrder.setPaidCorpid(orderDetail.getString("paid_corpid"));
|
|
|
- if (orderDetail.containsKey("operator_id")){
|
|
|
- wxOrder.setOperatorId(orderDetail.getString("operator_id"));
|
|
|
- }
|
|
|
- wxOrder.setSuiteid(orderDetail.getString("suiteid"));
|
|
|
- if (orderDetail.containsKey("appid")){
|
|
|
- wxOrder.setAppid(orderDetail.getString("appid"));
|
|
|
- }
|
|
|
- wxOrder.setEditionId(orderDetail.getString("edition_id"));
|
|
|
- wxOrder.setEditionName(orderDetail.getString("edition_name"));
|
|
|
- wxOrder.setPrice(orderDetail.getInteger("price"));
|
|
|
- wxOrder.setUserCount(orderDetail.getInteger("user_count"));
|
|
|
- wxOrder.setOrderPeriod(orderDetail.getInteger("order_period"));
|
|
|
- LocalDateTime order_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("order_time"),0,ZoneOffset.ofHours(8));
|
|
|
- wxOrder.setOrderTime(order_time);
|
|
|
- if (orderDetail.getLong("paid_time")!=0){
|
|
|
- LocalDateTime paid_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("paid_time"),0,ZoneOffset.ofHours(8));
|
|
|
- wxOrder.setPaidTime(paid_time);
|
|
|
- }
|
|
|
- if (orderDetail.getLong("begin_time")!=0){
|
|
|
- LocalDateTime begin_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("begin_time"),0,ZoneOffset.ofHours(8));
|
|
|
- wxOrder.setBeginTime(begin_time);
|
|
|
- }
|
|
|
- if (orderDetail.getLong("end_time")!=0){
|
|
|
- LocalDateTime end_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("end_time"),0,ZoneOffset.ofHours(8));
|
|
|
- wxOrder.setEndTime(end_time);
|
|
|
- }
|
|
|
- wxOrder.setOrderFrom(orderDetail.getInteger("order_from"));
|
|
|
- wxOrder.setOperatorCorpid(orderDetail.getString("operator_corpid"));
|
|
|
- wxOrder.setServiceShareAmount(orderDetail.getInteger("service_share_amount"));
|
|
|
- wxOrder.setPlatformShareAmount(orderDetail.getInteger("platform_share_amount"));
|
|
|
- wxOrder.setDealerShareAmount(orderDetail.getInteger("dealer_share_amount"));
|
|
|
- if (orderDetail.containsKey("dealer_corp_info")){
|
|
|
- JSONObject dealer_corp_info = orderDetail.getJSONObject("dealer_corp_info");
|
|
|
- wxOrder.setDealerCorpid(dealer_corp_info.getString("corpid"));
|
|
|
- wxOrder.setDealerCorpName(dealer_corp_info.getString("corp_name"));
|
|
|
- }
|
|
|
- //获取该公司对象
|
|
|
- WxCorpInfo corpid = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("corpid", wxOrder.getPaidCorpid()));
|
|
|
- if (corpid!=null){
|
|
|
- Company company = companyMapper.selectById(corpid.getCompanyId());
|
|
|
- if("pay_for_app_success".equals(infoType)){
|
|
|
- wxOrderMapper.updateById(wxOrder);
|
|
|
- Integer orderPeriod = wxOrder.getOrderPeriod();
|
|
|
- //若到期时间早已过期,则取当前时间加上开通时长
|
|
|
- if (LocalDateTime.now().isAfter(company.getExpirationDate())){
|
|
|
- company.setExpirationDate(LocalDateTime.now().plusDays(orderPeriod));
|
|
|
- }else {
|
|
|
- company.setExpirationDate(company.getExpirationDate().plusDays(orderPeriod));
|
|
|
- }
|
|
|
- }else if ("refund".equals(infoType)){
|
|
|
- wxOrderMapper.updateById(wxOrder);
|
|
|
- //退款则将其到期时间设置为现在的时间减去一天
|
|
|
- company.setExpirationDate(LocalDateTime.now().minusDays(1));
|
|
|
- }
|
|
|
- }
|
|
|
- if ("open_order".equals(infoType)){
|
|
|
- wxOrderMapper.insert(wxOrder);
|
|
|
- }else if ("change_order".equals(infoType)){
|
|
|
- wxOrder.setOldOrderid(jsonObject.getString("OldOrderId"));
|
|
|
- wxOrderMapper.insert(wxOrder);
|
|
|
- }
|
|
|
- }else {
|
|
|
- System.out.println("+++++++++++++"+"微信订单查询更新失败"+"+++++++++++++++");
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
@RequestMapping("getCorpAuthInfo")
|
|
|
public HttpRespMsg getCorpAuthInfo(String corpId) throws Exception {
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
@@ -3023,4 +2992,135 @@ public class WeiXinCorpController {
|
|
|
|
|
|
return new HttpRespMsg();
|
|
|
}
|
|
|
+
|
|
|
+ //查询订单
|
|
|
+ private WxOrder getOrder (String orderId) throws Exception {
|
|
|
+ String suiteAccessToken = getSuiteAccessToken();
|
|
|
+ System.out.println("++++++++++++++++++++suiteAccessToken为:"+suiteAccessToken);
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
+ headers.setContentType(type);
|
|
|
+ headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
|
|
+ String detailUrl = "https://qyapi.weixin.qq.com/cgi-bin/service/get_order?suite_access_token=" + suiteAccessToken;
|
|
|
+ JSONObject detailMap = new JSONObject();
|
|
|
+ detailMap.put("orderid",orderId);
|
|
|
+ HttpEntity<JSONObject> detailEntity = new HttpEntity<>(detailMap, headers);
|
|
|
+ ResponseEntity<String> detailResponseEntity = restTemplate.postForEntity(detailUrl, detailEntity, String.class);
|
|
|
+ String body = detailResponseEntity.getBody();
|
|
|
+ System.out.println("+++++++++++++++++++++++++++++++++++++++订单详情信息!");
|
|
|
+ System.out.println(body);
|
|
|
+ JSONObject orderDetail = JSONObject.parseObject(body);
|
|
|
+ WxOrder wxOrder = new WxOrder();
|
|
|
+ if (orderDetail.getInteger("errcode")==0){
|
|
|
+ wxOrder.setOrderid(orderDetail.getString("orderid"));
|
|
|
+ wxOrder.setOrderStatus(orderDetail.getInteger("order_status"));
|
|
|
+ wxOrder.setOrderType(orderDetail.getInteger("order_type"));
|
|
|
+ wxOrder.setPaidCorpid(orderDetail.getString("paid_corpid"));
|
|
|
+ if (orderDetail.containsKey("operator_id")){
|
|
|
+ wxOrder.setOperatorId(orderDetail.getString("operator_id"));
|
|
|
+ }
|
|
|
+ wxOrder.setSuiteid(orderDetail.getString("suiteid"));
|
|
|
+ wxOrder.setEditionId(orderDetail.getString("edition_id"));
|
|
|
+ wxOrder.setEditionName(orderDetail.getString("edition_name"));
|
|
|
+ wxOrder.setPrice(orderDetail.getInteger("price"));
|
|
|
+ wxOrder.setUserCount(orderDetail.getInteger("user_count"));
|
|
|
+ wxOrder.setOrderPeriod(orderDetail.getInteger("order_period"));
|
|
|
+ LocalDateTime order_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("order_time"),0,ZoneOffset.ofHours(8));
|
|
|
+ wxOrder.setOrderTime(order_time);
|
|
|
+ if (orderDetail.getLong("paid_time")!=0){
|
|
|
+ LocalDateTime paid_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("paid_time"),0,ZoneOffset.ofHours(8));
|
|
|
+ wxOrder.setPaidTime(paid_time);
|
|
|
+ }
|
|
|
+ if (orderDetail.getLong("begin_time")!=0){
|
|
|
+ LocalDateTime begin_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("begin_time"),0,ZoneOffset.ofHours(8));
|
|
|
+ wxOrder.setBeginTime(begin_time);
|
|
|
+ }
|
|
|
+ if (orderDetail.getLong("end_time")!=0){
|
|
|
+ LocalDateTime end_time =LocalDateTime.ofEpochSecond(orderDetail.getLong("end_time"),0,ZoneOffset.ofHours(8));
|
|
|
+ wxOrder.setEndTime(end_time);
|
|
|
+ }
|
|
|
+ wxOrder.setOrderFrom(orderDetail.getInteger("order_from"));
|
|
|
+ wxOrder.setOperatorCorpid(orderDetail.getString("operator_corpid"));
|
|
|
+ wxOrder.setServiceShareAmount(orderDetail.getInteger("service_share_amount"));
|
|
|
+ wxOrder.setPlatformShareAmount(orderDetail.getInteger("platform_share_amount"));
|
|
|
+ wxOrder.setDealerShareAmount(orderDetail.getInteger("dealer_share_amount"));
|
|
|
+ if (orderDetail.containsKey("dealer_corp_info")){
|
|
|
+ JSONObject dealer_corp_info = orderDetail.getJSONObject("dealer_corp_info");
|
|
|
+ wxOrder.setDealerCorpid(dealer_corp_info.getString("corpid"));
|
|
|
+ wxOrder.setDealerCorpName(dealer_corp_info.getString("corp_name"));
|
|
|
+ }
|
|
|
+ return wxOrder;
|
|
|
+ }else {
|
|
|
+ System.out.println("+++++++++++++"+"微信订单查询更新失败"+"+++++++++++++++");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //版本变更
|
|
|
+ private void versionChange (WxCorpInfo wxCorpInfo) throws Exception {
|
|
|
+ String suiteAccessToken = getSuiteAccessToken();
|
|
|
+ System.out.println("++++++++++++++++++++suiteAccessToken为:"+suiteAccessToken);
|
|
|
+ String url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_auth_info?suite_access_token="+suiteAccessToken;
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
+ headers.setContentType(type);
|
|
|
+ headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
|
|
+ JSONObject map = new JSONObject();
|
|
|
+ map.put("auth_corpid",wxCorpInfo.getCorpid());
|
|
|
+ map.put("permanent_code",wxCorpInfo.getPermanentCode());
|
|
|
+ HttpEntity<JSONObject> detailEntity = new HttpEntity<>(map, headers);
|
|
|
+ ResponseEntity<String> detailResponseEntity = restTemplate.postForEntity(url, detailEntity, String.class);
|
|
|
+ JSONObject json = JSONObject.parseObject(detailResponseEntity.getBody());
|
|
|
+ System.out.println("+++++++++++++++++++++++++版本更新信息为:"+json);
|
|
|
+ Company newCompany = new Company();
|
|
|
+ newCompany.setId(wxCorpInfo.getCompanyId());
|
|
|
+ if (json.containsKey("auth_corp_info")){
|
|
|
+ String edition_id = json.getJSONObject("edition_info").getJSONArray("agent")
|
|
|
+ .getJSONObject(0).getString("edition_id");
|
|
|
+ switch (edition_id){
|
|
|
+ //基础版
|
|
|
+ case "sp17da4a6e6f2a91f8":
|
|
|
+ newCompany.setPackageProject(0);
|
|
|
+ newCompany.setPackageOa(0);
|
|
|
+ newCompany.setPackageExpense(0);
|
|
|
+ newCompany.setPackageCustomer(0);
|
|
|
+ newCompany.setPackageEngineering(0);
|
|
|
+ newCompany.setPackageProvider(0);
|
|
|
+ break;
|
|
|
+ //专业版
|
|
|
+ case "sp4a30d92ede178afd":
|
|
|
+ newCompany.setPackageProject(1);//项目协作平台
|
|
|
+ newCompany.setPackageOa(0);//OA平台;请假,出差等
|
|
|
+ newCompany.setPackageExpense(1);//费用报销
|
|
|
+ newCompany.setPackageCustomer(0);//客户管理
|
|
|
+ newCompany.setPackageEngineering(0);//工程专业
|
|
|
+ newCompany.setPackageProvider(0);//供应商模块
|
|
|
+ break;
|
|
|
+ //建筑版
|
|
|
+ case "spd04f1b0582a0fe19":
|
|
|
+ newCompany.setPackageProject(1);//项目协作平台
|
|
|
+ newCompany.setPackageOa(0);//OA平台;请假,出差等
|
|
|
+ newCompany.setPackageExpense(1);//费用报销
|
|
|
+ newCompany.setPackageCustomer(1);//客户管理
|
|
|
+ newCompany.setPackageEngineering(1);//工程专业
|
|
|
+ newCompany.setPackageProvider(0);//供应商模块
|
|
|
+ break;
|
|
|
+ //旗舰版
|
|
|
+ case "sp69f71e42798c7f55":
|
|
|
+ newCompany.setPackageProject(1);//项目协作平台
|
|
|
+ newCompany.setPackageOa(1);//OA平台;请假,出差等
|
|
|
+ newCompany.setPackageExpense(1);//费用报销
|
|
|
+ newCompany.setPackageCustomer(1);//客户管理
|
|
|
+ newCompany.setPackageEngineering(0);//工程专业
|
|
|
+ newCompany.setPackageProvider(1);//供应商模块
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ companyMapper.updateById(newCompany);
|
|
|
+ System.out.println("已成功变更版本,版本号为:"+edition_id);
|
|
|
+ }else {
|
|
|
+ System.out.println("++++++++++++++++++++++"+"版本变更失败!"+"++++++++++++++++++++++++");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|