| @@ -21,30 +21,30 @@ public class WxAuthorizerInfo implements Serializable { | |||||
| @Transient | @Transient | ||||
| protected String sortColumns; | protected String sortColumns; | ||||
| /**微信公众账号基本信息表id,关联微信公众号基本信息表*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="微信公众账号基本信息表id,关联微信公众号基本信息表",name="officialAccountId") | @io.swagger.annotations.ApiModelProperty(value="微信公众账号基本信息表id,关联微信公众号基本信息表",name="officialAccountId") | ||||
| private Long officialAccountId; | private Long officialAccountId; | ||||
| /**授权方appid*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="授权方appid",name="authorizerAppid") | @io.swagger.annotations.ApiModelProperty(value="授权方appid",name="authorizerAppid") | ||||
| private String authorizerAppid; | private String authorizerAppid; | ||||
| /**授权方头像*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="授权方头像",name="headImg") | @io.swagger.annotations.ApiModelProperty(value="授权方头像",name="headImg") | ||||
| private String headImg; | private String headImg; | ||||
| /**授权方公众号所设置的微信号,可能为空*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="授权方公众号所设置的微信号,可能为空",name="alias") | @io.swagger.annotations.ApiModelProperty(value="授权方公众号所设置的微信号,可能为空",name="alias") | ||||
| private String alias; | private String alias; | ||||
| /**二维码图片的URL,开发者最好自行也进行保存*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="二维码图片的URL,开发者最好自行也进行保存",name="qrcodeUrl") | @io.swagger.annotations.ApiModelProperty(value="二维码图片的URL,开发者最好自行也进行保存",name="qrcodeUrl") | ||||
| private String qrcodeUrl; | private String qrcodeUrl; | ||||
| /**创建时间*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime") | @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime") | ||||
| private Date createTime; | private Date createTime; | ||||
| /**更新时间*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateTime") | @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateTime") | ||||
| private Date updateTime; | private Date updateTime; | ||||
| /**授权状态,0为已授权,1为已取消授权*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="授权状态,0为已授权,1为已取消授权",name="authorizationStatus") | @io.swagger.annotations.ApiModelProperty(value="授权状态,0为已授权,1为已取消授权",name="authorizationStatus") | ||||
| private Integer authorizationStatus; | private Integer authorizationStatus; | ||||
| @io.swagger.annotations.ApiModelProperty(value="授权时间",name="authTime") | |||||
| private Date authTime; | |||||
| @io.swagger.annotations.ApiModelProperty(value="当前版本",name="currentVersion") | |||||
| private String currentVersion; | |||||
| @io.swagger.annotations.ApiModelProperty(value="当前版本描述",name="currentDesc") | |||||
| private String currentDesc; | |||||
| @io.swagger.annotations.ApiModelProperty(value="当前版本发布时间",name="releaseTime") | |||||
| private Date releaseTime; | |||||
| @@ -57,8 +57,12 @@ public class WxAuthorizerInfo implements Serializable { | |||||
| ,Alias_ASC("`alias` ASC"),Alias_DESC("`alias` DESC") | ,Alias_ASC("`alias` ASC"),Alias_DESC("`alias` DESC") | ||||
| ,QrcodeUrl_ASC("`qrcode_url` ASC"),QrcodeUrl_DESC("`qrcode_url` DESC") | ,QrcodeUrl_ASC("`qrcode_url` ASC"),QrcodeUrl_DESC("`qrcode_url` DESC") | ||||
| ,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC") | ,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC") | ||||
| ,Updateime_ASC("`update_time` ASC"),UpdateTime_DESC("`update_time` DESC") | |||||
| ,UpdateTime_ASC("`update_time` ASC"),UpdateTime_DESC("`update_time` DESC") | |||||
| ,AuthorizationStatus_ASC("`authorization_status` ASC"),AuthorizationStatus_DESC("`authorization_status` DESC") | ,AuthorizationStatus_ASC("`authorization_status` ASC"),AuthorizationStatus_DESC("`authorization_status` DESC") | ||||
| ,AuthTime_ASC("`auth_time` ASC"),AuthTime_DESC("`auth_time` DESC") | |||||
| ,CurrentVersion_ASC("`current_version` ASC"),CurrentVersion_DESC("`current_version` DESC") | |||||
| ,CurrentDesc_ASC("`current_desc` ASC"),CurrentDesc_DESC("`current_desc` DESC") | |||||
| ,ReleaseTime_ASC("`release_time` ASC"),ReleaseTime_DESC("`release_time` DESC") | |||||
| ; | ; | ||||
| private String value; | private String value; | ||||
| Field(String value){ | Field(String value){ | ||||
| @@ -35,18 +35,27 @@ public class WxWeappCodeStatus implements Serializable { | |||||
| /**code提交状态*/ | /**code提交状态*/ | ||||
| @io.swagger.annotations.ApiModelProperty(value="code提交状态(0:成功, ...error code)",name="codeStatus") | @io.swagger.annotations.ApiModelProperty(value="code提交状态(0:成功, ...error code)",name="codeStatus") | ||||
| private Integer codeStatus; | private Integer codeStatus; | ||||
| /**更新时间*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="code提交时间",name="codeTime") | |||||
| private Date codeTime; | |||||
| /**审核状态*/ | /**审核状态*/ | ||||
| @io.swagger.annotations.ApiModelProperty(value="审核状态((0为审核成功,1为审核失败,2为审核中,3已撤回))",name="auditStatus") | @io.swagger.annotations.ApiModelProperty(value="审核状态((0为审核成功,1为审核失败,2为审核中,3已撤回))",name="auditStatus") | ||||
| private Integer auditStatus; | private Integer auditStatus; | ||||
| /**审核时间*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="审核时间",name="auditTime") | |||||
| private Date auditTime; | |||||
| /**发布状态*/ | /**发布状态*/ | ||||
| @io.swagger.annotations.ApiModelProperty(value="发布状态((0为发布成功,...error code))",name="releaseStatus") | @io.swagger.annotations.ApiModelProperty(value="发布状态((0为发布成功,...error code))",name="releaseStatus") | ||||
| private Integer releaseStatus; | private Integer releaseStatus; | ||||
| /**发布时间*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="发布时间",name="releaseTime") | |||||
| private Date releaseTime; | |||||
| /**创建时间*/ | /**创建时间*/ | ||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | |||||
| private Date createDate; | |||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime") | |||||
| private Date createTime; | |||||
| /**更新时间*/ | /**更新时间*/ | ||||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | |||||
| private Date updateDate; | |||||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateTime") | |||||
| private Date updateTime; | |||||
| @@ -56,8 +65,8 @@ public class WxWeappCodeStatus implements Serializable { | |||||
| ,AppId_ASC("`app_id` ASC"),AppId_DESC("`app_id` DESC") | ,AppId_ASC("`app_id` ASC"),AppId_DESC("`app_id` DESC") | ||||
| ,Type_ASC("`type` ASC"),Type_DESC("`type` DESC") | ,Type_ASC("`type` ASC"),Type_DESC("`type` DESC") | ||||
| ,UserVersion_ASC("`user_version` ASC"),UserVersion_DESC("`user_version` DESC") | ,UserVersion_ASC("`user_version` ASC"),UserVersion_DESC("`user_version` DESC") | ||||
| ,CreateDate_ASC("`create_date` ASC"),CreateDate_DESC("`create_date` DESC") | |||||
| ,UpdateDate_ASC("`update_date` ASC"),UpdateDate_DESC("`update_date` DESC") | |||||
| ,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC") | |||||
| ,UpdateTime_ASC("`update_time` ASC"),UpdateDate_DESC("`update_time` DESC") | |||||
| ; | ; | ||||
| private String value; | private String value; | ||||
| Field(String value){ | Field(String value){ | ||||
| @@ -1,109 +0,0 @@ | |||||
| package com.iformall.domain.po; | |||||
| import lombok.Data; | |||||
| import javax.persistence.*; | |||||
| import java.util.*; | |||||
| import javax.persistence.Transient; | |||||
| import java.util.List; | |||||
| import javax.persistence.Id; | |||||
| import java.io.Serializable; | |||||
| @Table(name = "wx_weapp_info") | |||||
| @Data | |||||
| public class WxWeappInfo implements Serializable { | |||||
| private static final long serialVersionUID = 1L; | |||||
| @Id | |||||
| protected Long id; | |||||
| @Transient | |||||
| protected List<Long> ids; | |||||
| @Transient | |||||
| protected String sortColumns; | |||||
| /**小程序ID*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="小程序ID",name="appId") | |||||
| private String appId; | |||||
| /**小程序类型(1-B端 2-C端)*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="小程序类型(1-B端 2-C端)",name="type") | |||||
| private Integer type; | |||||
| /**小程序名称*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="小程序名称",name="name") | |||||
| private String name; | |||||
| /**当前版本*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="当前版本",name="currentVersion") | |||||
| private String currentVersion; | |||||
| /**描述*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="描述",name="currentDesc") | |||||
| private String currentDesc; | |||||
| /**创建时间*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | |||||
| private Date createDate; | |||||
| /**更新时间*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | |||||
| private Date updateDate; | |||||
| 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") | |||||
| ,ame_ASC("`name` ASC"),Name_DESC("`name` DESC") | |||||
| ,CurrentVersion_ASC("`current_version` ASC"),CurrentVersion_DESC("`current_version` DESC") | |||||
| ,CurrentDesc_ASC("`current_desc` ASC"),CurrentDesc_DESC("`current_desc` DESC") | |||||
| ,CreateDate_ASC("`create_date` ASC"),CreateDate_DESC("`create_date` DESC") | |||||
| ,UpdateDate_ASC("`update_date` ASC"),UpdateDate_DESC("`update_date` 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(WxWeappInfo.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(","); | |||||
| java.util.List<Field> fList = new java.util.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)); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,17 @@ | |||||
| package com.iformall.domain.vo; | |||||
| import com.iformall.domain.po.WxAuthorizerInfo; | |||||
| import lombok.Data; | |||||
| import lombok.EqualsAndHashCode; | |||||
| @Data | |||||
| @EqualsAndHashCode(callSuper = true) | |||||
| public class WxWeappInfo extends WxAuthorizerInfo { | |||||
| /**小程序类型(1-B端 2-C端)*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="小程序类型(1-B端 2-C端)",name="type") | |||||
| private Integer type; | |||||
| /**小程序名称*/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="小程序名称",name="name") | |||||
| private String name; | |||||
| } | |||||
| @@ -3,10 +3,13 @@ package com.iformall.mapper; | |||||
| import java.util.*; | import java.util.*; | ||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxAuthorizerInfo; | import com.iformall.domain.po.WxAuthorizerInfo; | ||||
| import com.iformall.domain.vo.WxWeappInfo; | |||||
| public interface WxAuthorizerInfoMapper extends CommonMapper<WxAuthorizerInfo, Long> { | public interface WxAuthorizerInfoMapper extends CommonMapper<WxAuthorizerInfo, Long> { | ||||
| List<WxAuthorizerInfo> findList(WxAuthorizerInfo wxAuthorizerInfo); | List<WxAuthorizerInfo> findList(WxAuthorizerInfo wxAuthorizerInfo); | ||||
| List<WxWeappInfo> findVoList(WxWeappInfo wxWeappInfo); | |||||
| @@ -1,16 +0,0 @@ | |||||
| package com.iformall.mapper; | |||||
| import java.util.*; | |||||
| import com.iformall.common.CommonMapper; | |||||
| import com.iformall.domain.po.WxWeappInfo; | |||||
| public interface WxWeappInfoMapper extends CommonMapper<WxWeappInfo, Long> { | |||||
| List<WxWeappInfo> findList(WxWeappInfo wxWeappInfo); | |||||
| } | |||||
| @@ -1,8 +1,10 @@ | |||||
| package com.iformall.service; | package com.iformall.service; | ||||
| import java.util.*; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.domain.po.WxAuthorizerInfo; | import com.iformall.domain.po.WxAuthorizerInfo; | ||||
| import com.iformall.domain.vo.WxWeappInfo; | |||||
| import java.util.List; | |||||
| public interface WxAuthorizerInfoService { | public interface WxAuthorizerInfoService { | ||||
| @@ -15,6 +17,23 @@ public interface WxAuthorizerInfoService { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<WxAuthorizerInfo> listAsPage(WxAuthorizerInfo record, Integer pageIndex, Integer pageSize); | PageInfo<WxAuthorizerInfo> listAsPage(WxAuthorizerInfo record, Integer pageIndex, Integer pageSize); | ||||
| /** | |||||
| * 根据实体查询分页列表 | |||||
| * | |||||
| * @param record | |||||
| * @param pageIndex | |||||
| * @param pageSize | |||||
| * @return | |||||
| */ | |||||
| PageInfo<WxWeappInfo> listVoAsPage(WxWeappInfo record, Integer pageIndex, Integer pageSize); | |||||
| /** | |||||
| * 根据实体查询列表 | |||||
| * @param record | |||||
| * @return | |||||
| */ | |||||
| List<WxWeappInfo> getList(WxWeappInfo record); | |||||
| /** | /** | ||||
| * 根据Id获得实体 | * 根据Id获得实体 | ||||
| @@ -1,47 +0,0 @@ | |||||
| package com.iformall.service; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.domain.po.WxWeappInfo; | |||||
| public interface WxWeappInfoService { | |||||
| /** | |||||
| * 根据实体查询分页列表 | |||||
| * | |||||
| * @param record | |||||
| * @param pageIndex | |||||
| * @param pageSize | |||||
| * @return | |||||
| */ | |||||
| PageInfo<WxWeappInfo> listAsPage(WxWeappInfo record, Integer pageIndex, Integer pageSize); | |||||
| /** | |||||
| * 根据Id获得实体 | |||||
| * | |||||
| * @param id | |||||
| * @return | |||||
| */ | |||||
| WxWeappInfo getById(Long id); | |||||
| /** | |||||
| * 保存或更新实体 | |||||
| * | |||||
| * @param record | |||||
| */ | |||||
| void saveOrUpdate(WxWeappInfo record); | |||||
| /** | |||||
| * 根据Id删除实体 | |||||
| * | |||||
| * @param id | |||||
| */ | |||||
| void deleteById(Long id); | |||||
| } | |||||
| @@ -3,6 +3,7 @@ package com.iformall.service.impl; | |||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.domain.po.WxAuthorizerInfo; | import com.iformall.domain.po.WxAuthorizerInfo; | ||||
| import com.iformall.domain.vo.WxWeappInfo; | |||||
| import com.iformall.mapper.WxAuthorizerInfoMapper; | import com.iformall.mapper.WxAuthorizerInfoMapper; | ||||
| import com.iformall.service.WxAuthorizerInfoService; | import com.iformall.service.WxAuthorizerInfoService; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -12,6 +13,7 @@ import org.springframework.stereotype.Service; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | |||||
| @Service | @Service | ||||
| public class WxAuthorizerInfoServiceImpl implements WxAuthorizerInfoService { | public class WxAuthorizerInfoServiceImpl implements WxAuthorizerInfoService { | ||||
| @@ -26,6 +28,16 @@ public class WxAuthorizerInfoServiceImpl implements WxAuthorizerInfoService { | |||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAuthorizerInfoMapper.findList(record)); | return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAuthorizerInfoMapper.findList(record)); | ||||
| } | } | ||||
| @Override | |||||
| public PageInfo<WxWeappInfo> listVoAsPage(WxWeappInfo record, Integer pageIndex, Integer pageSize) { | |||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAuthorizerInfoMapper.findVoList(record)); | |||||
| } | |||||
| @Override | |||||
| public List<WxWeappInfo> getList(WxWeappInfo record) { | |||||
| return wxAuthorizerInfoMapper.findVoList(record); | |||||
| } | |||||
| @Override | @Override | ||||
| public WxAuthorizerInfo getById(Long id) { | public WxAuthorizerInfo getById(Long id) { | ||||
| return wxAuthorizerInfoMapper.selectByPrimaryKey(id); | return wxAuthorizerInfoMapper.selectByPrimaryKey(id); | ||||
| @@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.WxWeappCodeStatus; | import com.iformall.domain.po.WxWeappCodeStatus; | ||||
| import com.iformall.enums.EnumAuditStatus; | |||||
| import com.iformall.mapper.WxWeappCodeStatusMapper; | import com.iformall.mapper.WxWeappCodeStatusMapper; | ||||
| import com.iformall.service.WxWeappCodeStatusService; | import com.iformall.service.WxWeappCodeStatusService; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -41,11 +42,11 @@ public class WxWeappCodeStatusServiceImpl implements WxWeappCodeStatusService { | |||||
| //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); | //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); | ||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| record.setId(idWorker.nextId()); | record.setId(idWorker.nextId()); | ||||
| record.setCreateDate(new Date()); | |||||
| record.setUpdateDate(new Date()); | |||||
| record.setCreateTime(new Date()); | |||||
| record.setUpdateTime(new Date()); | |||||
| wxWeappCodeStatusMapper.insertSelective(record); | wxWeappCodeStatusMapper.insertSelective(record); | ||||
| } else { | } else { | ||||
| record.setUpdateDate(new Date()); | |||||
| record.setUpdateTime(new Date()); | |||||
| wxWeappCodeStatusMapper.updateByPrimaryKeySelective(record); | wxWeappCodeStatusMapper.updateByPrimaryKeySelective(record); | ||||
| } | } | ||||
| } | } | ||||
| @@ -56,7 +57,9 @@ public class WxWeappCodeStatusServiceImpl implements WxWeappCodeStatusService { | |||||
| updateRecord.setId(record.getId()); | updateRecord.setId(record.getId()); | ||||
| updateRecord.setUserVersion(record.getUserVersion()); | updateRecord.setUserVersion(record.getUserVersion()); | ||||
| updateRecord.setCodeStatus(record.getCodeStatus()); | updateRecord.setCodeStatus(record.getCodeStatus()); | ||||
| updateRecord.setUpdateDate(new Date()); | |||||
| Date curDate = new Date(); | |||||
| updateRecord.setUpdateTime(curDate); | |||||
| updateRecord.setReleaseTime(curDate); | |||||
| wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord); | wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord); | ||||
| } | } | ||||
| @@ -65,7 +68,9 @@ public class WxWeappCodeStatusServiceImpl implements WxWeappCodeStatusService { | |||||
| WxWeappCodeStatus updateRecord = new WxWeappCodeStatus(); | WxWeappCodeStatus updateRecord = new WxWeappCodeStatus(); | ||||
| updateRecord.setId(record.getId()); | updateRecord.setId(record.getId()); | ||||
| updateRecord.setAuditStatus(record.getAuditStatus()); | updateRecord.setAuditStatus(record.getAuditStatus()); | ||||
| updateRecord.setUpdateDate(new Date()); | |||||
| Date curDate = new Date(); | |||||
| updateRecord.setUpdateTime(curDate); | |||||
| updateRecord.setAuditTime(curDate); | |||||
| wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord); | wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord); | ||||
| } | } | ||||
| @@ -74,7 +79,9 @@ public class WxWeappCodeStatusServiceImpl implements WxWeappCodeStatusService { | |||||
| WxWeappCodeStatus updateRecord = new WxWeappCodeStatus(); | WxWeappCodeStatus updateRecord = new WxWeappCodeStatus(); | ||||
| updateRecord.setId(record.getId()); | updateRecord.setId(record.getId()); | ||||
| updateRecord.setReleaseStatus(record.getReleaseStatus()); | updateRecord.setReleaseStatus(record.getReleaseStatus()); | ||||
| updateRecord.setUpdateDate(new Date()); | |||||
| Date curDate = new Date(); | |||||
| updateRecord.setUpdateTime(curDate); | |||||
| updateRecord.setReleaseTime(curDate); | |||||
| wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord); | wxWeappCodeStatusMapper.updateByPrimaryKeySelective(updateRecord); | ||||
| } | } | ||||
| @@ -1,54 +0,0 @@ | |||||
| package com.iformall.service.impl; | |||||
| import java.util.*; | |||||
| import com.github.pagehelper.PageHelper; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.domain.po.WxWeappInfo; | |||||
| import com.iformall.mapper.WxWeappInfoMapper; | |||||
| import com.iformall.service.WxWeappInfoService; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Service; | |||||
| import com.iformall.common.IdWorker; | |||||
| @Service | |||||
| public class WxWeappInfoServiceImpl implements WxWeappInfoService { | |||||
| @Autowired | |||||
| WxWeappInfoMapper wxWeappInfoMapper; | |||||
| @Override | |||||
| public PageInfo<WxWeappInfo> listAsPage(WxWeappInfo record, Integer pageIndex, Integer pageSize) { | |||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxWeappInfoMapper.findList(record)); | |||||
| } | |||||
| @Override | |||||
| public WxWeappInfo getById(Long id) { | |||||
| return wxWeappInfoMapper.selectByPrimaryKey(id); | |||||
| } | |||||
| @Override | |||||
| public void saveOrUpdate(WxWeappInfo record) { | |||||
| if (record.getId() == null) { | |||||
| //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| record.setId(idWorker.nextId()); | |||||
| wxWeappInfoMapper.insertSelective(record); | |||||
| } else { | |||||
| wxWeappInfoMapper.updateByPrimaryKeySelective(record); | |||||
| } | |||||
| } | |||||
| @Override | |||||
| public void deleteById(Long id) { | |||||
| wxWeappInfoMapper.deleteByPrimaryKey(id); | |||||
| } | |||||
| } | |||||
| @@ -36,7 +36,7 @@ | |||||
| </if> | </if> | ||||
| <if test=" null != appId "> | <if test=" null != appId "> | ||||
| and `app_id` like concat('%', #{appId},'%') | |||||
| and `app_id` = #{appId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentAppId "> | <if test=" null != parentAppId "> | ||||
| and `parent_app_id` like concat('%', #{parentAppId},'%') | and `parent_app_id` like concat('%', #{parentAppId},'%') | ||||
| @@ -8,11 +8,16 @@ | |||||
| <result column="alias" jdbcType="VARCHAR" property="alias" /> | <result column="alias" jdbcType="VARCHAR" property="alias" /> | ||||
| <result column="qrcode_url" jdbcType="VARCHAR" property="qrcodeUrl" /> | <result column="qrcode_url" jdbcType="VARCHAR" property="qrcodeUrl" /> | ||||
| <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> | <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> | ||||
| <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> | |||||
| <result column="authorization_status" jdbcType="INTEGER" property="authorizationStatus" /> | <result column="authorization_status" jdbcType="INTEGER" property="authorizationStatus" /> | ||||
| <result column="auth_time" jdbcType="TIMESTAMP" property="authTime" /> | |||||
| <result column="current_version" jdbcType="VARCHAR" property="currentVersion" /> | |||||
| <result column="current_desc" jdbcType="VARCHAR" property="currentDesc" /> | |||||
| <result column="release_time" jdbcType="TIMESTAMP" property="releaseTime" /> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`authorizer_appid`,`head_img`,`alias`,`qrcode_url`,`create_time`,`authorization_status` | |||||
| `id`,`authorizer_appid`,`head_img`,`alias`,`qrcode_url`,`create_time`,`authorization_status`,`auth_time`,`current_version`,`current_desc`,`release_time` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -21,7 +26,7 @@ | |||||
| and `id` = #{id} | and `id` = #{id} | ||||
| </if> | </if> | ||||
| <if test=" null != authorizerAppid "> | <if test=" null != authorizerAppid "> | ||||
| and `authorizer_appid` like concat('%', #{authorizerAppid},'%') | |||||
| and `authorizer_appid` = #{authorizerAppid} | |||||
| </if> | </if> | ||||
| <if test=" null != headImg "> | <if test=" null != headImg "> | ||||
| and `head_img` like concat('%', #{headImg},'%') | and `head_img` like concat('%', #{headImg},'%') | ||||
| @@ -34,10 +39,25 @@ | |||||
| </if> | </if> | ||||
| <if test=" null != createTime "> | <if test=" null != createTime "> | ||||
| and `create_time` = #{createTime} | and `create_time` = #{createTime} | ||||
| </if> | |||||
| </if> | |||||
| <if test=" null != updateTime "> | |||||
| and `update_time` = #{updateTime} | |||||
| </if> | |||||
| <if test=" null != authorizationStatus "> | <if test=" null != authorizationStatus "> | ||||
| and `authorization_status` = #{authorizationStatus} | and `authorization_status` = #{authorizationStatus} | ||||
| </if> | |||||
| </if> | |||||
| <if test=" null != authTime "> | |||||
| and `auth_time` = #{authTime} | |||||
| </if> | |||||
| <if test=" null != currentVersion "> | |||||
| and `current_version` = #{currentVersion} | |||||
| </if> | |||||
| <if test=" null != currentDesc "> | |||||
| and `current_desc` like concat('%', #{currentDesc},'%') | |||||
| </if> | |||||
| <if test=" null != releaseTime "> | |||||
| and `release_time` = #{releaseTime} | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -51,6 +71,61 @@ | |||||
| select <include refid="allColumns" /> from wx_authorizer_info | select <include refid="allColumns" /> from wx_authorizer_info | ||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||
| <resultMap id="VBaseResultMap" type="com.iformall.domain.vo.WxWeappInfo"> | |||||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||||
| <result column="authorizer_appid" jdbcType="VARCHAR" property="authorizerAppid" /> | |||||
| <result column="head_img" jdbcType="VARCHAR" property="headImg" /> | |||||
| <result column="alias" jdbcType="VARCHAR" property="alias" /> | |||||
| <result column="qrcode_url" jdbcType="VARCHAR" property="qrcodeUrl" /> | |||||
| <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> | |||||
| <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> | |||||
| <result column="authorization_status" jdbcType="INTEGER" property="authorizationStatus" /> | |||||
| <result column="auth_time" jdbcType="TIMESTAMP" property="authTime" /> | |||||
| <result column="current_version" jdbcType="VARCHAR" property="currentVersion" /> | |||||
| <result column="current_desc" jdbcType="VARCHAR" property="currentDesc" /> | |||||
| <result column="release_time" jdbcType="TIMESTAMP" property="releaseTime" /> | |||||
| <result column="type" jdbcType="INTEGER" property="type" /> | |||||
| <result column="name" jdbcType="TIMESTAMP" property="name" /> | |||||
| </resultMap> | |||||
| <sql id="allVColumns"> | |||||
| ai.`id`,ai.`authorizer_appid`,ai.`head_img`,ai.`alias`,ai.`qrcode_url`,ai.`create_time`,ai.`update_time`, | |||||
| ai.`authorization_status`,ai.`auth_time`, | |||||
| ai.`current_version`,ai.`current_desc`,ai.`release_time`, | |||||
| a.`type`,a.`name` | |||||
| </sql> | |||||
| <sql id="dynamicVWhereConditions"> | |||||
| where 1 = 1 | |||||
| <if test=" null != id "> | |||||
| and ai.`id` = #{id} | |||||
| </if> | |||||
| <if test=" null != authorizerAppid "> | |||||
| and ai.`authorizer_appid` = #{authorizerAppid} | |||||
| </if> | |||||
| <if test=" null != type "> | |||||
| and a.`type` = #{type} | |||||
| </if> | |||||
| <if test=" null != currentVersion "> | |||||
| and ai.`current_version` = #{currentVersion} | |||||
| </if> | |||||
| <if test=" null != ids "> | |||||
| and ai.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.WxWeappInfo" resultMap="VBaseResultMap"> | |||||
| select <include refid="allVColumns" /> | |||||
| from wx_authorizer_info ai | |||||
| left join wx_appinfo a on ai.`authorizer_appid` = a.app_id | |||||
| <include refid="dynamicVWhereConditions" /> | |||||
| </select> | |||||
| @@ -1,64 +0,0 @@ | |||||
| <?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.WxWeappInfoMapper"> | |||||
| <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxWeappInfo"> | |||||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||||
| <result column="app_id" jdbcType="VARCHAR" property="appId" /> | |||||
| <result column="type" jdbcType="INTEGER" property="type" /> | |||||
| <result column="name" jdbcType="VARCHAR" property="name" /> | |||||
| <result column="current_version" jdbcType="VARCHAR" property="currentVersion" /> | |||||
| <result column="current_desc" jdbcType="VARCHAR" property="currentDesc" /> | |||||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> | |||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | |||||
| </resultMap> | |||||
| <sql id="allColumns"> | |||||
| `id`,`app_id`,`type`,`current_version`,`current_desc`,`create_date`,`update_date` | |||||
| </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 != name "> | |||||
| and `name` = #{name} | |||||
| </if> | |||||
| <if test=" null != currentVersion "> | |||||
| and `current_version` like concat('%', #{currentVersion},'%') | |||||
| </if> | |||||
| <if test=" null != currentDesc "> | |||||
| and `current_desc` like concat('%', #{currentDesc},'%') | |||||
| </if> | |||||
| <if test=" null != createDate "> | |||||
| and `create_date` = #{createDate} | |||||
| </if> | |||||
| <if test=" null != updateDate "> | |||||
| and `update_date` = #{updateDate} | |||||
| </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.WxWeappInfo" resultMap="BaseResultMap"> | |||||
| select <include refid="allColumns" /> from wx_weapp_info | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| </mapper> | |||||
| @@ -2,10 +2,13 @@ package com.iformall.controller; | |||||
| import com.iformall.domain.po.WxAuthorizerInfo; | import com.iformall.domain.po.WxAuthorizerInfo; | ||||
| import com.iformall.domain.po.WxComponentVerifyTicket; | import com.iformall.domain.po.WxComponentVerifyTicket; | ||||
| import com.iformall.domain.po.WxWeappCodeStatus; | |||||
| import com.iformall.enums.EnumAuditStatus; | |||||
| import com.iformall.enums.EnumWxAuthorizationInfoType; | import com.iformall.enums.EnumWxAuthorizationInfoType; | ||||
| import com.iformall.enums.EnumWxAuthorizationStatus; | import com.iformall.enums.EnumWxAuthorizationStatus; | ||||
| import com.iformall.service.WxAuthorizerInfoService; | import com.iformall.service.WxAuthorizerInfoService; | ||||
| import com.iformall.service.WxComponentVerifyTicketService; | import com.iformall.service.WxComponentVerifyTicketService; | ||||
| import com.iformall.service.WxWeappCodeStatusService; | |||||
| import com.iformall.service.wechat.WxOpenService; | import com.iformall.service.wechat.WxOpenService; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| @@ -13,8 +16,10 @@ import me.chanjar.weixin.common.error.WxErrorException; | |||||
| import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; | import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; | ||||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | ||||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | ||||
| import me.chanjar.weixin.open.api.WxOpenMaService; | |||||
| import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage; | import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage; | ||||
| import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult; | import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult; | ||||
| import me.chanjar.weixin.open.bean.result.WxOpenMaQueryAuditResult; | |||||
| import me.chanjar.weixin.open.bean.result.WxOpenQueryAuthResult; | import me.chanjar.weixin.open.bean.result.WxOpenQueryAuthResult; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -37,7 +42,7 @@ public class WechatCalllbackController extends BaseController { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
| @Autowired | @Autowired | ||||
| protected WxOpenService wxOpenService; | |||||
| protected WxOpenService openService; | |||||
| @Autowired | @Autowired | ||||
| private WxComponentVerifyTicketService componentVerifyTicketService; | private WxComponentVerifyTicketService componentVerifyTicketService; | ||||
| @@ -45,6 +50,9 @@ public class WechatCalllbackController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxAuthorizerInfoService authorizerInfoService; | private WxAuthorizerInfoService authorizerInfoService; | ||||
| @Autowired | |||||
| private WxWeappCodeStatusService weappCodeStatusService; | |||||
| @RequestMapping(value = "/notify", method = RequestMethod.POST) | @RequestMapping(value = "/notify", method = RequestMethod.POST) | ||||
| @ApiOperation("接收ticket回调") | @ApiOperation("接收ticket回调") | ||||
| public Object receiveTicket(HttpServletRequest request) throws IOException { | public Object receiveTicket(HttpServletRequest request) throws IOException { | ||||
| @@ -86,13 +94,13 @@ public class WechatCalllbackController extends BaseController { | |||||
| signature, encType, msgSignature, timestamp, nonce, resultxml); | signature, encType, msgSignature, timestamp, nonce, resultxml); | ||||
| if (!StringUtils.equalsIgnoreCase("aes", encType) | if (!StringUtils.equalsIgnoreCase("aes", encType) | ||||
| || !wxOpenService.getWxOpenComponentService().checkSignature(timestamp, nonce, signature)) { | |||||
| || !openService.getWxOpenComponentService().checkSignature(timestamp, nonce, signature)) { | |||||
| throw new IllegalArgumentException("非法请求,可能属于伪造的请求!"); | throw new IllegalArgumentException("非法请求,可能属于伪造的请求!"); | ||||
| } | } | ||||
| // aes加密的消息 | // aes加密的消息 | ||||
| WxOpenXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedXml(resultxml, | WxOpenXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedXml(resultxml, | ||||
| wxOpenService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); | |||||
| openService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); | |||||
| this.logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString()); | this.logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString()); | ||||
| if(inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.COMPONENT_VERIFY_TICKET.getMessage())) { | if(inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.COMPONENT_VERIFY_TICKET.getMessage())) { | ||||
| // 保存component_verify_ticket | // 保存component_verify_ticket | ||||
| @@ -108,10 +116,10 @@ public class WechatCalllbackController extends BaseController { | |||||
| inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.UPDATEAUTHORIZED.getMessage()) | inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.UPDATEAUTHORIZED.getMessage()) | ||||
| ) { | ) { | ||||
| try { | try { | ||||
| WxOpenQueryAuthResult queryAuthResult = wxOpenService.getWxOpenComponentService().getQueryAuth(inMessage.getAuthorizationCode()); | |||||
| WxOpenQueryAuthResult queryAuthResult = openService.getWxOpenComponentService().getQueryAuth(inMessage.getAuthorizationCode()); | |||||
| logger.info("getQueryAuth", queryAuthResult); | logger.info("getQueryAuth", queryAuthResult); | ||||
| WxOpenAuthorizerInfoResult openAuthorizerInfoResult = wxOpenService.getWxOpenComponentService().getAuthorizerInfo( | |||||
| WxOpenAuthorizerInfoResult openAuthorizerInfoResult = openService.getWxOpenComponentService().getAuthorizerInfo( | |||||
| queryAuthResult.getAuthorizationInfo().getAuthorizerAppid()); | queryAuthResult.getAuthorizationInfo().getAuthorizerAppid()); | ||||
| // save auth info | // save auth info | ||||
| authorizerInfoService.saveOrUpdate(new WxAuthorizerInfo(){ | authorizerInfoService.saveOrUpdate(new WxAuthorizerInfo(){ | ||||
| @@ -135,7 +143,7 @@ public class WechatCalllbackController extends BaseController { | |||||
| }); | }); | ||||
| } | } | ||||
| try { | try { | ||||
| String out = wxOpenService.getWxOpenComponentService().route(inMessage); | |||||
| String out = openService.getWxOpenComponentService().route(inMessage); | |||||
| this.logger.debug("\n组装回复信息:{}", out); | this.logger.debug("\n组装回复信息:{}", out); | ||||
| } catch (WxErrorException e) { | } catch (WxErrorException e) { | ||||
| this.logger.error("notify", e); | this.logger.error("notify", e); | ||||
| @@ -173,14 +181,14 @@ public class WechatCalllbackController extends BaseController { | |||||
| + " timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ", | + " timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ", | ||||
| appId, openid, signature, encType, msgSignature, timestamp, nonce, resultxml); | appId, openid, signature, encType, msgSignature, timestamp, nonce, resultxml); | ||||
| if (!StringUtils.equalsIgnoreCase("aes", encType) | if (!StringUtils.equalsIgnoreCase("aes", encType) | ||||
| || !wxOpenService.getWxOpenComponentService().checkSignature(timestamp, nonce, signature)) { | |||||
| || !openService.getWxOpenComponentService().checkSignature(timestamp, nonce, signature)) { | |||||
| throw new IllegalArgumentException("非法请求,可能属于伪造的请求!"); | throw new IllegalArgumentException("非法请求,可能属于伪造的请求!"); | ||||
| } | } | ||||
| String out = ""; | String out = ""; | ||||
| // aes加密的消息 | // aes加密的消息 | ||||
| WxMpXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedMpXml(resultxml, | WxMpXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedMpXml(resultxml, | ||||
| wxOpenService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); | |||||
| openService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); | |||||
| logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString()); | logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString()); | ||||
| // 全网发布测试用例 | // 全网发布测试用例 | ||||
| if (StringUtils.equalsAnyIgnoreCase(appId, "wx570bc396a51b8ff8", "wxd101a85aa106f53e")) { | if (StringUtils.equalsAnyIgnoreCase(appId, "wx570bc396a51b8ff8", "wxd101a85aa106f53e")) { | ||||
| @@ -192,16 +200,16 @@ public class WechatCalllbackController extends BaseController { | |||||
| .fromUser(inMessage.getToUser()) | .fromUser(inMessage.getToUser()) | ||||
| .toUser(inMessage.getFromUser()) | .toUser(inMessage.getFromUser()) | ||||
| .build(), | .build(), | ||||
| wxOpenService.getWxOpenConfigStorage() | |||||
| openService.getWxOpenConfigStorage() | |||||
| ); | ); | ||||
| } else if (StringUtils.startsWith(inMessage.getContent(), "QUERY_AUTH_CODE:")) { | } else if (StringUtils.startsWith(inMessage.getContent(), "QUERY_AUTH_CODE:")) { | ||||
| String msg = inMessage.getContent().replace("QUERY_AUTH_CODE:", "") + "_from_api"; | String msg = inMessage.getContent().replace("QUERY_AUTH_CODE:", "") + "_from_api"; | ||||
| WxMpKefuMessage kefuMessage = WxMpKefuMessage.TEXT().content(msg).toUser(inMessage.getFromUser()).build(); | WxMpKefuMessage kefuMessage = WxMpKefuMessage.TEXT().content(msg).toUser(inMessage.getFromUser()).build(); | ||||
| wxOpenService.getWxOpenComponentService().getWxMpServiceByAppid(appId).getKefuService().sendKefuMessage(kefuMessage); | |||||
| openService.getWxOpenComponentService().getWxMpServiceByAppid(appId).getKefuService().sendKefuMessage(kefuMessage); | |||||
| } | } | ||||
| } else if (StringUtils.equals(inMessage.getMsgType(), "event")) { | } else if (StringUtils.equals(inMessage.getMsgType(), "event")) { | ||||
| WxMpKefuMessage kefuMessage = WxMpKefuMessage.TEXT().content(inMessage.getEvent() + "from_callback").toUser(inMessage.getFromUser()).build(); | WxMpKefuMessage kefuMessage = WxMpKefuMessage.TEXT().content(inMessage.getEvent() + "from_callback").toUser(inMessage.getFromUser()).build(); | ||||
| wxOpenService.getWxOpenComponentService().getWxMpServiceByAppid(appId).getKefuService().sendKefuMessage(kefuMessage); | |||||
| openService.getWxOpenComponentService().getWxMpServiceByAppid(appId).getKefuService().sendKefuMessage(kefuMessage); | |||||
| } | } | ||||
| } catch (WxErrorException e) { | } catch (WxErrorException e) { | ||||
| logger.error("callback", e); | logger.error("callback", e); | ||||
| @@ -209,11 +217,26 @@ public class WechatCalllbackController extends BaseController { | |||||
| } else { | } else { | ||||
| /**判断消息类型,调用对应的方法*/ | /**判断消息类型,调用对应的方法*/ | ||||
| switch (inMessage.getMsgType()){ | switch (inMessage.getMsgType()){ | ||||
| case "event": | |||||
| case "event": { | |||||
| switch (inMessage.getEvent()) { | |||||
| case "weapp_audit_success": { // 审核成功 | |||||
| updateAuditStatus(appId, true); | |||||
| break; | |||||
| } | |||||
| case "weapp_audit_fail": { // 审核失败 | |||||
| updateAuditStatus(appId, false); | |||||
| break; | |||||
| } | |||||
| default: | |||||
| break; | |||||
| } | |||||
| return "success"; | |||||
| } | |||||
| case "text": | case "text": | ||||
| WxMpXmlOutMessage outMessage = wxOpenService.getWxOpenMessageRouter().route(inMessage, appId); | |||||
| WxMpXmlOutMessage outMessage = openService.getWxOpenMessageRouter().route(inMessage, appId); | |||||
| if (outMessage != null) { | if (outMessage != null) { | ||||
| out = WxOpenXmlMessage.wxMpOutXmlMessageToEncryptedXml(outMessage, wxOpenService.getWxOpenConfigStorage()); | |||||
| out = WxOpenXmlMessage.wxMpOutXmlMessageToEncryptedXml(outMessage, openService.getWxOpenConfigStorage()); | |||||
| logger.info(out); | |||||
| } | } | ||||
| /* | /* | ||||
| else { | else { | ||||
| @@ -236,7 +259,19 @@ public class WechatCalllbackController extends BaseController { | |||||
| } | } | ||||
| } | } | ||||
| logger.info(out); | |||||
| return out; | return out; | ||||
| } | } | ||||
| private void updateAuditStatus(String appId, boolean success) { | |||||
| WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); | |||||
| if(codeStatus != null) { | |||||
| if(success) { | |||||
| codeStatus.setAuditStatus(EnumAuditStatus.SUCCESS.getCode()); | |||||
| } else { | |||||
| codeStatus.setAuditStatus(EnumAuditStatus.FAIL.getCode()); | |||||
| } | |||||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -13,6 +13,7 @@ import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.vo.WxWeappInfo; | |||||
| import com.iformall.enums.EnumAppType; | import com.iformall.enums.EnumAppType; | ||||
| import com.iformall.enums.EnumAuditStatus; | import com.iformall.enums.EnumAuditStatus; | ||||
| import com.iformall.enums.EnumTemplateType; | import com.iformall.enums.EnumTemplateType; | ||||
| @@ -27,6 +28,7 @@ import me.chanjar.weixin.open.api.WxOpenMaService; | |||||
| import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo; | import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo; | ||||
| import me.chanjar.weixin.open.bean.message.WxOpenMaSubmitAuditMessage; | import me.chanjar.weixin.open.bean.message.WxOpenMaSubmitAuditMessage; | ||||
| import me.chanjar.weixin.open.bean.result.WxOpenMaDomainResult; | import me.chanjar.weixin.open.bean.result.WxOpenMaDomainResult; | ||||
| import me.chanjar.weixin.open.bean.result.WxOpenMaQueryAuditResult; | |||||
| import me.chanjar.weixin.open.bean.result.WxOpenMaSubmitAuditResult; | import me.chanjar.weixin.open.bean.result.WxOpenMaSubmitAuditResult; | ||||
| import me.chanjar.weixin.open.bean.result.WxOpenResult; | import me.chanjar.weixin.open.bean.result.WxOpenResult; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -49,7 +51,7 @@ public class WxWeappInfoController extends BaseController { | |||||
| private final Logger logger = LoggerFactory.getLogger(getClass()); | private final Logger logger = LoggerFactory.getLogger(getClass()); | ||||
| @Autowired | @Autowired | ||||
| private WxWeappInfoService weappInfoService; | |||||
| private WxAuthorizerInfoService authorizerInfoService; | |||||
| @Autowired | @Autowired | ||||
| private WxWeappBasicSetService weappBasicSetService; | private WxWeappBasicSetService weappBasicSetService; | ||||
| @@ -78,10 +80,21 @@ public class WxWeappInfoController extends BaseController { | |||||
| public ResultData list(@ModelAttribute WxWeappInfo weappInfo, Integer pageNum, Integer pageSize) { | public ResultData list(@ModelAttribute WxWeappInfo weappInfo, Integer pageNum, Integer pageSize) { | ||||
| logger.debug("[" + getIpAddr() + "] WxWeappController::list"); | logger.debug("[" + getIpAddr() + "] WxWeappController::list"); | ||||
| if (null == weappInfo) weappInfo = new WxWeappInfo(); | if (null == weappInfo) weappInfo = new WxWeappInfo(); | ||||
| final PageInfo<WxWeappInfo> page = weappInfoService.listAsPage(weappInfo, pageNum, pageSize); | |||||
| weappInfo.setSortColumns(WxAuthorizerInfo.Field.CurrentVersion_DESC); | |||||
| final PageInfo<WxWeappInfo> page = authorizerInfoService.listVoAsPage(weappInfo, pageNum, pageSize); | |||||
| return new ResultData(page); | return new ResultData(page); | ||||
| } | } | ||||
| @ApiOperation("列表接口") | |||||
| @GetMapping("allist") | |||||
| public ResultData getList(@ModelAttribute WxWeappInfo weappInfo) { | |||||
| logger.debug("[" + getIpAddr() + "] WxWeappController::list"); | |||||
| if (null == weappInfo) weappInfo = new WxWeappInfo(); | |||||
| weappInfo.setSortColumns(WxAuthorizerInfo.Field.CurrentVersion_DESC); | |||||
| final List<WxWeappInfo> list = authorizerInfoService.getList(weappInfo); | |||||
| return new ResultData(list); | |||||
| } | |||||
| @ApiOperation(value = "APPs基础设置(服务器域名、业务域名、基础版本、微信模板)", notes = "{\"apps\":\"appid,appid\",\"type\":\"String\",\"deploy\":\"String\"}") | @ApiOperation(value = "APPs基础设置(服务器域名、业务域名、基础版本、微信模板)", notes = "{\"apps\":\"appid,appid\",\"type\":\"String\",\"deploy\":\"String\"}") | ||||
| @PostMapping("batchBasicSet") | @PostMapping("batchBasicSet") | ||||
| public ResultData batchSet(@RequestBody Map<String, String> params) { | public ResultData batchSet(@RequestBody Map<String, String> params) { | ||||
| @@ -298,6 +311,48 @@ public class WxWeappInfoController extends BaseController { | |||||
| } | } | ||||
| } | } | ||||
| @ApiOperation(value = "批量审核查询", notes = "{\"apps\":\"appid,appid\"}") | |||||
| @PostMapping("batchAuditQuery") | |||||
| public ResultData batchAuditQuery(@RequestBody Map<String, String> params) { | |||||
| String appsStr = params.get("apps"); | |||||
| // 逐一设置app配置 | |||||
| String [] apps = appsStr.split(","); | |||||
| for(String appId: apps) { | |||||
| try { | |||||
| WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); | |||||
| WxOpenMaQueryAuditResult openResult = openMaService.getLatestAuditStatus(); | |||||
| logger.info(openResult.toString()); | |||||
| if(openResult.isSuccess()) { | |||||
| WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); | |||||
| if(codeStatus != null) { | |||||
| // 审核状态,其中0为审核成功,1为审核失败,2为审核中,3已撤回 | |||||
| switch (openResult.getStatus().intValue()) { | |||||
| case 0: | |||||
| codeStatus.setAuditStatus(EnumAuditStatus.SUCCESS.getCode()); | |||||
| break; | |||||
| case 1: | |||||
| codeStatus.setAuditStatus(EnumAuditStatus.FAIL.getCode()); | |||||
| break; | |||||
| case 2: | |||||
| codeStatus.setAuditStatus(EnumAuditStatus.AUDITING.getCode()); | |||||
| break; | |||||
| case 3: | |||||
| codeStatus.setAuditStatus(EnumAuditStatus.UNDO.getCode()); | |||||
| break; | |||||
| default: | |||||
| codeStatus.setAuditStatus(EnumAuditStatus.AUDITING.getCode()); | |||||
| break; | |||||
| } | |||||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||||
| } | |||||
| } | |||||
| } catch (WxErrorException e) { | |||||
| logger.error(e.getMessage()); | |||||
| } | |||||
| } | |||||
| return new ResultData(); | |||||
| } | |||||
| @ApiOperation(value = "批量审核撤回", notes = "{\"apps\":\"appid,appid\"}") | @ApiOperation(value = "批量审核撤回", notes = "{\"apps\":\"appid,appid\"}") | ||||
| @PostMapping("batchAuditCancel") | @PostMapping("batchAuditCancel") | ||||
| public ResultData batchAuditCancel(@RequestBody Map<String, String> params) { | public ResultData batchAuditCancel(@RequestBody Map<String, String> params) { | ||||