diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java index 67a80e1c0..9009d4584 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java @@ -1,6 +1,10 @@ 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 me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult; @@ -29,6 +33,9 @@ public class WechatApiController { @Autowired private WxOpenService wxOpenService; + @Autowired + private WxAuthorizerInfoService wxAuthorizerInfoService; + @GetMapping("/goto_auth_url_show") @ResponseBody public String gotoPreAuthUrlShow() { @@ -54,21 +61,22 @@ public class WechatApiController { try { WxOpenQueryAuthResult queryAuthResult = wxOpenService.getWxOpenComponentService().getQueryAuth(authorizationCode); 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; } catch (WxErrorException e) { logger.error("gotoPreAuthUrl", 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); - } - } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java index bf044b449..f1a1804d3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java @@ -1,19 +1,20 @@ 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.ApiOperation; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; 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 org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -22,7 +23,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; -import java.util.Map; +import java.util.Date; @Controller @RequestMapping("/wxOpen") @@ -33,6 +34,9 @@ public class WechatCalllbackController extends BaseController { @Autowired protected WxOpenService wxOpenService; + @Autowired + private WxComponentVerifyTicketService componentVerifyTicketService; + @RequestMapping(value = "/notify", method = RequestMethod.POST) @ApiOperation("接收ticket回调") public Object receiveTicket(HttpServletRequest request) throws IOException { @@ -56,8 +60,7 @@ public class WechatCalllbackController extends BaseController { String encType = request.getParameter("encrypt_type"); String msgSignature= request.getParameter("msg_signature"); - logger.info( - "\n接收微信请求:[signature=[{}], encType=[{}], msgSignature=[{}]," + logger.info("\n接收微信请求:[signature=[{}], encType=[{}], msgSignature=[{}]," + " timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ", signature, encType, msgSignature, timestamp, nonce, resultxml); @@ -70,6 +73,23 @@ public class WechatCalllbackController extends BaseController { WxOpenXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedXml(resultxml, wxOpenService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); 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 { String out = wxOpenService.getWxOpenComponentService().route(inMessage); this.logger.debug("\n组装回复信息:{}", out); diff --git a/mallinkAdmin/src/main/java/com/iformall/service/WxOpenInRedisDBConfigStorage.java b/mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java similarity index 89% rename from mallinkAdmin/src/main/java/com/iformall/service/WxOpenInRedisDBConfigStorage.java rename to mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java index 6a3c93567..e6c8b8185 100644 --- a/mallinkAdmin/src/main/java/com/iformall/service/WxOpenInRedisDBConfigStorage.java +++ b/mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java @@ -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 org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.util.Pool; @@ -27,6 +31,9 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { private String jsapiTicketKey; private String cardApiTicket; + @Autowired + WxComponentVerifyTicketMapper wxComponentVerifyTicketMapper; + public WxOpenInRedisDBConfigStorage(Pool jedisPool) { this.jedisPool = jedisPool; } @@ -66,6 +73,13 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { jedis.set(this.componentVerifyTicketKey, componentVerifyTicket); } // TODO update to DB + final IdWorker idWorker = IdWorker.get(); + wxComponentVerifyTicketMapper.insert(new WxComponentVerifyTicket() { + { + setComponentVerifyTicket(componentVerifyTicket); + + } + }); } @Override @@ -135,6 +149,7 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { try (Jedis jedis = this.jedisPool.getResource()) { jedis.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0); } + // TODO update to DB } @Override @@ -145,6 +160,16 @@ public class WxOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { // 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 public String getJsapiTicket(String appId) { try (Jedis jedis = this.jedisPool.getResource()) { diff --git a/mallinkAdmin/src/main/java/com/iformall/service/WxOpenService.java b/mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenService.java similarity index 98% rename from mallinkAdmin/src/main/java/com/iformall/service/WxOpenService.java rename to mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenService.java index b305df4b6..aba8d455a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/service/WxOpenService.java +++ b/mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenService.java @@ -1,4 +1,4 @@ -package com.iformall.service; +package com.iformall.service.wechat; import com.iformall.config.RedisProperies; import com.iformall.config.WechatOpenProperties; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java new file mode 100644 index 000000000..5ae21b8be --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java @@ -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 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 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)); + } + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java b/mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java new file mode 100644 index 000000000..3b2ebb9de --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxComponentVerifyTicket.java @@ -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 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 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)); + } + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationInfoType.java b/mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationInfoType.java new file mode 100644 index 000000000..a622eb7de --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationInfoType.java @@ -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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationStatus.java new file mode 100644 index 000000000..a26c35c95 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumWxAuthorizationStatus.java @@ -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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java new file mode 100644 index 000000000..8ad539cb4 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java @@ -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 { + + List findList(WxAuthorizerInfo wxAuthorizerInfo); + + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java new file mode 100644 index 000000000..9bcd7c2ea --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxComponentVerifyTicketMapper.java @@ -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 { + + List findList(WxComponentVerifyTicket wxComponentVerifyTicket); + + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxAuthorizerInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxAuthorizerInfoService.java new file mode 100644 index 000000000..09368db72 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxAuthorizerInfoService.java @@ -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 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); + + + + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxComponentVerifyTicketService.java b/mallinkService/src/main/java/com/iformall/service/WxComponentVerifyTicketService.java new file mode 100644 index 000000000..154ecbebd --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxComponentVerifyTicketService.java @@ -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 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); + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java new file mode 100644 index 000000000..b8f1686b8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java @@ -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 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); + } + + + + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxComponentVerifyTicketServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxComponentVerifyTicketServiceImpl.java new file mode 100644 index 000000000..6c06c6b70 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxComponentVerifyTicketServiceImpl.java @@ -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 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); + } + + + + + + + + +} diff --git a/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml new file mode 100644 index 000000000..b507323ec --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`official_account_id`,`authorizer_appid`,`head_img`,`alias`,`qrcode_url`,`create_time`,`authorization_status` + + + + where 1 = 1 + + and `id` = #{id} + + + and `tenant_id` like concat('%', #{tenantId},'%') + + + and `official_account_id` = #{officialAccountId} + + + and `authorizer_appid` like concat('%', #{authorizerAppid},'%') + + + and `head_img` like concat('%', #{headImg},'%') + + + and `alias` like concat('%', #{alias},'%') + + + and `qrcode_url` like concat('%', #{qrcodeUrl},'%') + + + and `create_time` = #{createTime} + + + and `authorization_status` = #{authorizationStatus} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml b/mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml new file mode 100644 index 000000000..4f0153e96 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxComponentVerifyTicketMapper.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + `id`,`tenant_id`,`component_appid`,`component_verify_ticket`,`create_time`,`deadline` + + + + where 1 = 1 + + and `id` = #{id} + + + and `tenant_id` like concat('%', #{tenantId},'%') + + + and `component_appid` like concat('%', #{componentAppid},'%') + + + and `component_verify_ticket` like concat('%', #{componentVerifyTicket},'%') + + + and `create_time` = #{createTime} + + + and `deadline` = #{deadline} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + +