Просмотр исходного кода

[微信第三方开发平台][修改]:小程序发布状态再整理

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
4b5976fe6f
21 измененных файлов: 1241 добавлений и 368 удалений
  1. +7
    -1
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  2. +101
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxWeappAuditStatus.java
  3. +1
    -26
      mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java
  4. +99
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxWeappReleaseStatus.java
  5. +14
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxWeappAuditStatusVo.java
  6. +14
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxWeappReleaseStatusVo.java
  7. +23
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxWeappAuditStatusMapper.java
  8. +2
    -2
      mallinkService/src/main/java/com/iformall/mapper/WxWeappCodeStatusMapper.java
  9. +24
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxWeappReleaseStatusMapper.java
  10. +75
    -0
      mallinkService/src/main/java/com/iformall/service/WxWeappAuditStatusService.java
  11. +3
    -17
      mallinkService/src/main/java/com/iformall/service/WxWeappCodeStatusService.java
  12. +69
    -0
      mallinkService/src/main/java/com/iformall/service/WxWeappReleaseStatusService.java
  13. +80
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxWeappAuditStatusServiceImpl.java
  14. +12
    -60
      mallinkService/src/main/java/com/iformall/service/impl/WxWeappCodeStatusServiceImpl.java
  15. +106
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxWeappReleaseStatusServiceImpl.java
  16. +123
    -0
      mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml
  17. +17
    -56
      mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml
  18. +126
    -0
      mallinkService/src/main/resources/mapper/WxWeappReleaseStatusMapper.xml
  19. +9
    -6
      mallinkWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java
  20. +189
    -91
      mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java
  21. +147
    -109
      mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java

+ 7
- 1
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Просмотреть файл

