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