Browse Source

Merge branch 'mp-server-test' into 'master'

Mp server test

See merge request quanshu/mp-server!655
zhong chunping 2 years ago
parent
commit
41ee0ce148
22 changed files with 479 additions and 16 deletions
  1. 2 1
      mp-admin/src/main/java/com/qs/mp/handler/auth/SignInterceptor.java
  2. 3 2
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java
  3. 97 0
      mp-admin/src/main/java/com/qs/mp/web/controller/api/open/LinkController.java
  4. 2 1
      mp-framework/src/main/java/com/qs/mp/framework/config/SecurityConfig.java
  5. 9 0
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketAwardsPrizeMapper.java
  6. 8 0
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketAwardsPrizeService.java
  7. 5 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketAwardsPrizeServiceImpl.java
  8. 1 0
      mp-service/src/main/java/com/qs/mp/framework/redis/RedisKey.java
  9. 1 1
      mp-service/src/main/java/com/qs/mp/framework/service/impl/WxUrlLinkServiceImpl.java
  10. 81 0
      mp-service/src/main/java/com/qs/mp/open/domain/ApiCallLog.java
  11. 74 0
      mp-service/src/main/java/com/qs/mp/open/domain/IpWhitelist.java
  12. 26 0
      mp-service/src/main/java/com/qs/mp/open/domain/param/SchemeParam.java
  13. 13 0
      mp-service/src/main/java/com/qs/mp/open/mapper/ApiCallLogMapper.java
  14. 13 0
      mp-service/src/main/java/com/qs/mp/open/mapper/IpWhitelistMapper.java
  15. 16 0
      mp-service/src/main/java/com/qs/mp/open/service/IApiCallLogService.java
  16. 16 0
      mp-service/src/main/java/com/qs/mp/open/service/IIpWhitelistService.java
  17. 20 0
      mp-service/src/main/java/com/qs/mp/open/service/impl/ApiCallLogServiceImpl.java
  18. 20 0
      mp-service/src/main/java/com/qs/mp/open/service/impl/IpWhitelistServiceImpl.java
  19. 14 9
      mp-service/src/main/java/com/qs/mp/user/service/impl/UserHitPrizeServiceImpl.java
  20. 17 2
      mp-service/src/main/resources/mapper/admin/TicketAwardsPrizeMapper.xml
  21. 21 0
      mp-service/src/main/resources/mapper/open/ApiCallLogMapper.xml
  22. 20 0
      mp-service/src/main/resources/mapper/open/IpWhitelistMapper.xml

+ 2 - 1
mp-admin/src/main/java/com/qs/mp/handler/auth/SignInterceptor.java