@@ -346,7 +346,13 @@ public enum ErrorCode{
WEAPP_BASIC_SET_ERR(24001, "基础配置错误"),
WEAPP_BASIC_SET_DOMAIN_ERR(24002, "基础服务器域名配置错误"),
WEAPP_EXT_SET_ERR(24003, "扩展配置错误"),
WECHAT_LOGIN_KEY_OVERTIME(24004, "已过期"),
WEAPP_CODE_COMMIT_ERR(24004, "code提交失败"),
WEAPP_AUDIT_ERR(24005, "提交审核失败"),
WEAPP_HAD_AUDITING(24006, "已有审核中"),
WEAPP_NOT_AUDITED(24007, "审核未通过"),
WEAPP_APP_RELEASEED(24008, "已发布"),

WECHAT_LOGIN_KEY_OVERTIME(24030, "已过期"),

/**
* 屏广告


+ 101
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxWeappAuditStatus.java Просмотреть файл

@@ -0,0 +1,101 @@
package com.iformall.domain.po;

import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Table(name = "wx_weapp_audit_status")
@Data
public class WxWeappAuditStatus implements Serializable {
private static final long serialVersionUID = 1L;

@Id
protected Long id;

@Transient
protected List<Long> ids;
@Transient
protected String sortColumns;

@io.swagger.annotations.ApiModelProperty(value="小程序ID",name="appId")
private String appId;
@io.swagger.annotations.ApiModelProperty(value="小程序类型(1-B端 2-C端)",name="type")
private Integer type;
@io.swagger.annotations.ApiModelProperty(value="用户版本",name="userVersion")
private String userVersion;
@io.swagger.annotations.ApiModelProperty(value="用户版本描述",name="versionDesc")
private String versionDesc;
@io.swagger.annotations.ApiModelProperty(value="auditid",name="auditid")
private Long auditid;
@io.swagger.annotations.ApiModelProperty(value="审核状态(0为审核成功,1:审核失败,2:审核中,3:已撤回)",name="auditStatus")
private Integer auditStatus;
@io.swagger.annotations.ApiModelProperty(value="审核错误码",name="auditErrCode")
private String auditErrCode;
@io.swagger.annotations.ApiModelProperty(value="审核时间",name="auditTime")
private Date auditTime;

public static enum Field
{
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,AppId_ASC("`app_id` ASC"),AppId_DESC("`app_id` DESC")
,Type_ASC("`type` ASC"),Type_DESC("`type` DESC")
,UserVersion_ASC("`user_version` ASC"),UserVersion_DESC("`user_version` DESC")
,AuditTime_ASC("`audit_time` ASC"),AuditTime_DESC("`audit_time` DESC")
;
private String value;
Field(String value){
this.value = value;
}
public String getValue() {
return value;
}
public void setCol(String value) {
this.value = value;
}
@Override
public String toString() {
return this.getValue();
}
}

public void setSortColumns(WxWeappAuditStatus.Field... fields)
{
if (fields == null || fields.length == 0) {
return;
}
for (int k = 0; k < fields.length; k++) {
if (fields[k] == null) {
return;
}
}
StringBuilder sb = new StringBuilder(fields[0].toString());
for (int k = 1; k < fields.length; k++) {
sb.append(",");
sb.append(fields[k].toString());
}
this.sortColumns = sb.toString();
}

public void setSortColumns(String sortColumns)
{
if (sortColumns == null || "".equals(sortColumns.trim())) {
return;
}
if (sortColumns.contains(",")) {
String[] cols = sortColumns.split(",");
List<Field> fList = new ArrayList();
for (int k = 0; k < cols.length; k++) {
fList.add(Field.valueOf(cols[k]));
}
this.setSortColumns(fList.toArray(new Field[fList.size()]));
} else {
this.setSortColumns(Field.valueOf(sortColumns));
}
}
}

+ 1
- 26
mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java Просмотреть файл

@@ -42,30 +42,6 @@ public class WxWeappCodeStatus implements Serializable {
/**更新时间*/
@io.swagger.annotations.ApiModelProperty(value="code提交时间",name="codeTime")
private Date codeTime;
/**审核状态*/
@io.swagger.annotations.ApiModelProperty(value="审核状态(0为审核成功,1为审核失败,2为审核中,3已撤回)",name="auditStatus")
private Integer auditStatus;
@io.swagger.annotations.ApiModelProperty(value="审核错误码",name="auditErrCode")
private String auditErrCode;
/**审核时间*/
@io.swagger.annotations.ApiModelProperty(value="审核时间",name="auditTime")
private Date auditTime;
/**发布状态*/
@io.swagger.annotations.ApiModelProperty(value="发布状态(0:发布成功, 1:发布失败, 2:发布中)",name="releaseStatus")
private Integer releaseStatus;
@io.swagger.annotations.ApiModelProperty(value="发布错误码",name="releaseErrCode")
private String releaseErrCode;
/**发布时间*/
@io.swagger.annotations.ApiModelProperty(value="发布时间",name="releaseTime")
private Date releaseTime;
/**创建时间*/
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime")
private Date createTime;
/**更新时间*/
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateTime")
private Date updateTime;



public static enum Field
{
@@ -73,8 +49,7 @@ public class WxWeappCodeStatus implements Serializable {
,AppId_ASC("`app_id` ASC"),AppId_DESC("`app_id` DESC")
,Type_ASC("`type` ASC"),Type_DESC("`type` DESC")
,UserVersion_ASC("`user_version` ASC"),UserVersion_DESC("`user_version` DESC")
,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC")
,UpdateTime_ASC("`update_time` ASC"),UpdateDate_DESC("`update_time` DESC")
,CodeTime_ASC("`code_time` ASC"),CodeTime_DESC("`code_time` DESC")
;
private String value;
Field(String value){


+ 99
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxWeappReleaseStatus.java Просмотреть файл

@@ -0,0 +1,99 @@
package com.iformall.domain.po;

import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Table(name = "wx_weapp_release_status")
@Data
public class WxWeappReleaseStatus implements Serializable {
private static final long serialVersionUID = 1L;

@Id
protected Long id;

@Transient
protected List<Long> ids;
@Transient
protected String sortColumns;

@io.swagger.annotations.ApiModelProperty(value="小程序ID",name="appId")
private String appId;
@io.swagger.annotations.ApiModelProperty(value="小程序类型(1-B端 2-C端)",name="type")
private Integer type;
@io.swagger.annotations.ApiModelProperty(value="用户版本",name="userVersion")
private String userVersion;
@io.swagger.annotations.ApiModelProperty(value="用户版本描述",name="versionDesc")
private String versionDesc;
@io.swagger.annotations.ApiModelProperty(value="发布状态(0:发布成功, 1:发布失败, 2:发布中, 3:发布撤回)",name="releaseStatus")
private Integer releaseStatus;
@io.swagger.annotations.ApiModelProperty(value="发布错误码",name="releaseErrCode")
private String releaseErrCode;
@io.swagger.annotations.ApiModelProperty(value="发布时间",name="releaseTime")
private Date releaseTime;

public static enum Field
{
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,AppId_ASC("`app_id` ASC"),AppId_DESC("`app_id` DESC")
,Type_ASC("`type` ASC"),Type_DESC("`type` DESC")
,UserVersion_ASC("`user_version` ASC"),UserVersion_DESC("`user_version` DESC")
,ReleaseTime_ASC("`release_time` ASC"),ReleaseTime_DESC("`release_time` DESC")
;
private String value;
Field(String value){
this.value = value;
}
public String getValue() {
return value;
}
public void setCol(String value) {
this.value = value;
}
@Override
public String toString() {
return this.getValue();
}
}

public void setSortColumns(WxWeappReleaseStatus.Field... fields)
{
if (fields == null || fields.length == 0) {
return;
}
for (int k = 0; k < fields.length; k++) {
if (fields[k] == null) {
return;
}
}
StringBuilder sb = new StringBuilder(fields[0].toString());
for (int k = 1; k < fields.length; k++) {
sb.append(",");
sb.append(fields[k].toString());
}
this.sortColumns = sb.toString();
}

public void setSortColumns(String sortColumns)
{
if (sortColumns == null || "".equals(sortColumns.trim())) {
return;
}
if (sortColumns.contains(",")) {
String[] cols = sortColumns.split(",");
List<Field> fList = new ArrayList();
for (int k = 0; k < cols.length; k++) {
fList.add(Field.valueOf(cols[k]));
}
this.setSortColumns(fList.toArray(new Field[fList.size()]));
} else {
this.setSortColumns(Field.valueOf(sortColumns));
}
}
}

+ 14
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxWeappAuditStatusVo.java Просмотреть файл

@@ -0,0 +1,14 @@
package com.iformall.domain.vo;

import com.iformall.domain.po.WxWeappAuditStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
public class WxWeappAuditStatusVo extends WxWeappAuditStatus {
/**小程序名称*/
@io.swagger.annotations.ApiModelProperty(value="小程序名称",name="name")
private String name;
}

+ 14
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxWeappReleaseStatusVo.java Просмотреть файл

@@ -0,0 +1,14 @@
package com.iformall.domain.vo;

import com.iformall.domain.po.WxWeappReleaseStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
public class WxWeappReleaseStatusVo extends WxWeappReleaseStatus {
/**小程序名称*/
@io.swagger.annotations.ApiModelProperty(value="小程序名称",name="name")
private String name;
}

+ 23
- 0
mallinkService/src/main/java/com/iformall/mapper/WxWeappAuditStatusMapper.java Просмотреть файл

@@ -0,0 +1,23 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxWeappAuditStatus;
import com.iformall.domain.vo.WxWeappAuditStatusVo;

import java.util.List;
import java.util.Map;

public interface WxWeappAuditStatusMapper extends CommonMapper<WxWeappAuditStatus, Long> {

List<WxWeappAuditStatus> findList(WxWeappAuditStatus weappAuditStatus);

List<WxWeappAuditStatusVo> findVoList(WxWeappAuditStatusVo weappAuditStatusVo);
List<Map> findUserVersions();

void updateStatus(WxWeappAuditStatus record);

}

+ 2
- 2
mallinkService/src/main/java/com/iformall/mapper/WxWeappCodeStatusMapper.java Просмотреть файл

@@ -9,13 +9,13 @@ import java.util.Map;

public interface WxWeappCodeStatusMapper extends CommonMapper<WxWeappCodeStatus, Long> {

List<WxWeappCodeStatus> findList(WxWeappCodeStatus wxWeappCodeStatus);
List<WxWeappCodeStatus> findList(WxWeappCodeStatus weappCodeStatus);

List<WxWeappCodeStatusVo> findVoList(WxWeappCodeStatusVo weappCodeStatusVo);
List<Map> findUserVersions();

void updateCodeCommitStatus(WxWeappCodeStatus weappCodeStatus);
void updateStatus(WxWeappCodeStatus weappCodeStatus);



+ 24
- 0
mallinkService/src/main/java/com/iformall/mapper/WxWeappReleaseStatusMapper.java Просмотреть файл

@@ -0,0 +1,24 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxWeappReleaseStatus;
import com.iformall.domain.vo.WxWeappCodeStatusVo;
import com.iformall.domain.vo.WxWeappReleaseStatusVo;

import java.util.List;
import java.util.Map;

public interface WxWeappReleaseStatusMapper extends CommonMapper<WxWeappReleaseStatus, Long> {

List<WxWeappReleaseStatus> findList(WxWeappReleaseStatus wxWeappCodeStatus);

List<WxWeappCodeStatusVo> findVoList(WxWeappReleaseStatusVo weappCodeStatusVo);
List<Map> findUserVersions();

void updateStatus(WxWeappReleaseStatus weappCodeStatus);

}

+ 75
- 0
mallinkService/src/main/java/com/iformall/service/WxWeappAuditStatusService.java Просмотреть файл

@@ -0,0 +1,75 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxWeappAuditStatus;
import com.iformall.domain.vo.WxWeappAuditStatusVo;

import java.util.List;
import java.util.Map;

public interface WxWeappAuditStatusService {

/**
* 根据实体查询分页列表
*
* @param record
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<WxWeappAuditStatusVo> listAsPage(WxWeappAuditStatusVo record, Integer pageIndex, Integer pageSize);

/**
* 根据实体查询列表
*
* @param record
* @return
*/
List<WxWeappAuditStatusVo> getList(WxWeappAuditStatusVo record);

/**
* 查询version列表
*
* @return
*/
List<Map> getVersionList();

/**
* 根据Id获得实体
*
* @param id
* @return
*/
WxWeappAuditStatus getById(Long id);

/**
* 根据appId获得实体
*
* @param appId
* @return
*/
WxWeappAuditStatus getByAppId(String appId);

/**
* 保存实体
*
* @param record
*/
void saveStatus(WxWeappAuditStatus record);

/**
* 更新audit Status
*
* @param record
*/
void updateStatus(WxWeappAuditStatus record);

/**
* 根据Id删除实体
*
* @param id
*/
void deleteById(Long id);


}

+ 3
- 17
mallinkService/src/main/java/com/iformall/service/WxWeappCodeStatusService.java Просмотреть файл

@@ -51,32 +51,18 @@ public interface WxWeappCodeStatusService {
WxWeappCodeStatus getByAppId(String appId);

/**
* 保存或更新实体
* 保存实体
*
* @param record
*/
void saveOrUpdate(WxWeappCodeStatus record);
void saveStatus(WxWeappCodeStatus record);

/**
* 更新codeCommit Status
*
* @param record
*/
void updateCodeCommitStatus(WxWeappCodeStatus record);

/**
* 更新audit Status
*
* @param record
*/
void updateAuditStatus(WxWeappCodeStatus record);

/**
* 更新release Status
*
* @param record
*/
void updateReleaseStatus(WxWeappCodeStatus record);
void updateStatus(WxWeappCodeStatus record);

/**
* 根据Id删除实体


+ 69
- 0
mallinkService/src/main/java/com/iformall/service/WxWeappReleaseStatusService.java Просмотреть файл

@@ -0,0 +1,69 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxWeappCodeStatus;
import com.iformall.domain.po.WxWeappReleaseStatus;
import com.iformall.domain.vo.WxWeappCodeStatusVo;
import com.iformall.domain.vo.WxWeappReleaseStatusVo;

import java.util.List;
import java.util.Map;

public interface WxWeappReleaseStatusService {

/**
* 根据实体查询分页列表
*
* @param record
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<WxWeappReleaseStatusVo> listAsPage(WxWeappReleaseStatusVo record, Integer pageIndex, Integer pageSize);

/**
* 查询version列表
*
* @return
*/
List<Map> getVersionList();

/**
* 根据Id获得实体
*
* @param id
* @return
*/
WxWeappReleaseStatus getById(Long id);

/**
* 根据appId获得实体
*
* @param appId
* @return
*/
WxWeappReleaseStatus getByAppId(String appId);

/**
* 保存实体
*
* @param record
*/
void saveStatus(WxWeappReleaseStatus record);

/**
* 更新release Status
*
* @param record
*/
void updateStatus(WxWeappReleaseStatus record);

/**
* 根据Id删除实体
*
* @param id
*/
void deleteById(Long id);


}

+ 80
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxWeappAuditStatusServiceImpl.java Просмотреть файл

@@ -0,0 +1,80 @@
package com.iformall.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxWeappAuditStatus;
import com.iformall.domain.vo.WxWeappAuditStatusVo;
import com.iformall.mapper.WxWeappAuditStatusMapper;
import com.iformall.service.WxWeappAuditStatusService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class WxWeappAuditStatusServiceImpl implements WxWeappAuditStatusService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
WxWeappAuditStatusMapper weappAuditStatusMapper;


@Override
public PageInfo<WxWeappAuditStatusVo> listAsPage(WxWeappAuditStatusVo record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> weappAuditStatusMapper.findVoList(record));
}

@Override
public List<WxWeappAuditStatusVo> getList(WxWeappAuditStatusVo record) {
return weappAuditStatusMapper.findVoList(record);
}

@Override
public List<Map> getVersionList() {
return weappAuditStatusMapper.findUserVersions();
}

@Override
public WxWeappAuditStatus getById(Long id) {
return weappAuditStatusMapper.selectByPrimaryKey(id);
}

@Override
public WxWeappAuditStatus getByAppId(String appId) {
WxWeappAuditStatus statusQ = new WxWeappAuditStatus();
statusQ.setAppId(appId);
return weappAuditStatusMapper.selectOne(statusQ);
}

@Override
public void saveStatus(WxWeappAuditStatus record) {
weappAuditStatusMapper.insertSelective(record);
}

@Override
public void updateStatus(WxWeappAuditStatus record) {
WxWeappAuditStatus updateRecord = new WxWeappAuditStatus();
updateRecord.setId(record.getId());
updateRecord.setAuditStatus(record.getAuditStatus());
updateRecord.setAuditErrCode(record.getAuditErrCode());
updateRecord.setAuditTime(record.getAuditTime());
weappAuditStatusMapper.updateByPrimaryKeySelective(updateRecord);
}

@Override
public void deleteById(Long id) {
weappAuditStatusMapper.deleteByPrimaryKey(id);
}
}

+ 12
- 60
mallinkService/src/main/java/com/iformall/service/impl/WxWeappCodeStatusServiceImpl.java Просмотреть файл

@@ -3,14 +3,11 @@ package com.iformall.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxAuthorizerInfo;
import com.iformall.domain.po.WxWeappCodeStatus;
import com.iformall.domain.vo.WxWeappCodeStatusVo;
import com.iformall.enums.EnumWeappReleaseStatus;
import com.iformall.mapper.WxAuthorizerInfoMapper;
import com.iformall.mapper.WxWeappCodeStatusMapper;
import com.iformall.service.WxWeappCodeStatusService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,105 +22,60 @@ public class WxWeappCodeStatusServiceImpl implements WxWeappCodeStatusService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
WxWeappCodeStatusMapper wxWeappCodeStatusMapper;

@Autowired
WxAuthorizerInfoMapper wxAuthorizerInfoMapper;
WxWeappCodeStatusMapper weappCodeStatusMapper;


@Override
public PageInfo<WxWeappCodeStatusVo> listAsPage(WxWeappCodeStatusVo record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxWeappCodeStatusMapper.findVoList(record));
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> weappCodeStatusMapper.findVoList(record));
}

@Override
public List<WxWeappCodeStatusVo> getList(WxWeappCodeStatusVo record) {
return wxWeappCodeStatusMapper.findVoList(record);
return weappCodeStatusMapper.findVoList(record);
}

@Override
public List<Map> getVersionList() {
return wxWeappCodeStatusMapper.findUserVersions();
return weappCodeStatusMapper.findUserVersions();
}

@Override
public WxWeappCodeStatus getById(Long id) {
return wxWeappCodeStatusMapper.selectByPrimaryKey(id);
return weappCodeStatusMapper.selectByPrimaryKey(id);
}

@Override
public WxWeappCodeStatus getByAppId(String appId) {
WxWeappCodeStatus weappCodeStatusQ = new WxWeappCodeStatus();
weappCodeStatusQ.setAppId(appId);
return wxWeappCodeStatusMapper.selectOne(weappCodeStatusQ);
return weappCodeStatusMapper.selectOne(weappCodeStatusQ);
}

@Override
public void saveOrUpdate(WxWeappCodeStatus record) {
public void saveStatus(WxWeappCodeStatus record) {
Date curDate = new Date();
if (record.getId() == null) {
//record.setId(UUID.randomUUID().toString().replaceAll("-", ""));
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
record.setCreateTime(curDate);
record.setUpdateTime(curDate);
wxWeappCodeStatusMapper.insertSelective(record);
weappCodeStatusMapper.insertSelective(record);
} else {
record.setUpdateTime(curDate);
logger.info("CODE-COMMIT: " + record.toString());
wxWeappCodeStatusMapper.updateCodeCommitStatus(record);
weappCodeStatusMapper.updateStatus(record);
}
}

@Override
public void updateCodeCommitStatus(WxWeappCodeStatus record) {
public void updateStatus(WxWeappCodeStatus record) {
Date curDate = new Date();
record.setUpdateTime(curDate);
logger.info("CODE-COMMIT: " + record.toString());
wxWeappCodeStatusMapper.updateCodeCommitStatus(record);
}

@Override
public void updateAuditStatus(WxWeappCodeStatus record) {
Date curDate = new Date();
WxWeappCodeStatus updateRecord = new WxWeappCodeStatus();
updateRecord.setId(record.getId());
updateRecord.setAuditStatus(record.getAuditStatus());
if (StringUtils.isNotBlank(record.getAuditErrCode())) {
updateRecord.setAuditErrCode(record.getAuditErrCode());
}
updateRecord.setAuditTime(curDate);
updateRecord.setUpdateTime(curDate);
wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord);
}

@Override
public void updateReleaseStatus(WxWeappCodeStatus record) {
Date curDate = new Date();
WxWeappCodeStatus updateRecord = new WxWeappCodeStatus();
updateRecord.setId(record.getId());
updateRecord.setReleaseStatus(record.getReleaseStatus());
if (StringUtils.isNotBlank(record.getReleaseErrCode())) {
updateRecord.setReleaseErrCode(record.getReleaseErrCode());
}
updateRecord.setReleaseTime(curDate);
updateRecord.setUpdateTime(curDate);
wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord);
// 更新 小程序 状态
if(record.getReleaseStatus().equals(EnumWeappReleaseStatus.SUCCESS.getCode())) { // 发布成功
WxAuthorizerInfo updateInfo = new WxAuthorizerInfo();
updateInfo.setAuthorizerAppid(record.getAppId());
updateInfo.setCurrentVersion(record.getUserVersion());
updateInfo.setCurrentDesc(record.getVersionDesc());
updateInfo.setReleaseTime(curDate);
updateInfo.setUpdateTime(curDate);
wxAuthorizerInfoMapper.updateReleaseInfo(updateInfo);
}
weappCodeStatusMapper.updateStatus(record);
}

@Override
public void deleteById(Long id) {
wxWeappCodeStatusMapper.deleteByPrimaryKey(id);
weappCodeStatusMapper.deleteByPrimaryKey(id);
}


+ 106
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxWeappReleaseStatusServiceImpl.java Просмотреть файл

@@ -0,0 +1,106 @@
package com.iformall.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxAuthorizerInfo;
import com.iformall.domain.po.WxWeappCodeStatus;
import com.iformall.domain.po.WxWeappReleaseStatus;
import com.iformall.domain.vo.WxWeappCodeStatusVo;
import com.iformall.domain.vo.WxWeappReleaseStatusVo;
import com.iformall.enums.EnumWeappReleaseStatus;
import com.iformall.mapper.WxAuthorizerInfoMapper;
import com.iformall.mapper.WxWeappReleaseStatusMapper;
import com.iformall.service.WxWeappReleaseStatusService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Service
public class WxWeappReleaseStatusServiceImpl implements WxWeappReleaseStatusService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
WxWeappReleaseStatusMapper weappReleaseStatusMapper;

@Autowired
WxAuthorizerInfoMapper authorizerInfoMapper;


@Override
public PageInfo<WxWeappReleaseStatusVo> listAsPage(WxWeappReleaseStatusVo record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> weappReleaseStatusMapper.findVoList(record));
}

