Commit 529e7684 authored by shiyu's avatar shiyu

一次性订阅

parent fd48cbb4
package com.wwdz.ch.core.consts; package com.wwdz.ch.core.consts;
/**
* 一次性订阅消息
*/
public class DisposableSubscribeRecordEnum { public class DisposableSubscribeRecordEnum {
/**
* 拍品状态
*/
public enum TypeEnum {
PRE_START(1, "AzJht7hkLJHSCN7trT3zsV3TaOE0Xk8faqm2sTf3Pm4", "拍卖开始通知"),
PRE_END(2, "G-GwA4yn63RJ6IysFotHB4anctNqbOy5qrz_R6vBJkM", "即将结束"),
;
private int type;
private String templateId;
private String desc;
TypeEnum(int type, String templateId, String desc) {
this.type = type;
this.templateId = templateId;
this.desc = desc;
}
public static Integer getTypeByTemplateId(String templateId) {
for (DisposableSubscribeRecordEnum.TypeEnum typeEnum : DisposableSubscribeRecordEnum.TypeEnum.values()) {
if (typeEnum.templateId.equals(templateId)) {
return typeEnum.getType();
}
}
return null;
}
public int getType() {
return type;
}
public String getTemplateId() {
return templateId;
}
public String getDesc() {
return desc;
}
}
} }
package com.wwdz.ch.db.dao; package com.wwdz.ch.db.dao;
import com.wwdz.ch.db.domain.distribution.DisposableSubscribeRecord; import com.wwdz.ch.db.domain.distribution.DisposableSubscribeRecord;
import com.wwdz.ch.db.dto.request.distribution.DisposableSubscribeRecordRequestDto;
import java.util.List; import java.util.List;
...@@ -26,5 +27,5 @@ public interface DisposableSubscribeRecordDao { ...@@ -26,5 +27,5 @@ public interface DisposableSubscribeRecordDao {
*/ */
boolean isSubscribed(String openid, long targetId, String templateId); boolean isSubscribed(String openid, long targetId, String templateId);
List<DisposableSubscribeRecord> findList(long userId); List<DisposableSubscribeRecord> findList(DisposableSubscribeRecordRequestDto dto);
} }
package com.wwdz.ch.db.impl.distribution; package com.wwdz.ch.db.impl.distribution;
import com.github.pagehelper.PageHelper;
import com.wwdz.ch.db.dao.DisposableSubscribeRecordDao; import com.wwdz.ch.db.dao.DisposableSubscribeRecordDao;
import com.wwdz.ch.db.domain.OfficialAccountSubscribeRecordExample; import com.wwdz.ch.db.domain.OfficialAccountSubscribeRecordExample;
import com.wwdz.ch.db.domain.distribution.DisposableSubscribeRecord; import com.wwdz.ch.db.domain.distribution.DisposableSubscribeRecord;
import com.wwdz.ch.db.domain.distribution.DisposableSubscribeRecordExample; import com.wwdz.ch.db.domain.distribution.DisposableSubscribeRecordExample;
import com.wwdz.ch.db.dto.request.distribution.DisposableSubscribeRecordRequestDto;
import com.wwdz.ch.db.mapper.distribution.DisposableSubscribeRecordMapper; import com.wwdz.ch.db.mapper.distribution.DisposableSubscribeRecordMapper;
import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -56,10 +59,16 @@ public class DisposableSubscribeRecordDaoImpl implements DisposableSubscribeReco ...@@ -56,10 +59,16 @@ public class DisposableSubscribeRecordDaoImpl implements DisposableSubscribeReco
} }
@Override @Override
public List<DisposableSubscribeRecord> findList(long userId) { public List<DisposableSubscribeRecord> findList(DisposableSubscribeRecordRequestDto dto) {
DisposableSubscribeRecordExample example = new DisposableSubscribeRecordExample(); DisposableSubscribeRecordExample example = new DisposableSubscribeRecordExample();
DisposableSubscribeRecordExample.Criteria criteria = example.createCriteria(); DisposableSubscribeRecordExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId); JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo);
JdbcHelper.ifPresent(dto.getOpenid(), criteria::andOpenidEqualTo);
JdbcHelper.ifPresent(dto.getTargetId(), criteria::andTargetIdEqualTo);
JdbcHelper.ifPresent(dto.getTemplateId(), criteria::andTemplateIdEqualTo);
criteria.andIsValidEqualTo(true);
example.setOrderByClause("create_time desc");
PageHelper.startPage(dto.getPage(), dto.getLimit());
return disposableSubscribeRecordMapper.selectByExample(example); return disposableSubscribeRecordMapper.selectByExample(example);
} }
} }
package com.wwdz.ch.wx.impl.distribution; package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.api.WxAppletApi; import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.core.consts.DisposableSubscribeRecordEnum;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.DisposableSubscribeRecordDao; import com.wwdz.ch.db.dao.DisposableSubscribeRecordDao;
import com.wwdz.ch.db.dao.UserDao; import com.wwdz.ch.db.dao.UserDao;
...@@ -13,6 +14,8 @@ import org.slf4j.Logger; ...@@ -13,6 +14,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List; import java.util.List;
...@@ -28,7 +31,7 @@ public class DisposableSubscribeRecordServiceImpl implements DisposableSubscribe ...@@ -28,7 +31,7 @@ public class DisposableSubscribeRecordServiceImpl implements DisposableSubscribe
UserDao userDao; UserDao userDao;
@Override @Override
public Result subscribed(DisposableSubscribeRecordRequestDto dto) { public Result subscribe(DisposableSubscribeRecordRequestDto dto) {
try { try {
long userId = dto.getUserId(); long userId = dto.getUserId();
User user = userDao.queryById(userId); User user = userDao.queryById(userId);
...@@ -37,8 +40,11 @@ public class DisposableSubscribeRecordServiceImpl implements DisposableSubscribe ...@@ -37,8 +40,11 @@ public class DisposableSubscribeRecordServiceImpl implements DisposableSubscribe
long targetId = dto.getTargetId(); long targetId = dto.getTargetId();
DisposableSubscribeRecord disposableSubscribeRecord = new DisposableSubscribeRecord(); DisposableSubscribeRecord disposableSubscribeRecord = new DisposableSubscribeRecord();
EntityMapper.copyAttribute(dto, disposableSubscribeRecord); EntityMapper.copyAttribute(dto, disposableSubscribeRecord);
disposableSubscribeRecord.setType(DisposableSubscribeRecordEnum.TypeEnum.getTypeByTemplateId(templateId));
disposableSubscribeRecord.setOpenid(openid); disposableSubscribeRecord.setOpenid(openid);
disposableSubscribeRecord.setIsValid(true); disposableSubscribeRecord.setIsValid(true);
disposableSubscribeRecord.setCreateTime(new Date());
disposableSubscribeRecord.setUpdateTime(new Date());
//没订阅过就新增数据 //没订阅过就新增数据
if (!disposableSubscribeRecordDao.isSubscribed(openid, targetId, templateId)) { if (!disposableSubscribeRecordDao.isSubscribed(openid, targetId, templateId)) {
disposableSubscribeRecordDao.insert(disposableSubscribeRecord); disposableSubscribeRecordDao.insert(disposableSubscribeRecord);
......
...@@ -16,7 +16,7 @@ public interface DisposableSubscribeRecordService { ...@@ -16,7 +16,7 @@ public interface DisposableSubscribeRecordService {
* @param dto * @param dto
* @return * @return
*/ */
Result subscribed(DisposableSubscribeRecordRequestDto dto); Result subscribe(DisposableSubscribeRecordRequestDto dto);
Result update(DisposableSubscribeRecord disposableSubscribeRecord); Result update(DisposableSubscribeRecord disposableSubscribeRecord);
......
package com.wwdz.ch.wx.web.distribution;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.DisposableSubscribeRecordRequestDto;
import com.wwdz.ch.wx.service.distribution.DisposableSubscribeRecordService;
import com.xxdxxs.service.FormHandler;
import com.xxdxxs.validation.Validator;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/wx/disposableSubscribeRecord")
public class DisposableSubscribeRecordController {
private static final Logger logger = LoggerFactory.getLogger(DistributionOrderController.class);
@Autowired
DisposableSubscribeRecordService disposableSubscribeRecordService;
@ApiOperation(value = "小程序用户订阅消息")
@PostMapping("/subscribe")
public Result subscribe(@RequestBody DisposableSubscribeRecordRequestDto dto) {
logger.info("小程序用户订阅消息,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("userId", "用户id").must().number()
.set("templateId", "模板id").must().string()
.set("targetId", "订阅对象id").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(validator.getErrorInfo());
}
return disposableSubscribeRecordService.subscribe(dto);
}
}
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