Commit 89f3a982 by 杨涛

fix 抽奖信息混乱

parent 5f46c58d
......@@ -211,4 +211,14 @@ public class BookApplication {
public Binding wxGroupAgreeAddUserBind() {
return RabbitMQFactory.bindingExchange(wxGroupAgreeAddUserQueue(), MQTopicProducer.WX_AGREE_ADD_USER);
}
@Bean
public Queue wxGroupUserBindQueue(){
return RabbitMQFactory.queueBuilder(MQTopicConumer.CONSUMER_WXGROUP_USER_BIND);
}
@Bean
public Binding wxGroupUserBindBind(){
return RabbitMQFactory.bindingExchange(wxGroupUserBindQueue(), MQTopicProducer.WXGROUP_USER_BIND);
}
}
......@@ -75,4 +75,9 @@ public class MQTopicConumer {
*/
public static final String WX_AGREE_ADD_USER = PREFIX + MQTopicProducer.WX_AGREE_ADD_USER;
/**
* 微信群微信ID和微信用户ID绑定
*/
public static final String CONSUMER_WXGROUP_USER_BIND = PREFIX + MQTopicProducer.WXGROUP_USER_BIND;
}
package com.pcloud.book.mq.topic;
/**
* @author 杨涛
* @description 绑定
* @date 2019/8/23 18:48
*/
import com.pcloud.book.mq.config.MQTopicConumer;
import com.pcloud.book.weixinclock.biz.WeixinClockBiz;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.readercenter.wechat.entity.WechatGroupUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@RabbitListener(queues = MQTopicConumer.CONSUMER_WXGROUP_USER_BIND)
public class ReaderCenterBindInfoListener {
private static final Logger LOGGER = LoggerFactory.getLogger(ReaderCenterBindInfoListener.class);
@Autowired
private WeixinClockBiz weixinClockBiz;
@RabbitHandler
@ParamLog("接收到微信用户绑定TOPIC")
public void process(WechatGroupUser wechatGroupUser) {
try {
if (null != wechatGroupUser && null != wechatGroupUser.getWechatUserId() && !StringUtil.isEmpty(wechatGroupUser.getWxUserId())) {
weixinClockBiz.receiveWxGroupUserBindTopic(wechatGroupUser);
}
} catch (Exception e) {
LOGGER.error("接收到微信用户绑定TOPIC,JMS异常+++++" + e.getMessage(), e);
}
}
}
......@@ -7,6 +7,7 @@ import com.pcloud.book.weixinclock.dto.WeixinClockDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.readercenter.wechat.entity.WechatGroupUser;
import java.util.List;
import java.util.Map;
......@@ -86,5 +87,11 @@ public interface WeixinClockBiz {
* @param wxGroupId
* @return
*/
RankDto getClockWechatUserRank(String wxGroupId, String wxUserId);
RankDto getClockWechatUserRank(Long wechatUserId, String wxGroupId, String wxUserId);
/**
* 接收到微信用户绑定TOPIC
* @param wechatGroupUser
*/
void receiveWxGroupUserBindTopic(WechatGroupUser wechatGroupUser);
}
......@@ -20,6 +20,7 @@ import com.pcloud.book.weixinclock.check.WeixinClockCheck;
import com.pcloud.book.weixinclock.dao.WeixinClockDao;
import com.pcloud.book.weixinclock.dao.WeixinClockGroupClassifyDao;
import com.pcloud.book.weixinclock.dao.WeixinClockMemberDao;
import com.pcloud.book.weixinclock.dao.WeixinClockPrizeRecordDao;
import com.pcloud.book.weixinclock.dao.WeixinClockRewardDao;
import com.pcloud.book.weixinclock.dao.WeixinClockTopicDao;
import com.pcloud.book.weixinclock.dto.DrawRewardDto;
......@@ -28,6 +29,7 @@ import com.pcloud.book.weixinclock.dto.WeixinClockDto;
import com.pcloud.book.weixinclock.entity.WeixinClock;
import com.pcloud.book.weixinclock.entity.WeixinClockGroupClassify;
import com.pcloud.book.weixinclock.entity.WeixinClockMember;
import com.pcloud.book.weixinclock.entity.WeixinClockPrizeRecord;
import com.pcloud.book.weixinclock.entity.WeixinClockTopic;
import com.pcloud.channelcenter.base.constants.ChannelConstants;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
......@@ -49,6 +51,7 @@ import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.labelcenter.label.service.LabelService;
import com.pcloud.readercenter.wechat.entity.WechatGroupUser;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
......@@ -117,6 +120,8 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
private ReaderConsr readerConsr;
@Autowired
private WeixinClockCheck weixinClockCheck;
@Autowired
private WeixinClockPrizeRecordDao weixinClockPrizeRecordDao;
private static final ThreadFactory NAMED_THREAD_FACTORY = new ThreadFactoryBuilder()
.setNameFormat("weixinclock-pool-%d").build();
......@@ -408,7 +413,8 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
sbu.append(protocol).append("app.").append(accountSettingDto.getFirstDomain())
.append("/luck").append("/W").append(accountSettingDto.getAccountSettingId()).append("/C").append(appDto.getChannelId())
.append("/A").append(appDto.getAppId())
.append("/luckPage?isPreview=1&adviserId=").append(appDto.getCreatedUser()).append("&appType==").append(appDto.getTypeCode());
.append("/luckPage?isPreview=1&adviserId=").append(appDto.getCreatedUser()).append("&appType==").append(appDto.getTypeCode())
.append("&origin=wxGroup");
}
LOGGER.info("抽奖的跳转链接=====" + sbu.toString() + "================s");
return UrlUtils.getShortUrl4Own(sbu.toString());
......@@ -429,10 +435,12 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
LOGGER.info("接受到的关键词信息" + content);
GroupClassifyQrcodeDTO classifyQrcodeInfo = bookGroupClassifyBiz.getClassifyQrcodeInfo(wechatGroupId);
if(null == classifyQrcodeInfo){
return null;
return false;
}
WeixinClockDto weixinClockDto = weixinClockGroupClassifyDao.getClockBaseInfoByClassify(classifyQrcodeInfo.getClassifyId());
WeixinClockMember clockMember = weixinClockMemberDao.getByWxUserId(wechatGroupId, userWxId);
AppDto appDto = appConsr.getBaseById(weixinClockDto.getClockPrizeId());
Long wechatUserId = readerConsr.getWechatUserId(userWxId, appDto.getChannelId());
GroupUserDTO groupUserDTO = wechatGroupConsr.getWxUserInfoByWxUserId(userWxId);
Long weixinClockMemberId = clockMember == null ? null : clockMember.getWeixinClockMemberId();
if(null == clockMember) {
......@@ -444,6 +452,7 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
weixinClockMember.setNickname(groupUserDTO.getNickName());
weixinClockMember.setWxGroupId(wechatGroupId);
weixinClockMember.setWxUserId(userWxId);
weixinClockMember.setWechatUserId(wechatUserId);
weixinClockMemberDao.insert(weixinClockMember);
weixinClockMemberId = weixinClockMember.getWeixinClockMemberId();
}
......@@ -465,11 +474,12 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
weixinClockTopic.setWxGroupId(wechatGroupId);
weixinClockTopic.setWxUserId(userWxId);
weixinClockTopic.setWeixinClockMemberId(weixinClockMemberId);
weixinClockMemberDao.updateClockDays(wechatGroupId, userWxId);
weixinClockMemberDao.updateClockDays(wechatGroupId, userWxId, wechatUserId);
weixinClockTopicDao.insert(weixinClockTopic);
//发topic,增加抽奖次数
//发送抽奖的TOPIC
Long clockDays = weixinClockTopicDao.getClockCountByUser(wechatGroupId, userWxId);
if(null != wechatUserId && !wechatUserId.equals(0L)) {
EXECUTOR_SERVICE.execute(() -> {
LOGGER.info("异步校验是否满足抽奖要求,clockDays=" + clockDays);
PromotionOrderDto promotionOrderDto = new PromotionOrderDto();
......@@ -482,11 +492,25 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
promotionGiftDto.setGrantNum(grantNum == null ? "0" : grantNum.toString());
promotionGiftDtoList.add(promotionGiftDto);
promotionOrderDto.setGifts(promotionGiftDtoList);
AppDto appDto = appConsr.getBaseById(weixinClockDto.getClockPrizeId());
promotionOrderDto.setUserId(readerConsr.getWechatUserId(userWxId, appDto.getChannelId()));
promotionOrderDto.setUserId(wechatUserId);
LOGGER.info("发送抽奖规则,参数:promotionOrderDto=" + promotionOrderDto);
amqpTemplate.convertAndSend(MQTopicProducer.EXCHAGE, MQTopicProducer.GIVE_GIFT, promotionOrderDto);
});
} else {
WeixinClockPrizeRecord weixinClockPrizeRecord1 = weixinClockPrizeRecordDao.selectByWxUserIdAndAppId(userWxId, weixinClockDto.getClockPrizeId());
if (null == weixinClockPrizeRecord1) {
WeixinClockPrizeRecord weixinClockPrizeRecord2 = new WeixinClockPrizeRecord();
weixinClockPrizeRecord2.setClockPrizeId(weixinClockDto.getClockPrizeId());
weixinClockPrizeRecord2.setWxUserId(userWxId);
Integer grantNum = weixinClockRewardDao.getGrantNumFromReward(weixinClockDto.getWeixinClockId(), clockDays);
weixinClockPrizeRecord2.setPrizeTime(grantNum == null ? 0 : grantNum);
weixinClockPrizeRecordDao.insert(weixinClockPrizeRecord2);
} else {
Integer grantNum = weixinClockRewardDao.getGrantNumFromReward(weixinClockDto.getWeixinClockId(), clockDays);
grantNum = grantNum == null ? 0 : grantNum;
weixinClockPrizeRecordDao.updatePrizeTime(userWxId, weixinClockDto.getClockPrizeId(), grantNum);
}
}
//获取我的新排名
Integer newOrder = weixinClockMemberDao.getMyNewOrder(wechatGroupId, userWxId);
String clockRewardUrl = getClockRewardUrl(weixinClockDto.getClockPrizeId());
......@@ -534,9 +558,36 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
*/
@Override
@ParamLog("获取某个群内某个用户的信息")
public RankDto getClockWechatUserRank(String wxGroupId, String wxUserId) {
RankDto rankDto = weixinClockMemberDao.getClockWechatUserRank(wxGroupId, wxUserId);
public RankDto getClockWechatUserRank(Long wechatUserId, String wxGroupId, String wxUserId) {
RankDto rankDto = weixinClockMemberDao.getClockWechatUserRank(wechatUserId, wxGroupId);
return null == rankDto ? new RankDto() : rankDto;
}
/**
* 接收到微信用户绑定TOPIC
* @param wechatGroupUser
*/
@Override
@ParamLog("微信用户绑定")
public void receiveWxGroupUserBindTopic(WechatGroupUser wechatGroupUser) {
List<WeixinClockPrizeRecord> weixinClockPrizeRecords = weixinClockPrizeRecordDao.getAllPrizeList(wechatGroupUser.getWxUserId());
PromotionOrderDto promotionOrderDto = new PromotionOrderDto();
List<PromotionGiftDto> promotionGiftDtoList = new ArrayList<>();
for(WeixinClockPrizeRecord weixinClockPrizeRecord : weixinClockPrizeRecords){
PromotionGiftDto promotionGiftDto = new PromotionGiftDto();
promotionGiftDto.setTargetClass(PromotionOrderEnum.TARGET_CLASS_APP.getCode());
promotionGiftDto.setTargetType(AppTypeEnum.DRAW.value);
promotionGiftDto.setTargetId(weixinClockPrizeRecord.getClockPrizeId());
Integer grantNum = weixinClockPrizeRecord.getPrizeTime();
promotionGiftDto.setGrantNum(grantNum == null ? "0" : grantNum.toString());
promotionGiftDtoList.add(promotionGiftDto);
}
promotionOrderDto.setGifts(promotionGiftDtoList);
promotionOrderDto.setUserId(wechatGroupUser.getWechatUserId());
LOGGER.info("发送抽奖规则,参数:promotionOrderDto=" + promotionOrderDto);
amqpTemplate.convertAndSend(MQTopicProducer.EXCHAGE, MQTopicProducer.GIVE_GIFT, promotionOrderDto);
weixinClockPrizeRecordDao.deleteByWxUserId(wechatGroupUser.getWxUserId());
weixinClockMemberDao.updatMemberWechatUserId(wechatGroupUser.getWxUserId(), wechatGroupUser.getWechatUserId());
}
}
......@@ -32,7 +32,7 @@ public interface WeixinClockMemberDao extends BaseDao<WeixinClockMember> {
* @param userWxId
* @return
*/
void updateClockDays(String wechatGroupId, String userWxId);
void updateClockDays(String wechatGroupId, String userWxId, Long wchatUserId);
/**
* 获取的打卡排名(微信群)
......@@ -45,8 +45,16 @@ public interface WeixinClockMemberDao extends BaseDao<WeixinClockMember> {
/**
* 获取某个群内某个用户的信息
* @param wxGroupId
* @param wechatUserId
* @return
*/
RankDto getClockWechatUserRank(Long wechatUserId, String wxGroupId);
/**
* 同步wechatuserId
* @param wxUserId
* @param wechatUserId
* @return
*/
RankDto getClockWechatUserRank(String wxGroupId, String wxUserId);
void updatMemberWechatUserId(String wxUserId, Long wechatUserId);
}
package com.pcloud.book.weixinclock.dao;
import com.pcloud.book.weixinclock.entity.WeixinClockPrizeRecord;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface WeixinClockPrizeRecordDao extends BaseDao<WeixinClockPrizeRecord> {
int deleteByWxUserId(String wxUserId);
WeixinClockPrizeRecord selectByWxUserIdAndAppId(String wxUserId, Long appId);
void updatePrizeTime(String wxUserId, Long clockPrizeId, Integer grantNum);
List<WeixinClockPrizeRecord> getAllPrizeList(String wxUserId);
}
\ No newline at end of file
......@@ -51,10 +51,11 @@ public class WeixinClockMemberDaoImpl extends BaseDaoImpl<WeixinClockMember> imp
* @return
*/
@Override
public void updateClockDays(String wechatGroupId, String userWxId) {
public void updateClockDays(String wechatGroupId, String userWxId, Long wchatUserId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("wechatGroupId",wechatGroupId);
paramMap.put("userWxId",userWxId);
paramMap.put("wchatUserId",wchatUserId);
super.getSqlSession().update(this.getStatement("updateClockDays"), paramMap);
}
......@@ -77,10 +78,18 @@ public class WeixinClockMemberDaoImpl extends BaseDaoImpl<WeixinClockMember> imp
* @return
*/
@Override
public RankDto getClockWechatUserRank(String wxGroupId, String wxUserId) {
public RankDto getClockWechatUserRank(Long wechatUserId, String wxGroupId) {
Map<String, Object> map = new HashMap<>();
map.put("wechatUserId", wechatUserId);
map.put("wechatGroupId", wxGroupId);
map.put("userWxId", wxUserId);
return super.getSqlSession().selectOne(getStatement("getClockWechatUserRank"), map);
}
@Override
public void updatMemberWechatUserId(String wxUserId, Long wechatUserId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("wxUserId",wxUserId);
paramMap.put("wechatUserId",wechatUserId);
super.sqlSessionTemplate.update(getStatement("updatMemberWechatUserId"),paramMap);
}
}
package com.pcloud.book.weixinclock.dao.impl;
import com.pcloud.book.weixinclock.dao.WeixinClockPrizeRecordDao;
import com.pcloud.book.weixinclock.entity.WeixinClockPrizeRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author 杨涛
* @description TODO
* @date 2019/8/23 17:32
*/
@Repository("weixinClockPrizeRecordDao")
public class WeixinClockPrizeRecordDaoImpl extends BaseDaoImpl<WeixinClockPrizeRecord> implements WeixinClockPrizeRecordDao {
@Override
public int deleteByWxUserId(String wxUserId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("wxUserId",wxUserId);
return super.sqlSessionTemplate.delete(getStatement("deleteByWxUserId"),paramMap);
}
@Override
public WeixinClockPrizeRecord selectByWxUserIdAndAppId(String wxUserId, Long appId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("wxUserId",wxUserId);
paramMap.put("appId",appId);
return super.sqlSessionTemplate.selectOne(getStatement("selectByWxUserIdAndAppId"),paramMap);
}
@Override
public void updatePrizeTime(String userWxId, Long clockPrizeId, Integer grantNum) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("wxUserId",userWxId);
paramMap.put("appId",clockPrizeId);
paramMap.put("grantNum",grantNum);
super.sqlSessionTemplate.update(getStatement("updatePrizeTime"),paramMap);
}
@Override
public List<WeixinClockPrizeRecord> getAllPrizeList(String wxUserId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("wxUserId",wxUserId);
return super.sqlSessionTemplate.selectOne(getStatement("getAllPrizeList"),paramMap);
}
}
......@@ -40,6 +40,9 @@ public class WeixinClockMember extends BaseEntity {
@ApiModelProperty("打卡天数")
private Integer allClockDay;
@ApiModelProperty("微信用户ID")
private Long wechatUserId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("创建时间")
private Date createTime;
......@@ -108,6 +111,14 @@ public class WeixinClockMember extends BaseEntity {
this.allClockDay = allClockDay;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
@Override
public Date getCreateTime() {
return createTime;
......@@ -129,6 +140,7 @@ public class WeixinClockMember extends BaseEntity {
", nickname='" + nickname + '\'' +
", headPic='" + headPic + '\'' +
", allClockDay=" + allClockDay +
", wechatUserId=" + wechatUserId +
", createTime=" + createTime +
'}';
}
......
package com.pcloud.book.weixinclock.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
/**
* @author 杨涛
* @description 奖励记录表
* @date 2019/8/23 17:20
*/
public class WeixinClockPrizeRecord extends BaseEntity {
private static final long serialVersionUID = -8507834064618771705L;
@ApiModelProperty("主键标识")
private Long weixinClockPrizeRecordId;
@ApiModelProperty("微信ID")
private String wxUserId;
@ApiModelProperty("微信用户ID")
private Long wechatUserId;
@ApiModelProperty("奖励appId")
private Long clockPrizeId;
@ApiModelProperty("奖励次数")
private Integer prizeTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("创建时间")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("更新时间")
private Date updateTime;
public Long getWeixinClockPrizeRecordId() {
return weixinClockPrizeRecordId;
}
public void setWeixinClockPrizeRecordId(Long weixinClockPrizeRecordId) {
this.weixinClockPrizeRecordId = weixinClockPrizeRecordId;
}
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
public Long getClockPrizeId() {
return clockPrizeId;
}
public void setClockPrizeId(Long clockPrizeId) {
this.clockPrizeId = clockPrizeId;
}
public Integer getPrizeTime() {
return prizeTime;
}
public void setPrizeTime(Integer prizeTime) {
this.prizeTime = prizeTime;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public String toString() {
return "WeixinClockPrizeRecord{" +
"weixinClockPrizeRecordId=" + weixinClockPrizeRecordId +
", wxUserId='" + wxUserId + '\'' +
", wechatUserId=" + wechatUserId +
", clockPrizeId=" + clockPrizeId +
", prizeTime=" + prizeTime +
", createTime=" + createTime +
", updateTime=" + updateTime +
'}';
}
}
......@@ -200,8 +200,8 @@ public class WeixinClockFacadeImpl implements WeixinClockFacade {
@RequestParam(value = "wxGroupId", required = false) String wxGroupId,
@RequestParam(value = "wxUserId", required = false) String wxUserId)
throws BizException, PermissionException {
Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>(weixinClockBiz.getClockWechatUserRank(wxGroupId, wxUserId));
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>(weixinClockBiz.getClockWechatUserRank(wechatUserId, wxGroupId, wxUserId));
}
}
......@@ -22,11 +22,11 @@
<insert id="insert" parameterType="weixinClockMember" useGeneratedKeys="true" keyProperty="weixinClockMemberId" flushCache="true">
INSERT INTO weixin_clock_member (
weixin_clock_id, wx_user_id, book_group_classify_id, wx_group_id, nickname, head_pic, all_clock_day,
create_time, update_time
create_time, update_time,wechat_user_id
)
VALUES (
#{weixinClockId, jdbcType=BIGINT}, #{wxUserId, jdbcType=VARCHAR}, #{bookGroupClassifyId, jdbcType=BIGINT}, #{wxGroupId, jdbcType=VARCHAR},
#{nickname, jdbcType=VARCHAR}, #{headPic, jdbcType=VARCHAR}, #{allClockDay, jdbcType=INTEGER}, NOW(), NOW()
#{nickname, jdbcType=VARCHAR}, #{headPic, jdbcType=VARCHAR}, #{allClockDay, jdbcType=INTEGER}, NOW(), NOW(),#{wchatUserId, jdbcType=BIGINT}
)
</insert>
......@@ -57,6 +57,7 @@
update weixin_clock_member
set
all_clock_day = all_clock_day + 1,
wechat_user_id = #{wchatUserId, jdbcType=BIGINT}
update_time = NOW()
where
wx_user_id = #{userWxId}
......@@ -79,11 +80,18 @@
select wx_user_id, (@rowNum:=@rowNum+1) AS rankNum, all_clock_day clockNum, nickname nickname, head_pic headPic from (
select wx_user_id, all_clock_day, nickname, head_pic, @rowNum:=0 from weixin_clock_member
where wx_group_id = #{wechatGroupId}
AND (all_clock_day <![CDATA[ >]]> 0 or wx_user_id = #{userWxId, jdbcType=VARCHAR})
AND (all_clock_day <![CDATA[ >]]> 0 or wechat_user_id = #{wechatUserId, jdbcType=VARCHAR})
order by all_clock_day desc, update_time asc
) a
) cm where cm.wx_user_id = #{userWxId}
) cm where cm.wechat_user_id = #{wechatUserId}
LIMIT 1
</select>
<update id="updatMemberWechatUserId" parameterType="map">
update weixin_clock_member
set wechat_user_id = #{wechatUserId,jdbcType=BIGINT},
update_time = NOW()
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
<?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.pcloud.book.weixinclock.dao.impl.WeixinClockPrizeRecordDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.weixinclock.entity.WeixinClockPrizeRecord" >
<id column="weixin_clock_prize_record_id" property="weixinClockPrizeRecordId" jdbcType="BIGINT" />
<result column="wx_user_id" property="wxUserId" jdbcType="VARCHAR" />
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT" />
<result column="clock_prize_id" property="clockPrizeId" jdbcType="BIGINT" />
<result column="prize_time" property="prizeTime" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
weixin_clock_prize_record_id, wx_user_id, wechat_user_id, clock_prize_id, prize_time,
create_time, update_time
</sql>
<select id="selectByWxUserIdAndAppId" resultMap="BaseResultMap" parameterType="map" >
select
<include refid="Base_Column_List" />
from weixin_clock_prize_record
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
and clock_prize_id = #{appId}
LIMIT 1
</select>
<insert id="insert" parameterType="com.pcloud.book.weixinclock.entity.WeixinClockPrizeRecord" >
insert into weixin_clock_prize_record (wx_user_id,wechat_user_id, clock_prize_id, prize_time,
create_time, update_time)
values ( #{wxUserId,jdbcType=VARCHAR},#{wechatUserId,jdbcType=BIGINT}, #{clockPrizeId,jdbcType=BIGINT}, #{prizeTime,jdbcType=INTEGER},
NOW(), NOW())
</insert>
<update id="updatePrizeTime" parameterType="map">
update weixin_clock_prize_record
set prize_time = prize_time + #{prizeTime,jdbcType=INTEGER},
update_time = NOW()
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
and clock_prize_id = #{appId}
</update>
<select id="getAllPrizeList" parameterType="map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from weixin_clock_prize_record
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
</select>
<delete id="deleteByWxUserId" parameterType="map" >
delete from weixin_clock_prize_record
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
</delete>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment