| @@ -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; | ||||
| } | ||||
| @@ -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; | ||||
| } | ||||
| @@ -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); | ||||
|  | ||||
| } | ||||
| @@ -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); | ||||
| } | ||||
| @@ -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); | ||||
|  | ||||
| } | ||||
| @@ -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); | ||||
| } | ||||
| @@ -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); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -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); | ||||
|     } | ||||
| } | ||||
| @@ -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; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -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> | ||||
| @@ -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> | ||||
|  | ||||
|   | ||||
| @@ -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> | ||||
		Reference in New Issue
	
	Block a user