@Override
public List<Map> getVersionList() {
return weappReleaseStatusMapper.findUserVersions();
}

@Override
public WxWeappReleaseStatus getById(Long id) {
return weappReleaseStatusMapper.selectByPrimaryKey(id);
}

@Override
public WxWeappReleaseStatus getByAppId(String appId) {
WxWeappReleaseStatus weappCodeStatusQ = new WxWeappReleaseStatus();
weappCodeStatusQ.setAppId(appId);
return weappReleaseStatusMapper.selectOne(weappCodeStatusQ);
}

@Override
public void saveStatus(WxWeappReleaseStatus record) {
weappReleaseStatusMapper.insertSelective(record);
}

@Override
public void updateStatus(WxWeappReleaseStatus record) {
Date curDate = new Date();
logger.info("RELEASE: " + record.toString());
// 更新 小程序 状态
if(record.getReleaseStatus().equals(EnumWeappReleaseStatus.SUCCESS.getCode())) { // 发布成功
WxAuthorizerInfo updateInfo = new WxAuthorizerInfo();
updateInfo.setAuthorizerAppid(record.getAppId());
updateInfo.setCurrentVersion(record.getUserVersion());
updateInfo.setCurrentDesc(record.getVersionDesc());
updateInfo.setReleaseTime(curDate);
updateInfo.setUpdateTime(curDate);
authorizerInfoMapper.updateReleaseInfo(updateInfo);
}
// 发布回退,退回上次发布状态
if(record.getReleaseStatus().equals(EnumWeappReleaseStatus.BACK.getCode())) {
try {
WxAuthorizerInfo appQ = new WxAuthorizerInfo();
appQ.setAuthorizerAppid(record.getAppId());
WxAuthorizerInfo authorizerInfo = authorizerInfoMapper.selectOne(appQ);
record.setUserVersion(authorizerInfo.getCurrentVersion());
record.setVersionDesc(authorizerInfo.getCurrentDesc());
record.setReleaseTime(authorizerInfo.getReleaseTime());
return;
} catch (Exception e) {
logger.error(e.getMessage());
}
}
weappReleaseStatusMapper.updateStatus(record);
}

