diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWapController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWapController.java
index 63f6ab9b0..aa1eedf24 100644
--- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWapController.java
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWapController.java
@@ -2,18 +2,22 @@ package com.stdiet.web.controller.custom;
 
 import com.stdiet.common.core.controller.BaseController;
 import com.stdiet.common.core.domain.AjaxResult;
+import com.stdiet.common.utils.DateUtils;
 import com.stdiet.custom.domain.SysOrderPause;
+import com.stdiet.custom.domain.SysWxAdLog;
 import com.stdiet.custom.service.ISysOrderPauseService;
 import com.stdiet.custom.service.ISysRecipesService;
 import com.stdiet.custom.service.ISysWapServices;
+import com.stdiet.custom.service.ISysWxSaleAccountService;
+import com.stdiet.custom.utils.HttpRequestUtils;
 import com.stdiet.system.service.ISysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/wap")
@@ -30,6 +34,9 @@ public class SysWapController extends BaseController {
     @Autowired
     ISysOrderPauseService iSysOrderPauseService;
 
+    @Autowired
+    ISysWxSaleAccountService iSysWxSaleAccountService;
+
     /**
      * 客户食谱详情
      *
@@ -100,4 +107,36 @@ public class SysWapController extends BaseController {
 //    public void qrcodeRediredt(String group, HttpServletRequest request, HttpServletResponse response) throws IOException {
 //        response.sendRedirect("https://weibo.com/u/1913360251");
 //    }
+
+    @GetMapping(value = "/wxid")
+    public AjaxResult getWxId(@RequestParam String cid, @RequestParam String uid, @RequestHeader("User-Agent") String userAgent, HttpServletRequest request) {
+        SysWxAdLog sysWxAdLog = new SysWxAdLog();
+        sysWxAdLog.setUserId(uid);
+        sysWxAdLog.setIp(HttpRequestUtils.getIpAddr(request));
+        sysWxAdLog.setChannelId(cid);
+        sysWxAdLog.setUserAgent(userAgent);
+        sysWxAdLog.setType(0);
+        sysWxAdLog.setDate(DateUtils.getNowDate());
+
+        Map<String, String> result = new HashMap<>();
+        String wxId = iSysWxSaleAccountService.getWxAdId(sysWxAdLog);
+        result.put("id", wxId);
+
+        return AjaxResult.success(result);
+    }
+
+    @GetMapping(value = "/wxid/st")
+    public AjaxResult logActived(@RequestParam String cid, @RequestParam String uid, @RequestParam String wxid, @RequestHeader("User-Agent") String userAgent, HttpServletRequest request) {
+        SysWxAdLog sysWxAdLog = new SysWxAdLog();
+        sysWxAdLog.setUserId(uid);
+        sysWxAdLog.setIp(HttpRequestUtils.getIpAddr(request));
+        sysWxAdLog.setWxId(wxid);
+        sysWxAdLog.setChannelId(cid);
+        sysWxAdLog.setUserAgent(userAgent);
+        sysWxAdLog.setType(1);
+        sysWxAdLog.setDate(DateUtils.getNowDate());
+
+        return toAjax(iSysWxSaleAccountService.logWxAd(sysWxAdLog));
+    }
+
 }
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxAdLog.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxAdLog.java
new file mode 100644
index 000000000..a9e9ba7cd
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxAdLog.java
@@ -0,0 +1,23 @@
+package com.stdiet.custom.domain;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SysWxAdLog {
+
+    private String userId;
+
+    private String ip;
+
+    private String userAgent;
+
+    private String channelId;
+
+    private String wxId;
+
+    private Integer type;
+
+    private Date date;
+}
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxSaleAccount.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxSaleAccount.java
index 1bfdb4340..910ad7eaa 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxSaleAccount.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxSaleAccount.java
@@ -1,5 +1,6 @@
 package com.stdiet.custom.domain;
 
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.stdiet.common.annotation.Excel;
@@ -11,6 +12,7 @@ import com.stdiet.common.core.domain.BaseEntity;
  * @author xiezhijun
  * @date 2021-02-03
  */
+@Data
 public class SysWxSaleAccount extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -39,85 +41,7 @@ public class SysWxSaleAccount extends BaseEntity
     /** 删除标识 0未删除 1已删除,默认0 */
     private Integer delFlag;
 
-    public void setId(Long id)
-    {
-        this.id = id;
-    }
+    private Integer status;
 
-    public Long getId()
-    {
-        return id;
-    }
-    public void setWxNickName(String wxNickName)
-    {
-        this.wxNickName = wxNickName;
-    }
-
-    public String getWxNickName()
-    {
-        return wxNickName;
-    }
-    public void setWxAccount(String wxAccount)
-    {
-        this.wxAccount = wxAccount;
-    }
-
-    public String getWxAccount()
-    {
-        return wxAccount;
-    }
-    public void setWxPhone(String wxPhone)
-    {
-        this.wxPhone = wxPhone;
-    }
-
-    public String getWxPhone()
-    {
-        return wxPhone;
-    }
-    public void setWxCodeUrl(String wxCodeUrl)
-    {
-        this.wxCodeUrl = wxCodeUrl;
-    }
-
-    public String getWxCodeUrl()
-    {
-        return wxCodeUrl;
-    }
-    public void setWxType(Integer wxType)
-    {
-        this.wxType = wxType;
-    }
-
-    public Integer getWxType()
-    {
-        return wxType;
-    }
-    public void setDelFlag(Integer delFlag)
-    {
-        this.delFlag = delFlag;
-    }
-
-    public Integer getDelFlag()
-    {
-        return delFlag;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-                .append("id", getId())
-                .append("wxNickName", getWxNickName())
-                .append("wxAccount", getWxAccount())
-                .append("wxPhone", getWxPhone())
-                .append("wxCodeUrl", getWxCodeUrl())
-                .append("remark", getRemark())
-                .append("wxType", getWxType())
-                .append("createTime", getCreateTime())
-                .append("createBy", getCreateBy())
-                .append("updateTime", getUpdateTime())
-                .append("updateBy", getUpdateBy())
-                .append("delFlag", getDelFlag())
-                .toString();
-    }
+    private Integer useCount;
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxDistributionMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxDistributionMapper.java
index 60bdb4a72..7fbcefe41 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxDistributionMapper.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxDistributionMapper.java
@@ -1,6 +1,8 @@
 package com.stdiet.custom.mapper;
 
 import java.util.List;
+
+import com.stdiet.custom.domain.SysWxAdLog;
 import com.stdiet.custom.domain.SysWxDistribution;
 import org.apache.ibatis.annotations.Param;
 
@@ -73,4 +75,5 @@ public interface SysWxDistributionMapper
      * @return
      */
     List<SysWxDistribution> selectDistributionWxByUserId(@Param("userId")Long userId);
+
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxSaleAccountMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxSaleAccountMapper.java
index b605e8018..7835353f0 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxSaleAccountMapper.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxSaleAccountMapper.java
@@ -1,6 +1,8 @@
 package com.stdiet.custom.mapper;
 
 import java.util.List;
+
+import com.stdiet.custom.domain.SysWxAdLog;
 import com.stdiet.custom.domain.SysWxSaleAccount;
 
 /**
@@ -65,4 +67,8 @@ public interface SysWxSaleAccountMapper
      * @return
      */
     SysWxSaleAccount selectWxAccountByAccountOrPhone(SysWxSaleAccount sysWxSaleAccount);
+
+    SysWxSaleAccount selectWxAdId();
+
+    int insertWxAdLog(SysWxAdLog sysWxAdLog);
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxDistributionService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxDistributionService.java
index b11770240..8f67fc987 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxDistributionService.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxDistributionService.java
@@ -1,6 +1,8 @@
 package com.stdiet.custom.service;
 
 import java.util.List;
+
+import com.stdiet.custom.domain.SysWxAdLog;
 import com.stdiet.custom.domain.SysWxDistribution;
 
 /**
@@ -72,4 +74,5 @@ public interface ISysWxDistributionService
      * @return
      */
     List<SysWxDistribution> selectDistributionWxByUserId(Long userId);
+
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxSaleAccountService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxSaleAccountService.java
index 66aff4ba0..88a4d16fd 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxSaleAccountService.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxSaleAccountService.java
@@ -1,6 +1,8 @@
 package com.stdiet.custom.service;
 
 import java.util.List;
+
+import com.stdiet.custom.domain.SysWxAdLog;
 import com.stdiet.custom.domain.SysWxSaleAccount;
 
 /**
@@ -66,4 +68,8 @@ public interface ISysWxSaleAccountService
      * @return
      */
     SysWxSaleAccount selectWxAccountByAccountOrPhone(String accountOrPhone, int type);
+
+    String getWxAdId(SysWxAdLog sysWxAdLog);
+
+    Integer logWxAd(SysWxAdLog sysWxAdLog);
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxDistributionServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxDistributionServiceImpl.java
index 7d992a7f1..0614f4c57 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxDistributionServiceImpl.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxDistributionServiceImpl.java
@@ -2,6 +2,7 @@ package com.stdiet.custom.service.impl;
 
 import java.util.List;
 import com.stdiet.common.utils.DateUtils;
+import com.stdiet.custom.domain.SysWxAdLog;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.stdiet.custom.mapper.SysWxDistributionMapper;
@@ -112,4 +113,5 @@ public class SysWxDistributionServiceImpl implements ISysWxDistributionService
     public List<SysWxDistribution> selectDistributionWxByUserId(Long userId){
         return sysWxDistributionMapper.selectDistributionWxByUserId(userId);
     }
+
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxSaleAccountServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxSaleAccountServiceImpl.java
index 042189aed..e060d7a45 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxSaleAccountServiceImpl.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxSaleAccountServiceImpl.java
@@ -1,13 +1,15 @@
 package com.stdiet.custom.service.impl;
 
-import java.util.List;
 import com.stdiet.common.utils.DateUtils;
 import com.stdiet.common.utils.StringUtils;
+import com.stdiet.custom.domain.SysWxAdLog;
+import com.stdiet.custom.domain.SysWxSaleAccount;
+import com.stdiet.custom.mapper.SysWxSaleAccountMapper;
+import com.stdiet.custom.service.ISysWxSaleAccountService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.stdiet.custom.mapper.SysWxSaleAccountMapper;
-import com.stdiet.custom.domain.SysWxSaleAccount;
-import com.stdiet.custom.service.ISysWxSaleAccountService;
+
+import java.util.List;
 
 /**
  * 微信账号Service业务层处理
@@ -16,8 +18,7 @@ import com.stdiet.custom.service.ISysWxSaleAccountService;
  * @date 2021-02-03
  */
 @Service
-public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService
-{
+public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService {
     @Autowired
     private SysWxSaleAccountMapper sysWxSaleAccountMapper;
 
@@ -28,8 +29,7 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService
      * @return 微信账号
      */
     @Override
-    public SysWxSaleAccount selectSysWxSaleAccountById(Long id)
-    {
+    public SysWxSaleAccount selectSysWxSaleAccountById(Long id) {
         return sysWxSaleAccountMapper.selectSysWxSaleAccountById(id);
     }
 
@@ -40,8 +40,7 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService
      * @return 微信账号
      */
     @Override
-    public List<SysWxSaleAccount> selectSysWxSaleAccountList(SysWxSaleAccount sysWxSaleAccount)
-    {
+    public List<SysWxSaleAccount> selectSysWxSaleAccountList(SysWxSaleAccount sysWxSaleAccount) {
         return sysWxSaleAccountMapper.selectSysWxSaleAccountList(sysWxSaleAccount);
     }
 
@@ -52,8 +51,7 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService
      * @return 结果
      */
     @Override
-    public int insertSysWxSaleAccount(SysWxSaleAccount sysWxSaleAccount)
-    {
+    public int insertSysWxSaleAccount(SysWxSaleAccount sysWxSaleAccount) {
         sysWxSaleAccount.setCreateTime(DateUtils.getNowDate());
         return sysWxSaleAccountMapper.insertSysWxSaleAccount(sysWxSaleAccount);
     }
@@ -65,8 +63,7 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService
      * @return 结果
      */
     @Override
-    public int updateSysWxSaleAccount(SysWxSaleAccount sysWxSaleAccount)
-    {
+    public int updateSysWxSaleAccount(SysWxSaleAccount sysWxSaleAccount) {
         sysWxSaleAccount.setUpdateTime(DateUtils.getNowDate());
         return sysWxSaleAccountMapper.updateSysWxSaleAccount(sysWxSaleAccount);
     }
@@ -78,8 +75,7 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService
      * @return 结果
      */
     @Override
-    public int deleteSysWxSaleAccountByIds(Long[] ids)
-    {
+    public int deleteSysWxSaleAccountByIds(Long[] ids) {
         return sysWxSaleAccountMapper.deleteSysWxSaleAccountByIds(ids);
     }
 
@@ -90,25 +86,46 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService
      * @return 结果
      */
     @Override
-    public int deleteSysWxSaleAccountById(Long id)
-    {
+    public int deleteSysWxSaleAccountById(Long id) {
         return sysWxSaleAccountMapper.deleteSysWxSaleAccountById(id);
     }
 
     /**
      * 根据微信号或手机号查询是否已存在
+     *
      * @param accountOrPhone 手机号或微信号
-     * @param type 0微信号 1手机号
+     * @param type           0微信号 1手机号
      * @return
      */
     @Override
-    public SysWxSaleAccount selectWxAccountByAccountOrPhone(String accountOrPhone, int type){
+    public SysWxSaleAccount selectWxAccountByAccountOrPhone(String accountOrPhone, int type) {
         SysWxSaleAccount param = new SysWxSaleAccount();
-        if(type == 0){
+        if (type == 0) {
             param.setWxAccount(accountOrPhone);
-        }else{
+        } else {
             param.setWxPhone(accountOrPhone);
         }
         return sysWxSaleAccountMapper.selectWxAccountByAccountOrPhone(param);
     }
+
+    @Override
+    public String getWxAdId(SysWxAdLog sysWxAdLog) {
+        SysWxSaleAccount sysWxSaleAccount = sysWxSaleAccountMapper.selectWxAdId();
+        if (StringUtils.isNotNull(sysWxSaleAccount)) {
+            sysWxSaleAccount.setUseCount(sysWxSaleAccount.getUseCount() + 1);
+            int rows = sysWxSaleAccountMapper.updateSysWxSaleAccount(sysWxSaleAccount);
+            if (rows > 0) {
+                String wxId = sysWxSaleAccount.getWxAccount();
+                sysWxAdLog.setWxId(wxId);
+                logWxAd(sysWxAdLog);
+                return wxId;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public Integer logWxAd(SysWxAdLog sysWxAdLog) {
+        return sysWxSaleAccountMapper.insertWxAdLog(sysWxAdLog);
+    }
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/utils/HttpRequestUtils.java b/stdiet-custom/src/main/java/com/stdiet/custom/utils/HttpRequestUtils.java
new file mode 100644
index 000000000..25ee66610
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/utils/HttpRequestUtils.java
@@ -0,0 +1,47 @@
+package com.stdiet.custom.utils;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+public class HttpRequestUtils {
+
+    public static String getIpAddr(HttpServletRequest request) {
+        String ipAddress = null;
+        try {
+            ipAddress = request.getHeader("x-forwarded-for");
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getHeader("Proxy-Client-IP");
+            }
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getHeader("WL-Proxy-Client-IP");
+            }
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getRemoteAddr();
+                if (ipAddress.equals("127.0.0.1")) {
+                    // 根据网卡取本机配置的IP
+                    InetAddress inet = null;
+                    try {
+                        inet = InetAddress.getLocalHost();
+                    } catch (UnknownHostException e) {
+                        e.printStackTrace();
+                    }
+                    ipAddress = inet.getHostAddress();
+                }
+            }
+            // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
+            if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
+                // = 15
+                if (ipAddress.indexOf(",") > 0) {
+                    ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
+                }
+            }
+        } catch (Exception e) {
+            ipAddress = "";
+        }
+        // ipAddress = this.getRequest().getRemoteAddr();
+
+        return ipAddress;
+    }
+
+}
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxDistributionMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxDistributionMapper.xml
index 3fe2b2568..7394d399f 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysWxDistributionMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxDistributionMapper.xml
@@ -123,4 +123,5 @@
         lEFT JOIN sys_wx_sale_account swsa ON swsa.id = swd.wechat_account and swsa.del_flag = 0
         where swd.del_flag = 0 and swd.user_id = #{userId} order by swd.id asc
     </select>
+
 </mapper>
\ No newline at end of file
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml
index 12043bb40..0fc01ba26 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml
@@ -58,7 +58,8 @@
     </select>
 
     <select id="exportStatisticsList" parameterType="SysWxFanStatistics" resultMap="SysWxFanStatisticsResult">
-        SELECT sale_group_id, su.nick_name AS user_name, cn.dict_label AS account,  wsa.wx_account, wsa.wx_phone, IF(ISNULL(wfs.fan_num),0,wfs.fan_num) AS fan_num FROM sys_wx_distribution wd
+        SELECT sale_group_id, su.nick_name AS user_name, cn.dict_label AS account,  wsa.wx_account, wsa.wx_phone, IF(ISNULL(wfs.fan_num),0,wfs.fan_num) AS fan_num
+        FROM sys_wx_distribution wd
         LEFT JOIN (
             SELECT wx_id, fan_num FROM sys_wx_fan_statistics
             <if test="fanStartTime != null and fanEndTime != null">
@@ -68,6 +69,7 @@
         LEFT JOIN (SELECT id, wx_account, wx_phone FROM sys_wx_sale_account) AS wsa ON wd.wechat_account = wsa.id
         LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'fan_channel') AS cn ON cn.dict_value = wd.account_id
         LEFT JOIN sys_user AS su ON su.user_id = wd.user_id
+        WHERE wd.del_flag = 0
         ORDER BY wd.sale_group_id, wd.user_id ASC
     </select>
 
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml
index 83a5e355d..4c763fdd2 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxSaleAccountMapper.xml
@@ -5,18 +5,20 @@
 <mapper namespace="com.stdiet.custom.mapper.SysWxSaleAccountMapper">
 
     <resultMap type="SysWxSaleAccount" id="SysWxSaleAccountResult">
-        <result property="id"    column="id"    />
-        <result property="wxNickName"    column="wx_nick_name"    />
-        <result property="wxAccount"    column="wx_account"    />
-        <result property="wxPhone"    column="wx_phone"    />
-        <result property="wxCodeUrl"    column="wx_code_url"    />
-        <result property="remark"    column="remark"    />
-        <result property="wxType"    column="wx_type"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="delFlag"    column="del_flag"    />
+        <result property="id" column="id"/>
+        <result property="wxNickName" column="wx_nick_name"/>
+        <result property="wxAccount" column="wx_account"/>
+        <result property="wxPhone" column="wx_phone"/>
+        <result property="wxCodeUrl" column="wx_code_url"/>
+        <result property="remark" column="remark"/>
+        <result property="wxType" column="wx_type"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="status" column="status"/>
+        <result property="useCount" column="use_count"/>
     </resultMap>
 
     <sql id="selectSysWxSaleAccountVo">
@@ -24,10 +26,11 @@
     </sql>
 
     <select id="selectSysWxSaleAccountList" parameterType="SysWxSaleAccount" resultMap="SysWxSaleAccountResult">
-        <include refid="selectSysWxSaleAccountVo"/> where del_flag = 0
-        <if test="wxNickName != null  and wxNickName != ''"> and wx_nick_name like concat('%', #{wxNickName}, '%')</if>
-        <if test="wxAccount != null  and wxAccount != ''"> and wx_account like concat('%', #{wxAccount}, '%')</if>
-        <if test="wxPhone != null  and wxPhone != ''"> and wx_phone like concat('%', #{wxPhone}, '%')</if>
+        <include refid="selectSysWxSaleAccountVo"/>
+        where del_flag = 0
+        <if test="wxNickName != null  and wxNickName != ''">and wx_nick_name like concat('%', #{wxNickName}, '%')</if>
+        <if test="wxAccount != null  and wxAccount != ''">and wx_account like concat('%', #{wxAccount}, '%')</if>
+        <if test="wxPhone != null  and wxPhone != ''">and wx_phone like concat('%', #{wxPhone}, '%')</if>
         order by id desc
     </select>
 
@@ -80,6 +83,8 @@
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="useCount != null">use_count = #{useCount},</if>
         </trim>
         where id = #{id}
     </update>
@@ -96,10 +101,37 @@
     </update>
 
     <select id="selectWxAccountByAccountOrPhone" parameterType="SysWxSaleAccount" resultMap="SysWxSaleAccountResult">
-        <include refid="selectSysWxSaleAccountVo"/> where del_flag = 0
-        <if test="wxAccount != null  and wxAccount != ''"> and wx_account = #{wxAccount}</if>
-        <if test="wxPhone != null  and wxPhone != ''"> and wx_phone = #{wxPhone} </if>
+        <include refid="selectSysWxSaleAccountVo"/>
+        where del_flag = 0
+        <if test="wxAccount != null  and wxAccount != ''">and wx_account = #{wxAccount}</if>
+        <if test="wxPhone != null  and wxPhone != ''">and wx_phone = #{wxPhone}</if>
         limit 1
     </select>
 
+    <select id="selectWxAdId" resultType="String" parameterType="SysWxSaleAccount" resultMap="SysWxSaleAccountResult">
+        SELECT * FROM sys_wx_sale_account WHERE status = 0 ORDER BY use_count ASC LIMIT 1
+    </select>
+
+    <insert id="insertWxAdLog" parameterType="SysWxAdLog" useGeneratedKeys="true" keyProperty="id">
+        insert into sys_wx_ad_logs
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="ip != null">ip,</if>
+            <if test="userAgent != null">user_agent,</if>
+            <if test="channelId != null">channel_id,</if>
+            <if test="wxId != null">wx_id,</if>
+            <if test="type != null">type,</if>
+            <if test="date != null">date,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="ip != null">#{ip},</if>
+            <if test="userAgent != null">#{userAgent},</if>
+            <if test="channelId != null">#{channelId},</if>
+            <if test="wxId != null">#{wxId},</if>
+            <if test="type != null">#{type},</if>
+            <if test="date != null">#{date},</if>
+        </trim>
+    </insert>
+
 </mapper>
\ No newline at end of file