@@ -73,7 +73,8 @@ public class SignInterceptor implements HandlerInterceptor {
             String[] signs = request.getParameterValues("sign");
 
             if (request.getRequestURI().equals("/api/v1/mp/wx/urlschema/generate")
-                || request.getRequestURI().equals("/api/v1/mp/wx/code/generate")) {
+                || request.getRequestURI().equals("/api/v1/mp/wx/code/generate")
+                || request.getRequestURI().equals("/api/v1/mp/open/link/wx/scheme")) {
                 // 小程序跳转页面请求
                 LogUtil.debug(logger, "requestURI:" + request.getRequestURI());
                 return true;

+ 3 - 2
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -168,8 +168,9 @@ public class TicketBoxMgrController extends BaseApiController {
 				.eq(TicketAwards::getBoxId, ticketBox.getBoxId()).orderByAsc(TicketAwards::getSort));
 		List<TicketAwardsVO> ticketAwardsVOS = mapperFacade.mapAsList(ticketAwardsList, TicketAwardsVO.class);
 		for (TicketAwardsVO ticketAwardsVO : ticketAwardsVOS) {
-			ticketAwardsVO.setPrizeList(ticketAwardsPrizeService.list(new LambdaQueryWrapper<TicketAwardsPrize>()
-					.eq(TicketAwardsPrize::getAwardsId, ticketAwardsVO.getAwardsId())));
+			QueryWrapper<TicketAwardsPrize> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("t1.awards_id", ticketAwardsVO.getAwardsId());
+			ticketAwardsVO.setPrizeList(ticketAwardsPrizeService.listByQueryWrapper(queryWrapper));
 		}
 		ticketBoxVO.setAwardsList(ticketAwardsVOS);
 		return AjaxResult.success(ticketBoxVO);

+ 97 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/open/LinkController.java

@@ -0,0 +1,97 @@
+package com.qs.mp.web.controller.api.open;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qs.mp.common.core.domain.AjaxResult;
+import com.qs.mp.common.core.redis.RedisCache;
+import com.qs.mp.common.utils.LogUtil;
+import com.qs.mp.common.utils.LogUtils;
+import com.qs.mp.common.utils.StringUtils;
+import com.qs.mp.common.utils.ip.IpUtils;
+import com.qs.mp.framework.redis.RedisKey;
+import com.qs.mp.framework.security.handle.HostHolder;
+import com.qs.mp.framework.service.IWxUrlLinkService;
+import com.qs.mp.open.domain.ApiCallLog;
+import com.qs.mp.open.domain.IpWhitelist;
+import com.qs.mp.open.domain.param.SchemeParam;
+import com.qs.mp.open.service.IApiCallLogService;
+import com.qs.mp.open.service.IIpWhitelistService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author Cup
+ * @date 2022/6/1
+ */
+@Api(tags = "外部链接相关接口")
+@RestController
+@RequestMapping("/api/v1/mp/open/link")
+public class LinkController {
+
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
+
+
+    @Value("${wx-user.appId}")
+    private String userAppId;
+
+    @Autowired
+    private IWxUrlLinkService wxUrlLinkService;
+
+    @Autowired
+    private IIpWhitelistService ipWhitelistService;
+
+    @Autowired
+    private IApiCallLogService apiCallLogService;
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @PostMapping("wx/scheme")
+    @ApiOperation("微信小程序跳转链接")
+    public AjaxResult wxScheme(@Validated @RequestBody SchemeParam schemeParam, HttpServletRequest request) {
+
+        // 获取调用方ip
+        String ipaddr = IpUtils.getIpAddr(request);
+        // 白名单判断
+        int whiteCount = ipWhitelistService.count(new LambdaQueryWrapper<IpWhitelist>().eq(IpWhitelist::getCallNo, schemeParam.getCallNo())
+                .eq(IpWhitelist::getIpAddr, ipaddr));
+        if (whiteCount <= 0) {
+            LogUtil.info(logger, "调用方不在白名单,callNo:{0},ip:{1}", schemeParam.getCallNo(), ipaddr);
+            return AjaxResult.error("您不在白名单中,请联系管理员");
+        }
+
+        // 保存调用日志
+        ApiCallLog apiCallLog = new ApiCallLog();
+        apiCallLog.setCallNo(schemeParam.getCallNo());
+        apiCallLog.setIpAddr(ipaddr);
+        apiCallLog.setInterfaceInfo("/api/v1/mp/open/link/wx/scheme");
+        apiCallLogService.save(apiCallLog);
+        LogUtil.info(logger, "微信Scheme生成调用日志:{0}", apiCallLog);
+
+        // 构建scheme缓存key
+        String key = RedisKey.build(RedisKey.OPEN_LINK_KEY, schemeParam.getCallNo(), schemeParam.getUid());
+        // 从redis中获取scheme
+        String scheme = redisCache.getCacheObject(key);
+        if (StringUtils.isNotBlank(scheme)) {
+            LogUtil.info(logger, "生成的scheme码:{0}", scheme);
+            // 不为空则直接返回,不生成新的
+            return AjaxResult.success("success",scheme);
+        }
+        // 生成scheme,并缓存到redis中,1天过期
+        scheme = wxUrlLinkService.generateUrlSchema("", "", userAppId);
+        redisCache.setCacheObject(key, scheme,1, TimeUnit.DAYS);
+        LogUtil.info(logger, "生成的scheme码:{0}", scheme);
+        return AjaxResult.success("success",scheme);
+    }
+}

+ 2 - 1
mp-framework/src/main/java/com/qs/mp/framework/config/SecurityConfig.java

@@ -145,7 +145,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                     "/api/v1/mp/user/marketing/detail/*",
                     "/api/v1/mp/user/marketing/userInfo/*",
                     "/api/v1/mp/user/exchange/category/listTree",
-                    "/api/v1/mp/user/marketing/recent"
+                    "/api/v1/mp/user/marketing/recent",
+                    "/api/v1/mp/open/link/**"
                 ).permitAll()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()

+ 9 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketAwardsPrizeMapper.java

@@ -1,6 +1,7 @@
 package com.qs.mp.admin.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -17,4 +18,12 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface TicketAwardsPrizeMapper extends BaseMapper<TicketAwardsPrize> {
   List<TicketAwardsPrizeVO> listPrizeVO(@Param(Constants.WRAPPER) Wrapper<TicketAwardsPrize> queryWrapper);
+
+  /**
+   * 根据条件查询奖品信息
+   * @param queryWrapper
+   * @return
+   */
+  List<TicketAwardsPrize> listByQueryWrapper(@Param(Constants.WRAPPER) QueryWrapper<TicketAwardsPrize> queryWrapper);
+
 }

+ 8 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketAwardsPrizeService.java

@@ -1,6 +1,7 @@
 package com.qs.mp.admin.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -20,4 +21,11 @@ public interface ITicketAwardsPrizeService extends IService<TicketAwardsPrize> {
   List<TicketAwardsPrizeVO> listPrizeVO(Wrapper<TicketAwardsPrize> queryWrapper);
 
   List<TicketAwardsPrizeVO> listPrizeVO(String boxId);
+
+  /**
+   * 根据条件查询奖品信息
+    * @param queryWrapper
+   * @return
+   */
+    List<TicketAwardsPrize> listByQueryWrapper(QueryWrapper<TicketAwardsPrize> queryWrapper);
 }

+ 5 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketAwardsPrizeServiceImpl.java

@@ -24,6 +24,11 @@ import org.springframework.stereotype.Service;
 public class TicketAwardsPrizeServiceImpl extends ServiceImpl<TicketAwardsPrizeMapper, TicketAwardsPrize> implements
     ITicketAwardsPrizeService {
 
+  @Override
+  public List<TicketAwardsPrize> listByQueryWrapper(QueryWrapper<TicketAwardsPrize> queryWrapper) {
+    return getBaseMapper().listByQueryWrapper(queryWrapper);
+  }
+
   @Override
   public List<TicketAwardsPrizeVO> listPrizeVO(Wrapper<TicketAwardsPrize> queryWrapper) {
     return getBaseMapper().listPrizeVO(queryWrapper);

+ 1 - 0
mp-service/src/main/java/com/qs/mp/framework/redis/RedisKey.java

@@ -9,6 +9,7 @@ import com.qs.mp.common.utils.MessageHelper;
  *
  */
 public enum RedisKey {
+    OPEN_LINK_KEY("open_link_key_{0}_{1}","微信scheme码缓存key"),
     WX_APP_TOKEN_KEY("app_token_key_{0}", "小程序app token"),
     CHANNEL_ORDER_KEY("channel_order_{0}", "经销商下的盲票采购单"),
     USER_TICKET_ORDER_KEY("user_ticket_order_key_{0}", "用户购票订单"),

+ 1 - 1
mp-service/src/main/java/com/qs/mp/framework/service/impl/WxUrlLinkServiceImpl.java

@@ -80,7 +80,7 @@ public class WxUrlLinkServiceImpl implements IWxUrlLinkService {
     // 单个小程序总共可生成长期有效 Link 上限为10万个,请谨慎调用
     param.put("is_expire", true);
     param.put("expire_type", 1);
-    param.put("expire_interval", 1);
+    param.put("expire_interval", 2);
     // 云管铺小程序永久短链接https://wxaurl.cn/YL8D48CQbMr
     // 获取access_token
     String accessToken = appTokenService.getAccessToken(appId);

+ 81 - 0
mp-service/src/main/java/com/qs/mp/open/domain/ApiCallLog.java

@@ -0,0 +1,81 @@
+package com.qs.mp.open.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @describe 接口调用日志表实体类
+ * @auther quanshu
+ * @create 2022-06-01 17:42:17
+ */
+@TableName("mp_api_call_log")
+@Data
+@ApiModel("接口调用日志表实体类")
+public class ApiCallLog implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 调用方编号
+     */
+    @ApiModelProperty("调用方编号")
+    @TableField("call_no")
+    private String callNo;
+
+    /**
+     * 调用接口
+     */
+    @ApiModelProperty("调用接口")
+    @TableField("interface_info")
+    private String interfaceInfo;
+
+    /**
+     * ip地址
+     */
+    @ApiModelProperty("ip地址")
+    @TableField("ip_addr")
+    private String ipAddr;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @TableField("created_time")
+    private Date createdTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @TableField("updated_time")
+    private Date updatedTime;
+
+    /**
+     * 逻辑删除标识
+     */
+    @ApiModelProperty("逻辑删除标识")
+    @TableField("is_deleted")
+    @TableLogic
+    private Integer isDeleted;
+
+
+}

+ 74 - 0
mp-service/src/main/java/com/qs/mp/open/domain/IpWhitelist.java

@@ -0,0 +1,74 @@
+package com.qs.mp.open.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @describe IP白名单实体类
+ * @auther quanshu
+ * @create 2022-06-01 17:41:43
+ */
+@TableName("mp_ip_whitelist")
+@Data
+@ApiModel("IP白名单实体类")
+public class IpWhitelist implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 调用方编号
+     */
+    @ApiModelProperty("调用方编号")
+    @TableField("call_no")
+    private String callNo;
+
+    /**
+     * ip地址
+     */
+    @ApiModelProperty("ip地址")
+    @TableField("ip_addr")
+    private String ipAddr;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @TableField("created_time")
+    private Date createdTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @TableField("updated_time")
+    private Date updatedTime;
+
+    /**
+     * 逻辑删除标识
+     */
+    @ApiModelProperty("逻辑删除标识")
+    @TableField("is_deleted")
+    @TableLogic
+    private Integer isDeleted;
+
+
+}

+ 26 - 0
mp-service/src/main/java/com/qs/mp/open/domain/param/SchemeParam.java

@@ -0,0 +1,26 @@
+package com.qs.mp.open.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * scheme外部调用生成入参类
+ * @author Cup
+ * @date 2022/6/2
+ */
+@ApiModel("scheme外部调用生成入参类")
+@Data
+public class SchemeParam {
+
+
+    @NotBlank(message = "调用方编号不能为空")
+    @ApiModelProperty("调用方编号")
+    private String callNo;
+
+    @NotBlank(message = "用户唯一标识不能为空")
+    @ApiModelProperty("用户唯一标识")
+    private String uid;
+}

+ 13 - 0
mp-service/src/main/java/com/qs/mp/open/mapper/ApiCallLogMapper.java

@@ -0,0 +1,13 @@
+package com.qs.mp.open.mapper;
+
+import com.qs.mp.open.domain.ApiCallLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @auther quanshu
+ * @create 2022-06-01 17:42:17
+ * @describe 接口调用日志表mapper类
+ */
+public interface ApiCallLogMapper extends BaseMapper<ApiCallLog> {
+
+}

+ 13 - 0
mp-service/src/main/java/com/qs/mp/open/mapper/IpWhitelistMapper.java

@@ -0,0 +1,13 @@
+package com.qs.mp.open.mapper;
+
+import com.qs.mp.open.domain.IpWhitelist;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @auther quanshu
+ * @create 2022-06-01 17:41:43
+ * @describe IP白名单mapper类
+ */
+public interface IpWhitelistMapper extends BaseMapper<IpWhitelist> {
+
+}

+ 16 - 0
mp-service/src/main/java/com/qs/mp/open/service/IApiCallLogService.java

@@ -0,0 +1,16 @@
+package com.qs.mp.open.service;
+
+import com.qs.mp.open.domain.ApiCallLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 接口调用日志表 服务类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-06-01
+ */
+public interface IApiCallLogService extends IService<ApiCallLog> {
+
+}

+ 16 - 0
mp-service/src/main/java/com/qs/mp/open/service/IIpWhitelistService.java

@@ -0,0 +1,16 @@
+package com.qs.mp.open.service;
+
+import com.qs.mp.open.domain.IpWhitelist;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * IP白名单 服务类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-06-01
+ */
+public interface IIpWhitelistService extends IService<IpWhitelist> {
+
+}

+ 20 - 0
mp-service/src/main/java/com/qs/mp/open/service/impl/ApiCallLogServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qs.mp.open.service.impl;
+
+import com.qs.mp.open.domain.ApiCallLog;
+import com.qs.mp.open.mapper.ApiCallLogMapper;
+import com.qs.mp.open.service.IApiCallLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 接口调用日志表 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-06-01
+ */
+@Service
+public class ApiCallLogServiceImpl extends ServiceImpl<ApiCallLogMapper, ApiCallLog> implements IApiCallLogService {
+
+}

+ 20 - 0
mp-service/src/main/java/com/qs/mp/open/service/impl/IpWhitelistServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qs.mp.open.service.impl;
+
+import com.qs.mp.open.domain.IpWhitelist;
+import com.qs.mp.open.mapper.IpWhitelistMapper;
+import com.qs.mp.open.service.IIpWhitelistService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * IP白名单 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-06-01
+ */
+@Service
+public class IpWhitelistServiceImpl extends ServiceImpl<IpWhitelistMapper, IpWhitelist> implements IIpWhitelistService {
+
+}

+ 14 - 9
mp-service/src/main/java/com/qs/mp/user/service/impl/UserHitPrizeServiceImpl.java

@@ -2,6 +2,7 @@ package com.qs.mp.user.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.TicketAwards;
@@ -119,8 +120,10 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
                 }
             }
         }