@Override
public void deleteById(Long id) {
weappReleaseStatusMapper.deleteByPrimaryKey(id);
}
}

+ 123
- 0
mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml Просмотреть файл

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.iformall.mapper.WxWeappCodeStatusMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxWeappAuditStatus">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="app_id" jdbcType="VARCHAR" property="appId" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="user_version" jdbcType="VARCHAR" property="userVersion" />
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc" />
<result column="auditid" jdbcType="INTEGER" property="auditid" />
<result column="audit_status" jdbcType="INTEGER" property="auditStatus" />
<result column="audit_err_code" jdbcType="VARCHAR" property="auditErrCode" />
<result column="audit_time" jdbcType="TIMESTAMP" property="auditTime" />
</resultMap>
<sql id="allColumns">
`id`,`app_id`,`type`,`user_version`,`version_desc`,
`audit_status`,`audit_err_code`,`audit_time`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1
<if test=" null != id ">
and `id` = #{id}
</if>
<if test=" null != appId ">
and `app_id` = #{appId}
</if>
<if test=" null != type ">
and `type` = #{type}
</if>
<if test=" null != userVersion ">
and `user_version` = #{userVersion}
</if>
<if test=" null != auditid ">
and `auditid` = #{auditid}
</if>
<if test=" null != auditStatus ">
and `audit_status` = #{auditStatus}
</if>
<if test=" null != auditTime ">
and `audit_time` = #{auditTime}
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>
<select id="findList" parameterType="com.iformall.domain.po.WxWeappAuditStatus" resultMap="BaseResultMap">
select <include refid="allColumns" />
from wx_weapp_audit_status
<include refid="dynamicWhereConditions" />
</select>

<resultMap id="VBaseResultMap" type="com.iformall.domain.vo.WxWeappAuditStatusVo">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="app_id" jdbcType="VARCHAR" property="appId" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="user_version" jdbcType="VARCHAR" property="userVersion" />
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc" />
<result column="audit_status" jdbcType="INTEGER" property="auditStatus" />
<result column="audit_err_code" jdbcType="VARCHAR" property="auditErrCode" />
<result column="audit_time" jdbcType="TIMESTAMP" property="auditTime" />
<result column="name" jdbcType="VARCHAR" property="name" />
</resultMap>

<sql id="allVoColumns">
c.`id`,c.`app_id`,c.`type`,c.`user_version`,`version_desc`,
c.`audit_status`,c.`audit_err_code`,c.`audit_time`,
a.`name`
</sql>

