Browse Source

[微信第三方开放平台][新增]:授权保存

release_toaliyun_real
Stormeye Wu 7 years ago
parent
commit
c8aaa5f863
16 changed files with 729 additions and 20 deletions
  1. +20
    -12
      mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java
  2. +26
    -6
      mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java
  3. +26
    -1
      mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java
  4. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenService.java
  5. +110
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java
  6. +98
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java
  7. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationInfoType.java
  8. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationStatus.java
  9. +17
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java
  10. +17
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java
  11. +48
    -0
      mallinkService/src/main/java/com/iformall/service/WxAuthorizerInfoService.java
  12. +41
    -0
      mallinkService/src/main/java/com/iformall/service/WxComponentVerifyTicketService.java
  13. +63
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java
  14. +62
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxComponentVerifyTicketServiceImpl.java
  15. +68
    -0
      mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml
  16. +56
    -0
      mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml

+ 20
- 12
mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java View File

@@ -1,6 +1,10 @@
package com.iformall.controller; package com.iformall.controller;


import com.iformall.service.WxOpenService;
import com.iformall.domain.po.WxAuthorizerInfo;
import com.iformall.enums.EnumWxAuthorizationInfoType;
import com.iformall.enums.EnumWxAuthorizationStatus;
import com.iformall.service.WxAuthorizerInfoService;
import com.iformall.service.wechat.WxOpenService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult; import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult;
@@ -29,6 +33,9 @@ public class WechatApiController {
@Autowired @Autowired
private WxOpenService wxOpenService; private WxOpenService wxOpenService;


@Autowired
private WxAuthorizerInfoService wxAuthorizerInfoService;

@GetMapping("/goto_auth_url_show") @GetMapping("/goto_auth_url_show")
@ResponseBody @ResponseBody
public String gotoPreAuthUrlShow() { public String gotoPreAuthUrlShow() {
@@ -54,21 +61,22 @@ public class WechatApiController {
try { try {
WxOpenQueryAuthResult queryAuthResult = wxOpenService.getWxOpenComponentService().getQueryAuth(authorizationCode); WxOpenQueryAuthResult queryAuthResult = wxOpenService.getWxOpenComponentService().getQueryAuth(authorizationCode);
logger.info("getQueryAuth", queryAuthResult); logger.info("getQueryAuth", queryAuthResult);
WxOpenAuthorizerInfoResult openAuthorizerInfoResult = wxOpenService.getWxOpenComponentService().getAuthorizerInfo(
queryAuthResult.getAuthorizationInfo().getAuthorizerAppid());
// save auth info
wxAuthorizerInfoService.saveOrUpdate(new WxAuthorizerInfo(){
{
setAuthorizerAppid(openAuthorizerInfoResult.getAuthorizationInfo().getAuthorizerAppid());
setAlias(openAuthorizerInfoResult.getAuthorizerInfo().getAlias());
setHeadImg(openAuthorizerInfoResult.getAuthorizerInfo().getHeadImg());
setQrcodeUrl(openAuthorizerInfoResult.getAuthorizerInfo().getQrcodeUrl());
setAuthorizationStatus(EnumWxAuthorizationStatus.AUTHORIZED.getCode());
}
});
return queryAuthResult; return queryAuthResult;
} catch (WxErrorException e) { } catch (WxErrorException e) {
logger.error("gotoPreAuthUrl", e); logger.error("gotoPreAuthUrl", e);
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }

@GetMapping("/get_authorizer_info")
@ResponseBody
public WxOpenAuthorizerInfoResult getAuthorizerInfo(@RequestParam String appId) {
try {
return wxOpenService.getWxOpenComponentService().getAuthorizerInfo(appId);
} catch (WxErrorException e) {
logger.error("getAuthorizerInfo", e);
throw new RuntimeException(e);
}
}
} }

+ 26
- 6
mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java View File

@@ -1,19 +1,20 @@
package com.iformall.controller; package com.iformall.controller;


import com.iformall.service.WxOpenService;
import com.iformall.domain.po.WxComponentVerifyTicket;
import com.iformall.enums.EnumWxAuthorizationInfoType;
import com.iformall.service.WxComponentVerifyTicketService;
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;
import me.chanjar.weixin.common.error.WxErrorException; 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.mp.bean.message.WxMpXmlOutTextMessage;
import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage; import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


@@ -22,7 +23,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.Map;
import java.util.Date;


@Controller @Controller
@RequestMapping("/wxOpen") @RequestMapping("/wxOpen")
@@ -33,6 +34,9 @@ public class WechatCalllbackController extends BaseController {
@Autowired @Autowired
protected WxOpenService wxOpenService; protected WxOpenService wxOpenService;


@Autowired
private WxComponentVerifyTicketService componentVerifyTicketService;

@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 {
@@ -56,8 +60,7 @@ public class WechatCalllbackController extends BaseController {
String encType = request.getParameter("encrypt_type"); String encType = request.getParameter("encrypt_type");
String msgSignature= request.getParameter("msg_signature"); String msgSignature= request.getParameter("msg_signature");


logger.info(
"\n接收微信请求:[signature=[{}], encType=[{}], msgSignature=[{}],"
logger.info("\n接收微信请求:[signature=[{}], encType=[{}], msgSignature=[{}],"
+ " timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ", + " timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ",
signature, encType, msgSignature, timestamp, nonce, resultxml); signature, encType, msgSignature, timestamp, nonce, resultxml);


@@ -70,6 +73,23 @@ public class WechatCalllbackController extends BaseController {
WxOpenXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedXml(resultxml, WxOpenXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedXml(resultxml,
wxOpenService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); wxOpenService.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())) {
// 保存component_verify_ticket
componentVerifyTicketService.saveOrUpdate(new WxComponentVerifyTicket(){
{
setComponentVerifyTicket(inMessage.getComponentVerifyTicket());
setCreateTime(new Date(Long.valueOf(inMessage.getCreateTime() * 1000)));
setComponentAppid(inMessage.getAppId());
setDeadline(new Date(Long.valueOf(System.currentTimeMillis() + (60*60*1000))));
}
});
} else if (inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.AUTHORIZED.getMessage()) ||
inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.UPDATEAUTHORIZED.getMessage())
) {
// TODO
} else if (inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.AUTHORIZED.getMessage())) {
// TODO
}
try { try {
String out = wxOpenService.getWxOpenComponentService().route(inMessage); String out = wxOpenService.getWxOpenComponentService().route(inMessage);
this.logger.debug("\n组装回复信息:{}", out); this.logger.debug("\n组装回复信息:{}", out);


mallinkAdmin/src/main/java/com/iformall/service/WxOpenInRedisDBConfigStorage.java → mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java View File

@@ -1,7 +1,11 @@
package com.iformall.service;
package com.iformall.service.wechat;


import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxComponentVerifyTicket;
import com.iformall.mapper.WxComponentVerifyTicketMapper;
import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage; import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPool;
import redis.clients.util.Pool; import redis.clients.util.Pool;
@@ -27,6 +31,9 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage {
private String jsapiTicketKey; private String jsapiTicketKey;
private String cardApiTicket; private String cardApiTicket;


@Autowired
WxComponentVerifyTicketMapper wxComponentVerifyTicketMapper;

public WxOpenInRedisDBConfigStorage(Pool<Jedis> jedisPool) { public WxOpenInRedisDBConfigStorage(Pool<Jedis> jedisPool) {
this.jedisPool = jedisPool; this.jedisPool = jedisPool;
} }
@@ -66,6 +73,13 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage {
jedis.set(this.componentVerifyTicketKey, componentVerifyTicket); jedis.set(this.componentVerifyTicketKey, componentVerifyTicket);
} }
// TODO update to DB // TODO update to DB
final IdWorker idWorker = IdWorker.get();
wxComponentVerifyTicketMapper.insert(new WxComponentVerifyTicket() {
{
setComponentVerifyTicket(componentVerifyTicket);

}
});
} }


@Override @Override
@@ -135,6 +149,7 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage {
try (Jedis jedis = this.jedisPool.getResource()) { try (Jedis jedis = this.jedisPool.getResource()) {
jedis.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0); jedis.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0);
} }
// TODO update to DB
} }