-        List<TicketAwardsPrize> awardsPrizes = ticketAwardsPrizeService.list(new LambdaQueryWrapper<TicketAwardsPrize>()
-                .eq(TicketAwardsPrize::getAwardsId, userHitPrize.getAwardsId()).orderByDesc(TicketAwardsPrize::getSortWeight).orderByDesc(TicketAwardsPrize::getValue));
+        QueryWrapper<TicketAwardsPrize> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("t1.awards_id", userHitPrize.getAwardsId());
+        queryWrapper.orderByDesc("t1.sort_weight", "t1.value");
+        List<TicketAwardsPrize> awardsPrizes = ticketAwardsPrizeService.listByQueryWrapper(queryWrapper);
         return awardsPrizes;
     }
 
@@ -130,8 +133,10 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
         UserHitPrizeDetailVO userHitPrizeDetailVO = new UserHitPrizeDetailVO();
 
         // 封装出参对象
-        List<TicketAwardsPrize> ticketAwardsPrizeList = ticketAwardsPrizeService.list(new LambdaQueryWrapper<TicketAwardsPrize>()
-                .eq(TicketAwardsPrize::getBoxId, param.getBoxId()));
+        QueryWrapper<TicketAwardsPrize> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("t1.box_id", param.getBoxId());
+        List<TicketAwardsPrize> ticketAwardsPrizeList = ticketAwardsPrizeService.listByQueryWrapper(queryWrapper);
+
 
         List<List<TicketAwardsPrize>> awardsPrizeList =  new ArrayList<>();
         int index = 0;