<sql id="dynamicVoWhereConditions">
where 1 = 1
<if test=" null != id ">
and c.`id` = #{id}
</if>
<if test=" null != appId ">
and c.`app_id` = #{appId}
</if>
<if test=" null != type ">
and c.`type` = #{type}
</if>
<if test=" null != userVersion ">
and c.`user_version` = #{userVersion}
</if>
<if test=" null != auditStatus ">
and c.`audit_status` = #{auditStatus}
</if>
<if test=" null != auditTime ">
and c.`audit_time` = #{auditTime}
</if>
<if test=" null != name ">
and a.`name` like concat('%', #{name},'%')
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>

<select id="findVoList" parameterType="com.iformall.domain.vo.WxWeappAuditStatusVo" resultMap="VBaseResultMap">
select <include refid="allVoColumns" />
from wx_weapp_audit_status c
left join wx_appinfo a on c.`app_id` = a.`app_id`
<include refid="dynamicVoWhereConditions" />
</select>

<select id="findUserVersions" parameterType="string" resultType="hashmap" >
select user_version as version
from wx_weapp_audit_status
group by user_version
</select>
</mapper>

+ 17
- 56
mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml Просмотреть файл

@@ -6,25 +6,15 @@
<result column="app_id" jdbcType="VARCHAR" property="appId" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="user_version" jdbcType="VARCHAR" property="userVersion" />
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc" />
<result column="code_status" jdbcType="INTEGER" property="codeStatus" />
<result column="code_err_code" jdbcType="VARCHAR" property="codeErrCode" />
<result column="code_time" jdbcType="TIMESTAMP" property="codeTime" />
<result column="audit_status" jdbcType="INTEGER" property="auditStatus" />
<result column="audit_err_code" jdbcType="VARCHAR" property="auditErrCode" />
<result column="audit_time" jdbcType="TIMESTAMP" property="auditTime" />
<result column="release_status" jdbcType="VARCHAR" property="releaseStatus" />
<result column="release_err_code" jdbcType="INTEGER" property="releaseErrCode" />
<result column="release_time" jdbcType="TIMESTAMP" property="releaseTime" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="allColumns">
`id`,`app_id`,`type`,`user_version`,
`code_status`,`code_err_code`,`code_time`,
`audit_status`,`audit_err_code`,`audit_time`,
`release_status`,`release_err_code`,`release_time`,
`create_time`,`update_time`
`id`,`app_id`,`name`,`type`,`user_version`,`version_desc`,
`code_status`,`code_err_code`,`code_time`
</sql>

<sql id="dynamicWhereConditions">
@@ -34,7 +24,10 @@
</if>
<if test=" null != appId ">
and `app_id` = #{appId}
</if>
</if>
<if test=" null != name ">
and `name` = #{appId}
</if>
<if test=" null != type ">
and `type` = #{type}
</if>
@@ -43,19 +36,9 @@
</if>
<if test=" null != codeStatus ">
and `code_status` = #{codeStatus}
</if>
<if test=" null != auditStatus ">
and `audit_status` = #{auditStatus}
</if>
<if test=" null != releaseStatus ">
and `release_status` = #{releaseStatus}
</if>
<if test=" null != createTime ">
and `create_time` = #{createTime}
</if>
<if test=" null != updateTime ">
and `update_time` = #{updateTime}
</if>
<if test=" null != codeTime ">
and `code_time` = #{codeTime}
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
@@ -70,10 +53,10 @@
<include refid="dynamicWhereConditions" />
</select>

<update id="updateCodeCommitStatus" parameterType="com.iformall.domain.po.WxWeappCodeStatus" >
<update id="updateStatus" parameterType="com.iformall.domain.po.WxWeappCodeStatus" >
update wx_weapp_code_status
set `user_version` = #{userVersion}, `code_status` = #{codeStatus}, `code_err_code` = #{codeErrCode}, `code_time` = #{codeTime}, `update_time` = #{updateTime},
`audit_status` = null, `audit_err_code` = null, `audit_time` = null, `release_status` = null, `release_err_code` = null, `release_time` = null
set `user_version` = #{userVersion}, `version_desc`= #{versionDesc}
`code_status` = #{codeStatus}, `code_err_code` = #{codeErrCode}, `code_time` = #{codeTime}
where `app_id` = #{appId} and `type` = #{type}
</update>

@@ -83,26 +66,16 @@
<result column="app_id" jdbcType="VARCHAR" property="appId" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="user_version" jdbcType="VARCHAR" property="userVersion" />
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc" />
<result column="code_status" jdbcType="INTEGER" property="codeStatus" />
<result column="code_err_code" jdbcType="VARCHAR" property="codeErrCode" />
<result column="code_time" jdbcType="TIMESTAMP" property="codeTime" />
<result column="audit_status" jdbcType="INTEGER" property="auditStatus" />
<result column="audit_err_code" jdbcType="VARCHAR" property="auditErrCode" />
<result column="audit_time" jdbcType="TIMESTAMP" property="auditTime" />
<result column="release_status" jdbcType="INTEGER" property="releaseStatus" />
<result column="release_err_code" jdbcType="VARCHAR" property="releaseErrCode" />
<result column="release_time" jdbcType="TIMESTAMP" property="releaseTime" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="name" jdbcType="TIMESTAMP" property="name" />
<result column="name" jdbcType="VARCHAR" property="name" />
</resultMap>

<sql id="allVoColumns">
c.`id`,c.`app_id`,c.`type`,c.`user_version`,
c.`code_status`,c.`code_err_code`,c.`code_time`,
c.`audit_status`,c.`audit_err_code`,c.`audit_time`,
c.`release_status`,c.`release_err_code`,c.`release_time`,
c.`create_time`,c.`update_time`,
c.`id`,c.`app_id`,c.`type`,c.`user_version`,c.`version_desc`
c.`code_status`,c.`code_err_code`,c.`code_time`
a.`name`
</sql>

@@ -123,18 +96,6 @@
<if test=" null != codeStatus ">
and c.`code_status` = #{codeStatus}
</if>
<if test=" null != auditStatus ">
and c.`audit_status` = #{auditStatus}
</if>
<if test=" null != releaseStatus ">
and c.`release_status` = #{releaseStatus}
</if>
<if test=" null != createTime ">
and c.`create_time` = #{createTime}
</if>
<if test=" null != updateTime ">
and c.`update_time` = #{updateTime}
</if>
<if test=" null != name ">
and a.`name` like concat('%', #{name},'%')
</if>


+ 126
- 0
mallinkService/src/main/resources/mapper/WxWeappReleaseStatusMapper.xml Просмотреть файл

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.iformall.mapper.WxWeappCodeStatusMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxWeappReleaseStatus">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="app_id" jdbcType="VARCHAR" property="appId" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="user_version" jdbcType="VARCHAR" property="userVersion" />
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc" />
<result column="release_status" jdbcType="VARCHAR" property="releaseStatus" />
<result column="release_err_code" jdbcType="INTEGER" property="releaseErrCode" />
<result column="release_time" jdbcType="TIMESTAMP" property="releaseTime" />
</resultMap>
<sql id="allColumns">
`id`,`app_id`,`type`,`user_version`,`version_desc`,
`release_status`,`release_err_code`,`release_time`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1
<if test=" null != id ">
and `id` = #{id}
</if>
<if test=" null != appId ">
and `app_id` = #{appId}
</if>
<if test=" null != type ">
and `type` = #{type}
</if>
<if test=" null != userVersion ">
and `user_version` = #{userVersion}
</if>
<if test=" null != releaseStatus ">
and `release_status` = #{releaseStatus}
</if>
<if test=" null != releaseTime ">
and `release_time` = #{releaseTime}
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>
<select id="findList" parameterType="com.iformall.domain.po.WxWeappReleaseStatus" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_weapp_release_status
<include refid="dynamicWhereConditions" />
</select>

<update id="updateStatus" parameterType="com.iformall.domain.po.WxWeappReleaseStatus" >
update wx_weapp_release_status
set `user_version` = #{userVersion},
`release_status` = null, `release_err_code` = null, `release_time` = null
where `app_id` = #{appId} and `type` = #{type}
</update>


<resultMap id="VBaseResultMap" type="com.iformall.domain.vo.WxWeappReleaseStatusVo">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="app_id" jdbcType="VARCHAR" property="appId" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="user_version" jdbcType="VARCHAR" property="userVersion" />
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc" />
<result column="release_status" jdbcType="INTEGER" property="releaseStatus" />
<result column="release_err_code" jdbcType="VARCHAR" property="releaseErrCode" />
<result column="release_time" jdbcType="TIMESTAMP" property="releaseTime" />
<result column="name" jdbcType="TIMESTAMP" property="name" />
</resultMap>

<sql id="allVoColumns">
c.`id`,c.`app_id`,c.`type`,c.`user_version`,c.`version_desc`,
c.`release_status`,c.`release_err_code`,c.`release_time`,
a.`name`
</sql>

<sql id="dynamicVoWhereConditions">
where 1 = 1
<if test=" null != id ">
and c.`id` = #{id}
</if>
<if test=" null != appId ">
and c.`app_id` = #{appId}
</if>
<if test=" null != type ">
and c.`type` = #{type}
</if>
<if test=" null != userVersion ">
and c.`user_version` = #{userVersion}
</if>
<if test=" null != releaseStatus ">
and c.`release_status` = #{releaseStatus}
</if>
<if test=" null != releaseTime ">
and c.`release_time` = #{releaseTime}
</if>
<if test=" null != name ">
and a.`name` like concat('%', #{name},'%')
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>

<select id="findVoList" parameterType="com.iformall.domain.vo.WxWeappReleaseStatusVo" resultMap="VBaseResultMap">
select <include refid="allVoColumns" />
from wx_weapp_release_status c
left join wx_appinfo a on c.`app_id` = a.`app_id`
<include refid="dynamicVoWhereConditions" />
</select>

<select id="findUserVersions" parameterType="string" resultType="hashmap" >
select user_version as version
from wx_weapp_release_status
group by user_version
</select>
</mapper>

+ 9
- 6
mallinkWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java Просмотреть файл

@@ -2,12 +2,14 @@ package com.iformall.controller;

import com.iformall.domain.po.WxAuthorizerInfo;
import com.iformall.domain.po.WxComponentVerifyTicket;
import com.iformall.domain.po.WxWeappAuditStatus;
import com.iformall.domain.po.WxWeappCodeStatus;
import com.iformall.enums.EnumWeappAuditStatus;
import com.iformall.enums.EnumWxAuthorizationInfoType;
import com.iformall.enums.EnumWxAuthorizationStatus;
import com.iformall.service.WxAuthorizerInfoService;
import com.iformall.service.WxComponentVerifyTicketService;
import com.iformall.service.WxWeappAuditStatusService;
import com.iformall.service.WxWeappCodeStatusService;
import com.iformall.service.wechat.WxOpenService;
import io.swagger.annotations.Api;
@@ -49,7 +51,7 @@ public class WechatCalllbackController extends BaseController {
private WxAuthorizerInfoService authorizerInfoService;

@Autowired
private WxWeappCodeStatusService weappCodeStatusService;
private WxWeappAuditStatusService weappAuditStatusService;

@RequestMapping(value = "/notify", method = RequestMethod.POST)
@ApiOperation("接收ticket回调")
@@ -265,14 +267,15 @@ public class WechatCalllbackController extends BaseController {
}

private void updateAuditStatus(String appId, boolean success) {
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId);
if(codeStatus != null) {
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
if(auditStatus != null) {
if(success) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
auditStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
} else {
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
}
weappCodeStatusService.updateAuditStatus(codeStatus);
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
}
}

+ 189
- 91
mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java Просмотреть файл

@@ -7,13 +7,9 @@ import com.google.gson.reflect.TypeToken;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxAppinfo;
import com.iformall.domain.po.WxAuthorizerInfo;
import com.iformall.domain.po.WxWeappCodeStatus;
import com.iformall.domain.po.*;
import com.iformall.enums.*;
import com.iformall.service.WxAppinfoService;
import com.iformall.service.WxAuthorizerInfoService;
import com.iformall.service.WxWeappCodeStatusService;
import com.iformall.service.*;
import com.iformall.service.wechat.WxOpenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -52,6 +48,12 @@ public class WechatWeappCodeController {
@Autowired
private WxWeappCodeStatusService weappCodeStatusService;

@Autowired
private WxWeappAuditStatusService weappAuditStatusService;

@Autowired
private WxWeappReleaseStatusService weappReleaseStatusService;

@Autowired
private WxAppinfoService appinfoService;

@@ -110,7 +112,7 @@ public class WechatWeappCodeController {
codeStatus.setCodeErrCode(gson.toJson(openRet));
}
codeStatus.setCodeTime(new Date());
weappCodeStatusService.saveOrUpdate(codeStatus);
weappCodeStatusService.saveStatus(codeStatus);
} else {
codeStatus.setUserVersion(userVersion);
codeStatus.setVersionDesc(userDesc);
@@ -121,7 +123,7 @@ public class WechatWeappCodeController {
codeStatus.setCodeErrCode(gson.toJson(openRet));
}
codeStatus.setCodeTime(new Date());
weappCodeStatusService.updateCodeCommitStatus(codeStatus);
weappCodeStatusService.updateStatus(codeStatus);
}
return new ResultData(openRet);
} catch (WxErrorException e) {
@@ -137,14 +139,14 @@ public class WechatWeappCodeController {
codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode());
codeStatus.setCodeErrCode(e.getMessage());
codeStatus.setCodeTime(new Date());
weappCodeStatusService.saveOrUpdate(codeStatus);
weappCodeStatusService.saveStatus(codeStatus);
} else {
codeStatus.setUserVersion(userVersion);
codeStatus.setVersionDesc(userDesc);
codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode());
codeStatus.setCodeErrCode(e.getMessage());
codeStatus.setCodeTime(new Date());
weappCodeStatusService.updateCodeCommitStatus(codeStatus);
weappCodeStatusService.updateStatus(codeStatus);
}
return new ResultData(Result.ERROR, e.getMessage());
}
@@ -218,29 +220,68 @@ public class WechatWeappCodeController {
public ResultData submitAudit(String appId, String subMesgStr) {
Gson gson = new GsonBuilder().create();
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId);
try {
WxOpenMaSubmitAuditMessage subMessage = JSON.parseObject(subMesgStr, WxOpenMaSubmitAuditMessage.class);
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage);
logger.info(openRet.toString());
if(codeStatus != null) {
if(codeStatus != null && codeStatus.getCodeStatus().equals(EnumWeappCodeCommitStatus.SUCCESS.getCode())) {
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
boolean submitStatus = false;
String codeErrCode = "";
try {
WxOpenMaSubmitAuditMessage subMessage = JSON.parseObject(subMesgStr, WxOpenMaSubmitAuditMessage.class);
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage);
logger.info(openRet.toString());
if(openRet.isSuccess()) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
submitStatus = true;
codeErrCode = gson.toJson(openRet);
} else {
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setAuditErrCode(gson.toJson(openRet));
submitStatus = false;
codeErrCode = gson.toJson(openRet);
}
weappCodeStatusService.updateAuditStatus(codeStatus);
} catch (WxErrorException e) {
logger.error(e.getMessage());
submitStatus = false;
codeErrCode = e.getMessage();
}
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
if(codeStatus != null) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setAuditErrCode(e.getMessage());
weappCodeStatusService.updateAuditStatus(codeStatus);

if (auditStatus == null) {
auditStatus = new WxWeappAuditStatus();
auditStatus.setId(codeStatus.getId());
auditStatus.setAppId(codeStatus.getAppId());
auditStatus.setType(codeStatus.getType());
auditStatus.setUserVersion(codeStatus.getUserVersion());
auditStatus.setVersionDesc(codeStatus.getVersionDesc());
if(submitStatus) {
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
} else {
auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
}
auditStatus.setAuditErrCode(codeErrCode);
auditStatus.setAuditTime(new Date());
weappAuditStatusService.saveStatus(auditStatus);
} else {
if(!submitStatus) {
if(!auditStatus.getUserVersion().equals(codeStatus.getUserVersion())
&& auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) {
// 提交审核失败不替换当前审核中的数据
return new ResultData(ErrorCode.WEAPP_HAD_AUDITING);
}
codeStatus.setCodeStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setCodeErrCode(codeErrCode);
} else {
codeStatus.setCodeStatus(EnumWeappAuditStatus.AUDITING.getCode());
}
auditStatus.setUserVersion(codeStatus.getUserVersion());
auditStatus.setVersionDesc(codeStatus.getVersionDesc());
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
return new ResultData(Result.ERROR, e.getMessage());
if(submitStatus) {
return new ResultData(codeErrCode);
} else {
return new ResultData(ErrorCode.WEAPP_AUDIT_ERR);
}
} else {
logger.error(ErrorCode.WEAPP_CODE_COMMIT_ERR.getMessage());
return new ResultData(ErrorCode.WEAPP_CODE_COMMIT_ERR);
}
}