@Override @Override
@@ -145,6 +160,16 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage {
// TODO update to DB // TODO update to DB
} }


/*
@Override
public void changeAuthorizationStatus(String appId) {
try (Jedis jedis = this.jedisPool.getResource()) {
jedis.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0);
}
// TODO update to DB
}
*/

@Override @Override
public String getJsapiTicket(String appId) { public String getJsapiTicket(String appId) {
try (Jedis jedis = this.jedisPool.getResource()) { try (Jedis jedis = this.jedisPool.getResource()) {

mallinkAdmin/src/main/java/com/iformall/service/WxOpenService.java → mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenService.java View File

@@ -1,4 +1,4 @@
package com.iformall.service;
package com.iformall.service.wechat;


import com.iformall.config.RedisProperies; import com.iformall.config.RedisProperies;
import com.iformall.config.WechatOpenProperties; import com.iformall.config.WechatOpenProperties;

+ 110
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java View File

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

import lombok.Data;
import javax.persistence.*;
import java.util.*;
import java.math.*;
import javax.persistence.Transient;
import java.util.List;
import javax.persistence.Id;
import java.io.Serializable;

@Table(name = "wx_authorizer_info")
@Data
public class WxAuthorizerInfo 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="officialAccountId")
private Long officialAccountId;
/**授权方appid*/
@io.swagger.annotations.ApiModelProperty(value="授权方appid",name="authorizerAppid")
private String authorizerAppid;
/**授权方头像*/
@io.swagger.annotations.ApiModelProperty(value="授权方头像",name="headImg")
private String headImg;
/**授权方公众号所设置的微信号,可能为空*/
@io.swagger.annotations.ApiModelProperty(value="授权方公众号所设置的微信号,可能为空",name="alias")
private String alias;
/**二维码图片的URL,开发者最好自行也进行保存*/
@io.swagger.annotations.ApiModelProperty(value="二维码图片的URL,开发者最好自行也进行保存",name="qrcodeUrl")
private String qrcodeUrl;
/**创建时间*/
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime")
private Date createTime;
/**授权状态,0为已授权,1为已取消授权*/
@io.swagger.annotations.ApiModelProperty(value="授权状态,0为已授权,1为已取消授权",name="authorizationStatus")
private Integer authorizationStatus;



public static enum Field
{
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,OfficialAccountId_ASC("`official_account_id` ASC"),OfficialAccountId_DESC("`official_account_id` DESC")
,AuthorizerAppid_ASC("`authorizer_appid` ASC"),AuthorizerAppid_DESC("`authorizer_appid` DESC")
,HeadImg_ASC("`head_img` ASC"),HeadImg_DESC("`head_img` DESC")
,Alias_ASC("`alias` ASC"),Alias_DESC("`alias` DESC")
,QrcodeUrl_ASC("`qrcode_url` ASC"),QrcodeUrl_DESC("`qrcode_url` DESC")
,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC")
,AuthorizationStatus_ASC("`authorization_status` ASC"),AuthorizationStatus_DESC("`authorization_status` 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(WxAuthorizerInfo.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));
}
}
}

+ 98
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java View File

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

import lombok.Data;
import javax.persistence.*;
import java.util.*;
import java.math.*;
import javax.persistence.Transient;
import java.util.List;
import javax.persistence.Id;
import java.io.Serializable;

@Table(name = "wx_component_verify_ticket")
@Data
public class WxComponentVerifyTicket implements Serializable {
private static final long serialVersionUID = 1L;
@Id
protected Long id;
@Transient
protected List<Long> ids;
@Transient
protected String sortColumns;
/**微信第三方componentAppid*/
@io.swagger.annotations.ApiModelProperty(value="微信第三方componentAppid",name="componentAppid")
private String componentAppid;
/**微信第三方component_verify_ticket*/
@io.swagger.annotations.ApiModelProperty(value="微信第三方component_verify_ticket",name="componentVerifyTicket")
private String componentVerifyTicket;
/**创建时间*/
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime")
private Date createTime;
/**失效时间*/
@io.swagger.annotations.ApiModelProperty(value="失效时间",name="deadline")
private Date deadline;



public static enum Field
{
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,ComponentAppid_ASC("`component_appid` ASC"),ComponentAppid_DESC("`component_appid` DESC")
,ComponentVerifyTicket_ASC("`component_verify_ticket` ASC"),ComponentVerifyTicket_DESC("`component_verify_ticket` DESC")
,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC")
,Deadline_ASC("`deadline` ASC"),Deadline_DESC("`deadline` 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(WxComponentVerifyTicket.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));
}
}
}

+ 38
- 0
mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationInfoType.java View File

@@ -0,0 +1,38 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumWxAuthorizationInfoType {

COMPONENT_VERIFY_TICKET(1, "component_verify_ticket"),
UNAUTHORIZED(2, "unauthorized"),
AUTHORIZED(3, "authorized"),
UPDATEAUTHORIZED(4, "updateauthorized")
;

public static EnumWxAuthorizationInfoType getEnum(Integer code) {
for (EnumWxAuthorizationInfoType value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumWxAuthorizationInfoType(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 38
- 0
mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationStatus.java View File

@@ -0,0 +1,38 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumWxAuthorizationStatus {

// 0-authorized, 1-unauthorized

AUTHORIZED(0, "authorized"),
UNAUTHORIZED(1, "unauthorized")
;

public static EnumWxAuthorizationStatus getEnum(Integer code) {
for (EnumWxAuthorizationStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumWxAuthorizationStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 17
- 0
mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java View File

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

import java.util.*;
import com.iformall.common.CommonMapper;
import org.apache.ibatis.annotations.Param;
import com.iformall.domain.po.WxAuthorizerInfo;

public interface WxAuthorizerInfoMapper extends CommonMapper<WxAuthorizerInfo, Long> {

List<WxAuthorizerInfo> findList(WxAuthorizerInfo wxAuthorizerInfo);

}

+ 17
- 0
mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java View File

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

import java.util.*;
import com.iformall.common.CommonMapper;
import org.apache.ibatis.annotations.Param;
import com.iformall.domain.po.WxComponentVerifyTicket;

public interface WxComponentVerifyTicketMapper extends CommonMapper<WxComponentVerifyTicket, Long> {

List<WxComponentVerifyTicket> findList(WxComponentVerifyTicket wxComponentVerifyTicket);

}

+ 48
- 0
mallinkService/src/main/java/com/iformall/service/WxAuthorizerInfoService.java View File

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

import java.util.*;
import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxAuthorizerInfo;

public interface WxAuthorizerInfoService {

/**
* 根据实体查询分页列表
*
* @param record
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<WxAuthorizerInfo> listAsPage(WxAuthorizerInfo record, Integer pageIndex, Integer pageSize);
/**
* 根据Id获得实体
*
* @param id
* @return
*/
WxAuthorizerInfo getById(Long id);
/**
* 保存或更新实体
*
* @param record
*/
void saveOrUpdate(WxAuthorizerInfo record);

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

}

+ 41
- 0
mallinkService/src/main/java/com/iformall/service/WxComponentVerifyTicketService.java View File

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

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxComponentVerifyTicket;

public interface WxComponentVerifyTicketService {

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

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

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

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


}

+ 63
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java View File

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

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxAuthorizerInfo;
import com.iformall.mapper.WxAuthorizerInfoMapper;
import com.iformall.service.WxAuthorizerInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.iformall.common.IdWorker;

@Service
public class WxAuthorizerInfoServiceImpl implements WxAuthorizerInfoService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
WxAuthorizerInfoMapper wxAuthorizerInfoMapper;


@Override
public PageInfo<WxAuthorizerInfo> listAsPage(WxAuthorizerInfo record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAuthorizerInfoMapper.findList(record));
}

@Override
public WxAuthorizerInfo getById(Long id) {
return wxAuthorizerInfoMapper.selectByPrimaryKey(id);
}

@Override
public void saveOrUpdate(WxAuthorizerInfo record) {
WxAuthorizerInfo authorizerInfo = null;
try {
authorizerInfo = wxAuthorizerInfoMapper.selectOne(record);
} catch (Exception e) {
logger.error(e.getMessage());
}
if (authorizerInfo == null) {
//record.setId(UUID.randomUUID().toString().replaceAll("-", ""));
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
wxAuthorizerInfoMapper.insertSelective(record);
} else {
record.setId(authorizerInfo.getId());
wxAuthorizerInfoMapper.updateByPrimaryKeySelective(record);
}
}

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

+ 62
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxComponentVerifyTicketServiceImpl.java View File

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

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxComponentVerifyTicket;
import com.iformall.mapper.WxComponentVerifyTicketMapper;
import com.iformall.service.WxComponentVerifyTicketService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.iformall.common.IdWorker;

@Service
public class WxComponentVerifyTicketServiceImpl implements WxComponentVerifyTicketService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
WxComponentVerifyTicketMapper wxComponentVerifyTicketMapper;


@Override
public PageInfo<WxComponentVerifyTicket> listAsPage(WxComponentVerifyTicket record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxComponentVerifyTicketMapper.findList(record));
}

@Override
public WxComponentVerifyTicket getById(Long id) {
return wxComponentVerifyTicketMapper.selectByPrimaryKey(id);
}

@Override
public void saveOrUpdate(WxComponentVerifyTicket record) {
WxComponentVerifyTicket wxComponentVerifyTicket = null;
try {
wxComponentVerifyTicket = wxComponentVerifyTicketMapper.selectOne(record);
} catch (Exception e) {
logger.error(e.getMessage());
}
if (wxComponentVerifyTicket == null) {
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
wxComponentVerifyTicketMapper.insertSelective(record);
} else {
record.setId(wxComponentVerifyTicket.getId());
wxComponentVerifyTicketMapper.updateByPrimaryKeySelective(record);
}
}

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

+ 68
- 0
mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml View File

@@ -0,0 +1,68 @@
<?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.WxAuthorizerInfoMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxAuthorizerInfo">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId" />
<result column="official_account_id" jdbcType="BIGINT" property="officialAccountId" />
<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="authorization_status" jdbcType="INTEGER" property="authorizationStatus" />
</resultMap>
<sql id="allColumns">
`id`,`tenant_id`,`official_account_id`,`authorizer_appid`,`head_img`,`alias`,`qrcode_url`,`create_time`,`authorization_status`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1
<if test=" null != id ">
and `id` = #{id}
</if>
<if test=" null != tenantId ">
and `tenant_id` like concat('%', #{tenantId},'%')
</if>
<if test=" null != officialAccountId ">
and `official_account_id` = #{officialAccountId}
</if>
<if test=" null != authorizerAppid ">
and `authorizer_appid` like concat('%', #{authorizerAppid},'%')
</if>
<if test=" null != headImg ">
and `head_img` like concat('%', #{headImg},'%')
</if>
<if test=" null != alias ">
and `alias` like concat('%', #{alias},'%')
</if>
<if test=" null != qrcodeUrl ">
and `qrcode_url` like concat('%', #{qrcodeUrl},'%')
</if>
<if test=" null != createTime ">
and `create_time` = #{createTime}
</if>
<if test=" null != authorizationStatus ">
and `authorization_status` = #{authorizationStatus}
</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.WxAuthorizerInfo" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_authorizer_info
<include refid="dynamicWhereConditions" />
</select>
</mapper>

+ 56
- 0
mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml View File

@@ -0,0 +1,56 @@
<?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.WxComponentVerifyTicketMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxComponentVerifyTicket">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId" />
<result column="component_appid" jdbcType="VARCHAR" property="componentAppid" />
<result column="component_verify_ticket" jdbcType="VARCHAR" property="componentVerifyTicket" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="deadline" jdbcType="TIMESTAMP" property="deadline" />
</resultMap>
<sql id="allColumns">
`id`,`tenant_id`,`component_appid`,`component_verify_ticket`,`create_time`,`deadline`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1
<if test=" null != id ">
and `id` = #{id}
</if>
<if test=" null != tenantId ">
and `tenant_id` like concat('%', #{tenantId},'%')
</if>
<if test=" null != componentAppid ">
and `component_appid` like concat('%', #{componentAppid},'%')
</if>
<if test=" null != componentVerifyTicket ">
and `component_verify_ticket` like concat('%', #{componentVerifyTicket},'%')
</if>
<if test=" null != createTime ">
and `create_time` = #{createTime}
</if>
<if test=" null != deadline ">
and `deadline` = #{deadline}
</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.WxComponentVerifyTicket" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_component_verify_ticket
<include refid="dynamicWhereConditions" />
</select>
</mapper>

Loading…
Cancel
Save