@@ -155,14 +160,14 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
             List<TicketAwards> awardsList = ticketAwardsService.list(new LambdaQueryWrapper<TicketAwards>()
                     .eq(TicketAwards::getBoxId,param.getBoxId())
                     .orderByAsc(TicketAwards::getSort));
-            LambdaQueryWrapper<TicketAwardsPrize> prizeListQueryWrapper = new LambdaQueryWrapper<TicketAwardsPrize>()
-                    .eq(TicketAwardsPrize::getBoxId, param.getBoxId());
+            QueryWrapper<TicketAwardsPrize> prizeListQueryWrapper = new QueryWrapper<TicketAwardsPrize>();
+                    prizeListQueryWrapper.eq("t1.box_id", param.getBoxId());
             if (awardsList.size() > 1) {
-                prizeListQueryWrapper.in(TicketAwardsPrize::getAwardsId, awardsList.get(0).getAwardsId(), awardsList.get(1).getAwardsId());
+                prizeListQueryWrapper.in("t1.awards_id", awardsList.get(0).getAwardsId(), awardsList.get(1).getAwardsId());
             }else {
-                prizeListQueryWrapper.in(TicketAwardsPrize::getAwardsId, awardsList.get(0).getAwardsId());
+                prizeListQueryWrapper.in("t1.awards_id", awardsList.get(0).getAwardsId());
             }