@@ -248,49 +289,88 @@ public class WechatWeappCodeController {
@PostMapping("/getAuditstatus")
public ResultData getAuditstatus(String appId, String auditidStr) {
Gson gson = new GsonBuilder().create();
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenMaQueryAuditResult openRet = openMaService.getAuditStatus(Long.valueOf(auditidStr));
logger.info(openRet.toString());
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId);
if(codeStatus != null) {
if(openRet.getStatus().equals(0)) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
} else {
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setAuditErrCode(gson.toJson(openRet));
Long auditId = Long.valueOf(auditidStr);
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
if(auditStatus != null && auditStatus.getAuditid().equals(auditId)) {
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenMaQueryAuditResult openRet = openMaService.getAuditStatus(auditId);
logger.info(openRet.toString());
if (openRet.isSuccess()) {
auditStatus.setAuditid(openRet.getAuditId());
// 审核状态,其中0为审核成功,1为审核失败,2为审核中,3已撤回
switch (openRet.getStatus().intValue()) {
case 0:
auditStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
break;
case 1:
auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
auditStatus.setAuditErrCode(gson.toJson(openRet));
break;
case 2:
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
case 3:
auditStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
break;
default:
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
}
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
weappCodeStatusService.updateAuditStatus(codeStatus);
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
return new ResultData(Result.ERROR, e.getMessage());
}
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
return new ResultData(Result.ERROR, e.getMessage());
}
return new ResultData(Result.ERROR, "auditid不对应");
}

@ApiOperation("查询最新一次提交的审核状态")
@GetMapping("/getLatestAuditstatus")
public ResultData get_latest_auditstatus(String appId) {
Gson gson = new GsonBuilder().create();
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenMaQueryAuditResult openRet = openMaService.getLatestAuditStatus();
logger.info(openRet.toString());
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId);
if(codeStatus != null) {
if(openRet.getStatus().equals(0)) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
} else {
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setAuditErrCode(gson.toJson(openRet));
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
if(auditStatus != null
&& auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) {
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenMaQueryAuditResult openRet = openMaService.getLatestAuditStatus();
logger.info(openRet.toString());
if (openRet.isSuccess()) {
auditStatus.setAuditid(openRet.getAuditId());
// 审核状态,其中0为审核成功,1为审核失败,2为审核中,3已撤回
switch (openRet.getStatus().intValue()) {
case 0:
auditStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
break;
case 1:
auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
auditStatus.setAuditErrCode(gson.toJson(openRet));
break;
case 2:
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
case 3:
auditStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
break;
default:
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
}
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
weappCodeStatusService.updateAuditStatus(codeStatus);
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
return new ResultData(Result.ERROR, e.getMessage());
}
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
return new ResultData(Result.ERROR, e.getMessage());
} else {
return new ResultData(Result.ERROR, "审核状态不是审核中");
}
}

@@ -298,54 +378,71 @@ public class WechatWeappCodeController {
@PostMapping("/releaseAudited")
public ResultData releaesAudited(String appId) {
Gson gson = new GsonBuilder().create();
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId);
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenResult openRet = openMaService.releaesAudited();
logger.info(openRet.toString());
if(codeStatus != null) {
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
if(auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.SUCCESS.getCode())) {
WxWeappReleaseStatus releaseStatus = weappReleaseStatusService.getByAppId(appId);
if(releaseStatus != null) {
// 版本已发布成功,跳过
if(releaseStatus.getUserVersion().equals(auditStatus.getUserVersion())
&& releaseStatus.getReleaseStatus().equals(EnumWeappReleaseStatus.SUCCESS.getCode())) {
return new ResultData(ErrorCode.WEAPP_APP_RELEASEED);
}
} else {
releaseStatus = new WxWeappReleaseStatus();
releaseStatus.setAppId(auditStatus.getAppId());
releaseStatus.setType(auditStatus.getType());
releaseStatus.setUserVersion(auditStatus.getUserVersion());
releaseStatus.setVersionDesc(auditStatus.getVersionDesc());
}
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenResult openRet = openMaService.releaesAudited();
logger.info(openRet.toString());
if(openRet.getErrcode().equals('0')) {
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode());
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode());
releaseStatus.setReleaseTime(new Date());
} else {
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
codeStatus.setReleaseErrCode(gson.toJson(openRet));
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
releaseStatus.setReleaseErrCode(gson.toJson(openRet));
releaseStatus.setReleaseTime(new Date());
}
weappCodeStatusService.updateReleaseStatus(codeStatus);
weappReleaseStatusService.saveStatus(releaseStatus);
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
releaseStatus.setReleaseErrCode(e.getMessage());
weappReleaseStatusService.updateStatus(releaseStatus);
return new ResultData(Result.ERROR, e.getMessage());
}
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
if(codeStatus != null) {
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
codeStatus.setReleaseErrCode(e.getMessage());
weappCodeStatusService.updateReleaseStatus(codeStatus);
}
return new ResultData(Result.ERROR, e.getMessage());
} else {
return new ResultData(ErrorCode.WEAPP_NOT_AUDITED);
}
}

