diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index b7670777e..30ee19267 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/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, "已过期"), /** * 屏广告 diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxWeappAuditStatus.java b/mallinkService/src/main/java/com/iformall/domain/po/WxWeappAuditStatus.java new file mode 100644 index 000000000..d36400456 --- /dev/null +++ b/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 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 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)); + } + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java b/mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java index 5d94a2e60..0ad54b1f6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java +++ b/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){ diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxWeappReleaseStatus.java b/mallinkService/src/main/java/com/iformall/domain/po/WxWeappReleaseStatus.java new file mode 100644 index 000000000..a3d5fe1ce --- /dev/null +++ b/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 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 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)); + } + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappAuditStatusVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappAuditStatusVo.java new file mode 100644 index 000000000..ed9cad7dc --- /dev/null +++ b/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; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappReleaseStatusVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappReleaseStatusVo.java new file mode 100644 index 000000000..6601de595 --- /dev/null +++ b/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; +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxWeappAuditStatusMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxWeappAuditStatusMapper.java new file mode 100644 index 000000000..cbef6fe3c --- /dev/null +++ b/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 { + + List findList(WxWeappAuditStatus weappAuditStatus); + + List findVoList(WxWeappAuditStatusVo weappAuditStatusVo); + + List findUserVersions(); + + void updateStatus(WxWeappAuditStatus record); + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxWeappCodeStatusMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxWeappCodeStatusMapper.java index 87d976846..83a191040 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxWeappCodeStatusMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxWeappCodeStatusMapper.java @@ -9,13 +9,13 @@ import java.util.Map; public interface WxWeappCodeStatusMapper extends CommonMapper { - List findList(WxWeappCodeStatus wxWeappCodeStatus); + List findList(WxWeappCodeStatus weappCodeStatus); List findVoList(WxWeappCodeStatusVo weappCodeStatusVo); List findUserVersions(); - void updateCodeCommitStatus(WxWeappCodeStatus weappCodeStatus); + void updateStatus(WxWeappCodeStatus weappCodeStatus); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxWeappReleaseStatusMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxWeappReleaseStatusMapper.java new file mode 100644 index 000000000..018bbc6c3 --- /dev/null +++ b/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 { + + List findList(WxWeappReleaseStatus wxWeappCodeStatus); + + List findVoList(WxWeappReleaseStatusVo weappCodeStatusVo); + + List findUserVersions(); + + void updateStatus(WxWeappReleaseStatus weappCodeStatus); + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxWeappAuditStatusService.java b/mallinkService/src/main/java/com/iformall/service/WxWeappAuditStatusService.java new file mode 100644 index 000000000..de7724b5d --- /dev/null +++ b/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 listAsPage(WxWeappAuditStatusVo record, Integer pageIndex, Integer pageSize); + + /** + * 根据实体查询列表 + * + * @param record + * @return + */ + List getList(WxWeappAuditStatusVo record); + + /** + * 查询version列表 + * + * @return + */ + List 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); + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxWeappCodeStatusService.java b/mallinkService/src/main/java/com/iformall/service/WxWeappCodeStatusService.java index 75a9a4f5a..a8b2d184e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxWeappCodeStatusService.java +++ b/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删除实体 diff --git a/mallinkService/src/main/java/com/iformall/service/WxWeappReleaseStatusService.java b/mallinkService/src/main/java/com/iformall/service/WxWeappReleaseStatusService.java new file mode 100644 index 000000000..5d382e7d0 --- /dev/null +++ b/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 listAsPage(WxWeappReleaseStatusVo record, Integer pageIndex, Integer pageSize); + + /** + * 查询version列表 + * + * @return + */ + List 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); + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxWeappAuditStatusServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxWeappAuditStatusServiceImpl.java new file mode 100644 index 000000000..95e37332d --- /dev/null +++ b/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 listAsPage(WxWeappAuditStatusVo record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> weappAuditStatusMapper.findVoList(record)); + } + + @Override + public List getList(WxWeappAuditStatusVo record) { + return weappAuditStatusMapper.findVoList(record); + } + + @Override + public List 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); + } + + + + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxWeappCodeStatusServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxWeappCodeStatusServiceImpl.java index ef05cd17c..25cb1fdf5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxWeappCodeStatusServiceImpl.java +++ b/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 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 getList(WxWeappCodeStatusVo record) { - return wxWeappCodeStatusMapper.findVoList(record); + return weappCodeStatusMapper.findVoList(record); } @Override public List 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); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxWeappReleaseStatusServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxWeappReleaseStatusServiceImpl.java new file mode 100644 index 000000000..e8840c0bf --- /dev/null +++ b/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 listAsPage(WxWeappReleaseStatusVo record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> weappReleaseStatusMapper.findVoList(record)); + } + + @Override + public List 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); + } + + + + + + + + +} diff --git a/mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml b/mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml new file mode 100644 index 000000000..8b0163602 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + `id`,`app_id`,`type`,`user_version`,`version_desc`, + `audit_status`,`audit_err_code`,`audit_time` + + + + where 1 = 1 + + and `id` = #{id} + + + and `app_id` = #{appId} + + + and `type` = #{type} + + + and `user_version` = #{userVersion} + + + and `auditid` = #{auditid} + + + and `audit_status` = #{auditStatus} + + + and `audit_time` = #{auditTime} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + + + + + + + + + c.`id`,c.`app_id`,c.`type`,c.`user_version`,`version_desc`, + c.`audit_status`,c.`audit_err_code`,c.`audit_time`, + a.`name` + + + + where 1 = 1 + + and c.`id` = #{id} + + + and c.`app_id` = #{appId} + + + and c.`type` = #{type} + + + and c.`user_version` = #{userVersion} + + + and c.`audit_status` = #{auditStatus} + + + and c.`audit_time` = #{auditTime} + + + and a.`name` like concat('%', #{name},'%') + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml b/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml index 7af4805fd..71e4fada4 100644 --- a/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml @@ -6,25 +6,15 @@ + - - - - - - - - - `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` @@ -34,7 +24,10 @@ and `app_id` = #{appId} - + + + and `name` = #{appId} + and `type` = #{type} @@ -43,19 +36,9 @@ and `code_status` = #{codeStatus} - - - and `audit_status` = #{auditStatus} - - - and `release_status` = #{releaseStatus} - - - and `create_time` = #{createTime} - - - and `update_time` = #{updateTime} - + + and `code_time` = #{codeTime} + and id in @@ -70,10 +53,10 @@ - + 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} @@ -83,26 +66,16 @@ + - - - - - - - - - + - 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` @@ -123,18 +96,6 @@ and c.`code_status` = #{codeStatus} - - and c.`audit_status` = #{auditStatus} - - - and c.`release_status` = #{releaseStatus} - - - and c.`create_time` = #{createTime} - - - and c.`update_time` = #{updateTime} - and a.`name` like concat('%', #{name},'%') diff --git a/mallinkService/src/main/resources/mapper/WxWeappReleaseStatusMapper.xml b/mallinkService/src/main/resources/mapper/WxWeappReleaseStatusMapper.xml new file mode 100644 index 000000000..891d8ca26 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxWeappReleaseStatusMapper.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + `id`,`app_id`,`type`,`user_version`,`version_desc`, + `release_status`,`release_err_code`,`release_time` + + + + where 1 = 1 + + and `id` = #{id} + + + and `app_id` = #{appId} + + + and `type` = #{type} + + + and `user_version` = #{userVersion} + + + and `release_status` = #{releaseStatus} + + + and `release_time` = #{releaseTime} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + 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} + + + + + + + + + + + + + + + + + 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` + + + + where 1 = 1 + + and c.`id` = #{id} + + + and c.`app_id` = #{appId} + + + and c.`type` = #{type} + + + and c.`user_version` = #{userVersion} + + + and c.`release_status` = #{releaseStatus} + + + and c.`release_time` = #{releaseTime} + + + and a.`name` like concat('%', #{name},'%') + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java index 76cdc7264..f5f3d6d92 100644 --- a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java +++ b/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); } } } diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java index 7dd312af8..2b6370a51 100644 --- a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java +++ b/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) { diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java index c68f4066b..a54c6e1c4 100644 --- a/mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java +++ b/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() {}.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 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 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 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 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 apps = weappCodeStatusService.getList(queryVo); - apps.stream().forEach( codeStatus -> { - if(codeStatus.getAuditStatus() == null) { - return; - } + queryVo.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); + List 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 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 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 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配置好