-            List<TicketAwardsPrize> prizeList = ticketAwardsPrizeService.list(prizeListQueryWrapper);
+            List<TicketAwardsPrize> prizeList = ticketAwardsPrizeService.listByQueryWrapper(prizeListQueryWrapper);
             TicketAwardsPrize ticketAwardsPrize = prizeList.get(new Random().nextInt(prizeList.size()));
             userHitPrizeDetailVO.setPrizeId(ticketAwardsPrize.getPrizeId());
             userHitPrizeDetailVO.setPicUrl(ticketAwardsPrize.getPicUrl());

+ 17 - 2
mp-service/src/main/resources/mapper/admin/TicketAwardsPrizeMapper.xml

@@ -27,11 +27,26 @@
     </sql>
 
     <select id="listPrizeVO" resultType="com.qs.mp.admin.domain.vo.TicketAwardsPrizeVO">
-        select t1.*, t2.*,t3.type couponType
+        select
+            if(t2.prize_type = 'goods' AND t3.title is not null,t3.title,t2.title) as title,
+            if(t2.prize_type = 'goods' AND t3.title is not null,t3.pic_url,t2.pic_url) as pic_url,
+            if(t2.prize_type = 'goods' AND t3.value is not null,t3.value,t2.value) as value,
+            t1.*,
+            t2.*
         from mp_ticket_awards t1
         left join mp_ticket_awards_prize t2 on t1.awards_id = t2.awards_id