@ApiOperation("小程序版本回退")
@GetMapping("/revertCodeRelease")
public ResultData revertCodeRelease(String appId) {
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId);
WxWeappReleaseStatus releaseStatus = weappReleaseStatusService.getByAppId(appId);
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenResult openRet = openMaService.revertCodeReleaes();
logger.info(openRet.toString());
if(openRet.isSuccess()) {
if(codeStatus != null) {
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.BACK.getCode());
weappCodeStatusService.updateReleaseStatus(codeStatus);
if(releaseStatus != null) {
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.BACK.getCode());
releaseStatus.setReleaseTime(new Date());
weappReleaseStatusService.updateStatus(releaseStatus);
}
return new ResultData();
}
return new ResultData(openRet);
} catch (WxErrorException e) {
logger.error(e.getMessage());
if(codeStatus != null) {
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
codeStatus.setReleaseErrCode(e.getMessage());
weappCodeStatusService.updateReleaseStatus(codeStatus);
if(releaseStatus != null) {
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
releaseStatus.setReleaseErrCode(e.getMessage());
weappReleaseStatusService.updateStatus(releaseStatus);
}
return new ResultData(Result.ERROR, e.getMessage());
}
@@ -385,12 +482,13 @@ public class WechatWeappCodeController {
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenResult openResult = openMaService.undoCodeAudit();
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId);
if(codeStatus != null) {
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
if(auditStatus != null) {
if(openResult.getErrcode().equals('0')) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
auditStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
weappCodeStatusService.updateAuditStatus(codeStatus);
}
return new ResultData();
} catch (WxErrorException e) {


+ 147
- 109
mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java Просмотреть файл

@@ -13,6 +13,7 @@ import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxWeappAuditStatusVo;
import com.iformall.domain.vo.WxWeappCodeStatusVo;
import com.iformall.domain.vo.WxWeappInfo;
import com.iformall.enums.*;
@@ -63,6 +64,12 @@ public class WxWeappInfoController extends BaseController {
@Autowired
private WxWeappCodeStatusService weappCodeStatusService;

@Autowired
private WxWeappAuditStatusService weappAuditStatusService;

@Autowired
private WxWeappReleaseStatusService weappReleaseStatusService;

@Autowired
private WxOpenService openService;

@@ -380,7 +387,12 @@ public class WxWeappInfoController extends BaseController {
}
// 提交审核
if(codeCommitStatus) {
doCodeAudit(appId, extSet, codeStatus);
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
if(auditStatus != null && auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) {
logger.error("审核中不能再提交审核");
return;
}
doCodeAudit(codeStatus, auditStatus, extSet);
}

}
@@ -514,7 +526,12 @@ public class WxWeappInfoController extends BaseController {
codeCommitStatus = true;
}
if(codeCommitStatus) {
doCodeAudit(appId, extSet, codeStatus);
WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
if(auditStatus != null && auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) {
logger.error("审核中不能再提交审核");
return;
}
doCodeAudit(codeStatus, auditStatus, extSet);
} else {
logger.error("CODE提交失败");
}
@@ -562,7 +579,7 @@ public class WxWeappInfoController extends BaseController {
}
codeStatus.setCodeErrCode(codeErrCode);
codeStatus.setCodeTime(new Date());
weappCodeStatusService.saveOrUpdate(codeStatus);
weappCodeStatusService.saveStatus(codeStatus);
} else {
codeStatus.setUserVersion(userVersion);
codeStatus.setVersionDesc(userDesc);
@@ -573,32 +590,64 @@ public class WxWeappInfoController extends BaseController {
codeStatus.setCodeErrCode(codeErrCode);
}
codeStatus.setCodeTime(new Date());
weappCodeStatusService.updateCodeCommitStatus(codeStatus);
weappCodeStatusService.updateStatus(codeStatus);
}
return codeCommitStatus;
}

private void doCodeAudit(String appId, WxWeappExtSet extSet, WxWeappCodeStatus codeStatus) {
private void doCodeAudit(WxWeappCodeStatus codeStatus, WxWeappAuditStatus auditStatus, WxWeappExtSet extSet) {
Gson gson = new GsonBuilder().create();
boolean submitStatus = false;
String codeErrCode = "";
try {
WxOpenMaSubmitAuditMessage subMessage = gson.fromJson(extSet.getReleaseJson(), new TypeToken<WxOpenMaSubmitAuditMessage>() {}.getType());
logger.info(subMessage.toString());
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(codeStatus.getAppId());
WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage);
logger.info(openRet.toString());
if(openRet.isSuccess()) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
weappCodeStatusService.updateAuditStatus(codeStatus);
submitStatus = true;
} else {
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setAuditErrCode(gson.toJson(openRet));
weappCodeStatusService.updateAuditStatus(codeStatus);
submitStatus = false;
codeErrCode = gson.toJson(openRet);
}
} catch (WxErrorException e) {
logger.error(e.getMessage());
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setAuditErrCode(gson.toJson(e.getMessage()));
weappCodeStatusService.updateAuditStatus(codeStatus);
submitStatus = false;
codeErrCode = e.getMessage();
}

if (auditStatus == null) {
auditStatus = new WxWeappAuditStatus();
auditStatus.setId(codeStatus.getId());
auditStatus.setAppId(codeStatus.getAppId());
auditStatus.setType(codeStatus.getType());
auditStatus.setUserVersion(codeStatus.getUserVersion());
auditStatus.setVersionDesc(codeStatus.getVersionDesc());
if(submitStatus) {
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
} else {
auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
}
auditStatus.setAuditErrCode(codeErrCode);
auditStatus.setAuditTime(new Date());
weappAuditStatusService.saveStatus(auditStatus);
} else {
if(!submitStatus) {
if(!auditStatus.getUserVersion().equals(codeStatus.getUserVersion())
&& auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) {
// 提交审核失败不替换当前审核中的数据
return;
}
codeStatus.setCodeStatus(EnumWeappAuditStatus.FAIL.getCode());
codeStatus.setCodeErrCode(codeErrCode);
} else {
codeStatus.setCodeStatus(EnumWeappAuditStatus.AUDITING.getCode());
}
auditStatus.setUserVersion(codeStatus.getUserVersion());
auditStatus.setVersionDesc(codeStatus.getVersionDesc());
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
}