-        left join mp_coupon t3 on t2.ref_id = t3.coupon_id
+        left join mp_goods t3 on t2.ref_id = t3.goods_id
             ${ew.customSqlSegment}
     </select>
 
+    <select id="listByQueryWrapper" resultType="com.qs.mp.admin.domain.TicketAwardsPrize">
+        select
+            if(t1.prize_type = 'goods' AND t2.title is not null ,t2.title,t1.title) as title,
+            if(t1.prize_type = 'goods' AND t2.pic_url is not null,t2.pic_url,t1.pic_url) as pic_url,
+            if(t1.prize_type = 'goods' AND t2.value is not null,t2.value,t1.value) as value,
+            t1.*
+        from mp_ticket_awards_prize t1
+         left join mp_goods t2 on t1.ref_id = t2.goods_id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 21 - 0
mp-service/src/main/resources/mapper/open/ApiCallLogMapper.xml

@@ -0,0 +1,21 @@
+<?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.qs.mp.open.mapper.ApiCallLogMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qs.mp.open.domain.ApiCallLog">
+        <id column="id" property="id" />
+        <result column="call_no" property="callNo" />
+        <result column="interface" property="interface" />
+        <result column="ip_addr" property="ipAddr" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_time" property="updatedTime" />
+        <result column="is_deleted" property="isDeleted" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, call_no, interface, ip_addr, created_time, updated_time, is_deleted
+    </sql>
+
+</mapper>

+ 20 - 0
mp-service/src/main/resources/mapper/open/IpWhitelistMapper.xml

@@ -0,0 +1,20 @@
+<?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.qs.mp.open.mapper.IpWhitelistMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qs.mp.open.domain.IpWhitelist">
+        <id column="id" property="id" />
+        <result column="call_no" property="callNo" />
+        <result column="ip_addr" property="ipAddr" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_time" property="updatedTime" />
+        <result column="is_deleted" property="isDeleted" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, call_no, ip_addr, created_time, updated_time, is_deleted
+    </sql>
+
+</mapper>