@@ -607,56 +656,45 @@ public class WxWeappInfoController extends BaseController {
@PostMapping("batchAuditQuery")
public ResultData batchAuditQuery(@RequestBody Map<String, String> params) {
logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchAuditQuery");
Gson gson = new GsonBuilder().create();
String version = params.get("version");
WxWeappCodeStatusVo queryVo = new WxWeappCodeStatusVo();
WxWeappAuditStatusVo queryVo = new WxWeappAuditStatusVo();
if(StringUtils.isNotBlank(version)) {
queryVo.setUserVersion(version);
}
List<WxWeappCodeStatusVo> apps = weappCodeStatusService.getList(queryVo);
apps.stream().forEach( app -> {
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(app.getAppId());
if(codeStatus == null) {
return;
}
if(codeStatus.getCodeStatus() == null) {
return;
}
if(!codeStatus.getCodeStatus().equals(EnumWeappCodeCommitStatus.SUCCESS.getCode())) {
return;
}
if(codeStatus.getAuditStatus() == null) {
return;
}
queryVo.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
List<WxWeappAuditStatusVo> apps = weappAuditStatusService.getList(queryVo);
apps.stream().forEach( auditStatus -> {
// 审核中,可以发起审核查询
if(codeStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) {
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(app.getAppId());
WxOpenMaQueryAuditResult openResult = openMaService.getLatestAuditStatus();
logger.info(openResult.toString());
if (openResult.isSuccess()) {
// 审核状态,其中0为审核成功,1为审核失败,2为审核中,3已撤回
switch (openResult.getStatus().intValue()) {
case 0:
codeStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
break;
case 1:
codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
break;
case 2:
codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
case 3:
codeStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
break;
default:
codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
}
weappCodeStatusService.updateAuditStatus(codeStatus);
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(auditStatus.getAppId());
WxOpenMaQueryAuditResult openResult = openMaService.getLatestAuditStatus();
logger.info(openResult.toString());
if (openResult.isSuccess()) {
// 审核状态,其中0为审核成功,1为审核失败,2为审核中,3已撤回
switch (openResult.getStatus().intValue()) {
case 0:
auditStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
break;
case 1:
auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
auditStatus.setAuditErrCode(gson.toJson(openResult));
break;
case 2:
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
case 3:
auditStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
break;
default:
auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
break;
}
} catch (WxErrorException e) {
logger.error(e.getMessage());
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
});
return new ResultData();
@@ -666,28 +704,25 @@ public class WxWeappInfoController extends BaseController {
@PostMapping("batchAuditCancel")
public ResultData batchAuditCancel(@RequestBody Map<String, String> params) {
logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchAuditCancel");
Gson gson = new GsonBuilder().create();
String version = params.get("version");
WxWeappCodeStatusVo queryVo = new WxWeappCodeStatusVo();
WxWeappAuditStatusVo queryVo = new WxWeappAuditStatusVo();
if(StringUtils.isNotBlank(version)) {
queryVo.setUserVersion(version);
}
List<WxWeappCodeStatusVo> apps = weappCodeStatusService.getList(queryVo);
apps.stream().forEach( codeStatus -> {
if(codeStatus.getAuditStatus() == null) {
return;
}
queryVo.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
List<WxWeappAuditStatusVo> apps = weappAuditStatusService.getList(queryVo);
apps.stream().forEach( auditStatus -> {
// 审核通过,已发布不可撤回
if(codeStatus.getAuditStatus().equals(EnumWeappAuditStatus.SUCCESS.getCode())
&& codeStatus.getReleaseStatus().equals(EnumWeappReleaseStatus.SUCCESS.getCode())) {
return;
}
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(codeStatus.getAppId());
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(auditStatus.getAppId());
WxOpenResult openResult = openMaService.undoCodeAudit();
logger.info(openResult.toString());
if(openResult.isSuccess()) {
codeStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
weappCodeStatusService.updateAuditStatus(codeStatus);
auditStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
auditStatus.setAuditErrCode(gson.toJson(openResult));
auditStatus.setAuditTime(new Date());
weappAuditStatusService.updateStatus(auditStatus);
}
} catch (WxErrorException e) {
logger.error(e.getMessage());
@@ -700,48 +735,53 @@ public class WxWeappInfoController extends BaseController {
@PostMapping("batchRelease")
public ResultData batchRelease(@RequestBody Map<String, String> params) {
logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchRelease");
Gson gson = new GsonBuilder().create();
String version = params.get("version");
WxWeappCodeStatusVo queryVo = new WxWeappCodeStatusVo();
WxWeappAuditStatusVo queryVo = new WxWeappAuditStatusVo();
if(StringUtils.isNotBlank(version)) {
queryVo.setUserVersion(version);
}
List<WxWeappCodeStatusVo> apps = weappCodeStatusService.getList(queryVo);
apps.stream().forEach( app -> {
Gson gson = new GsonBuilder().create();
WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(app.getAppId());
if(codeStatus == null) {
return;
}
if(codeStatus.getAuditStatus() == null) {
return;
}
// 已发布不能再发布
if(codeStatus.getReleaseStatus() != null) {
return;
}
// 已审核通过的才可以发布
if(codeStatus.getAuditStatus().equals(EnumWeappAuditStatus.SUCCESS.getCode())) {
try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(app.getAppId());
WxOpenResult openRet = openMaService.releaesAudited();
logger.info(openRet.toString());
boolean releaseSuccess = false;
if(openRet.isSuccess()) {
releaseSuccess = true;
}
if(releaseSuccess) {
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode());
} else {
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
codeStatus.setReleaseErrCode(gson.toJson(openRet));
}
weappCodeStatusService.updateReleaseStatus(codeStatus);
} catch (WxErrorException e) {
logger.error(e.getMessage());
codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
codeStatus.setReleaseErrCode(e.getMessage());
weappCodeStatusService.updateReleaseStatus(codeStatus);
queryVo.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
List<WxWeappAuditStatusVo> apps = weappAuditStatusService.getList(queryVo);
apps.stream().forEach( auditStatus -> {
WxWeappReleaseStatus releaseStatus = weappReleaseStatusService.getByAppId(auditStatus.getAppId());
if(releaseStatus != null) {
// 版本已发布成功,跳过
if(releaseStatus.getUserVersion().equals(version)
&& releaseStatus.getReleaseStatus().equals(EnumWeappReleaseStatus.SUCCESS.getCode())) {
return;
}
} else {
releaseStatus = new WxWeappReleaseStatus();
releaseStatus.setAppId(auditStatus.getAppId());
releaseStatus.setType(auditStatus.getType());
releaseStatus.setUserVersion(auditStatus.getUserVersion());
releaseStatus.setVersionDesc(auditStatus.getVersionDesc());
}

try {
WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(auditStatus.getAppId());
WxOpenResult openRet = openMaService.releaesAudited();
logger.info(openRet.toString());
boolean releaseSuccess = false;
if(openRet.isSuccess()) {
releaseSuccess = true;
}
if(releaseSuccess) {
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode());
releaseStatus.setReleaseTime(new Date());
} else {
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
releaseStatus.setReleaseErrCode(gson.toJson(openRet));
releaseStatus.setReleaseTime(new Date());
}
weappReleaseStatusService.saveStatus(releaseStatus);
} catch (WxErrorException e) {
logger.error(e.getMessage());
releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
releaseStatus.setReleaseErrCode(e.getMessage());
releaseStatus.setReleaseTime(new Date());
weappReleaseStatusService.updateStatus(releaseStatus);
}
});
return new ResultData();
@@ -790,8 +830,6 @@ public class WxWeappInfoController extends BaseController {
return new ResultData(list);
}



/*
* 0. 回调搭建好
* 1. wx_appinfo配置好


Загрузка…
Отмена
Сохранить