增加消息推送状态

master
bynt 3 years ago
parent 8ba6d06eb5
commit df29eb34e5

@ -101,6 +101,14 @@ public class TaoBaoMemberSearchVO implements Serializable {
@ApiModelProperty("平均成交价 上限")
private BigDecimal averageEndPrice;
/**
*
*/
@Query(propName = "buyerRate")
@ApiModelProperty("评价状态")
private Boolean rateStatus;
/* *//**
* 0: 1: ,退 2: ,退 3: ,退
*//*

@ -108,9 +108,9 @@ public class TaoBaoOrderSearchVO implements Serializable {
/**
*
*/
@Query
@Query(propName = "buyerRate")
@ApiModelProperty("评价状态")
private Integer rateStatus;
private Boolean rateStatus;
/**
* 退

@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
* @date : 2021/10/16
*/
@Slf4j
@Api(tags = "逃吧商品相关信息")
@Api(tags = "淘宝商品相关信息")
@RestController
@RequestMapping("/source/item")
@AllArgsConstructor

@ -2,6 +2,7 @@ package com.hchbox;
import com.hchbox.entity.master.SendTemplate;
import com.hchbox.repository.master.SendTemplateRepository;
import com.hchbox.service.MemberService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
@ -22,6 +23,9 @@ import javax.annotation.Resource;
public class MessageTest {
@Resource
private MemberService memberService;
@Resource
private SendTemplateRepository sendTemplateRepository;
@ -31,4 +35,10 @@ public class MessageTest {
Page<SendTemplate> byUserIdOrUserId = sendTemplateRepository.findByUserIdOrUserId(12360L,0L, of);
byUserIdOrUserId.getContent();
}
@Test
public void updateMember(){
memberService.updateMemberBySellerNick("陶娟娟1983", "卡布奇诺3304");
}
}

@ -156,20 +156,7 @@ public class SlaverTest {
@Test
public void delete() {
List<String> list = new ArrayList<>();
list.add("123");
list.add("456");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String next = iterator.next();
if (next.equals("123")) {
iterator.remove();
}
if (iterator.equals("123")) {
continue;
}
}
List<String> subAccountBySellerNick = sellerAccountService.findSubAccountBySellerNick(12482L);
}
@Test

@ -1,6 +1,7 @@
package com.hchbox.repository.master;
import cn.hutool.core.date.DateTime;
import com.hchbox.entity.master.SellerAccount;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@ -34,7 +35,7 @@ public interface SellerAccountRepository extends JpaRepository<SellerAccount, Lo
* @param parentId
* @return
*/
@Query("select nickname from SellerAccount where parentId = ?1 ")
@Query("select nickname from SellerAccount where parentId = ?1 and status = 1")
List<String> findByParentId(Long parentId);
@ -43,10 +44,11 @@ public interface SellerAccountRepository extends JpaRepository<SellerAccount, Lo
*
* @param status
* @param parentId
* @param date
* @return
*/
@Query("from SellerAccount where status = ?1 and parentId = ?2")
List<SellerAccount> findByParentIdAndStatus(int status, Long parentId);
@Query("from SellerAccount where status = ?1 and parentId = ?2 and authorizeEndTime > ?3")
List<SellerAccount> findByParentIdAndStatus(int status, Long parentId, DateTime date);
/**
* sessionKey

@ -22,4 +22,12 @@ public interface TopOrderRegistry extends JpaRepository<TopOrder, Long>, JpaSpec
* @return
*/
List<TopOrder> findByTid(Long tid);
/**
*
* @param oid
* @param buyerNick
* @return
*/
TopOrder findByOidAndBuyerNick(Long oid,String buyerNick);
}

@ -0,0 +1,35 @@
package com.hchbox.hander;
import com.hchbox.annotaion.RedisLock;
import com.hchbox.hander.message.TaoBaoTradeMessage;
import com.hchbox.service.TopTradeService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author
*
*/
@Slf4j
@RequiredArgsConstructor
@Service("taobao_trade_TradeRated")
public class TradeRatedHandler implements TaoBaoHandler<TaoBaoTradeMessage> {
private final TopTradeService topTradeService;
/**
*
*/
@Override
@RedisLock(lockName = "transactionEvaluationMessage", key = "#message.topic")
public boolean onMessage(TaoBaoTradeMessage message) {
if (message != null) {
return topTradeService.orderEvaluation(message);
}
return Boolean.FALSE;
}
}

@ -55,5 +55,16 @@ public interface MemberService {
*/
CommonResult<List<String>> queryMemberNickList(SellerAccountDTO sellerAccountDTO, TaoBaoMemberSearchVO memberSearchVO);
/**
*
* @param l
*/
void getMemberTest(long l);
/**
*
* @param buyerNick
* @param sellerNick
*/
void updateMemberBySellerNick(String buyerNick, String sellerNick);
}

@ -18,4 +18,14 @@ public interface TopOrderService {
* @param orders
*/
void bulkInsertOrder(Long tid, String sellerNick, Long id, List<TopOrder> orders);
/**
* oid
* @param oid
* @param buyerNick
* @param sellerNick
* @param status
* @param type
*/
void updateOrderStatusByOid(Long oid, String buyerNick, String sellerNick, String status, Integer type);
}

@ -141,4 +141,11 @@ public interface TopTradeService {
* @throws IllegalAccessException
*/
CommonResult<String> queryTrade(SellerAccountDTO accountDTO, Date startTime) throws ApiException, SecretException, NoSuchFieldException, IllegalAccessException;
/**
*
* @param message
* @return
*/
Boolean orderEvaluation(TaoBaoTradeMessage message);
}

@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.hchbox.config.DataSourceConfiguration;
import com.hchbox.constant.DefaultNumberConstants;
@ -27,7 +26,6 @@ import com.hchbox.service.MemberService;
import com.hchbox.util.Arith;
import com.hchbox.util.GenerateIdUtils;
import com.hchbox.util.PageUtils;
import com.hchbox.util.QueryHelp;
import com.hchbox.vo.PageVo;
import com.hchbox.vo.taobao.TaoBaoMemberResponseVO;
import com.hchbox.vo.taobao.TaoBaoMemberSearchVO;
@ -43,6 +41,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
@ -302,8 +301,12 @@ public class MemberServiceImpl implements MemberService {
stringBuilder.append(" and trade_count >= :successStartCount");
}
if (memberSearchVO.getRateStatus() != null) {
stringBuilder.append(" and buyer_rate >= :rateStatus");
}
if (StringUtils.isNotBlank(memberSearchVO.getBuyerNick())) {
stringBuilder.append(" and buyer_nick = :buyerNick");
stringBuilder.append(" and buyer_nick like CONCAT('%',:buyerNick,'%')");
}
if (memberSearchVO.getStartConsumeSumMoney() != null) {
@ -349,5 +352,17 @@ public class MemberServiceImpl implements MemberService {
}
@Override
public void updateMemberBySellerNick(String buyerNick, String sellerNick) {
HashMap<String, Object> hashMap = new HashMap<>(DefaultNumberConstants.SIXTEEN_NUMBER);
String updateString = "update " + TableConstants.MEMBER + Math.abs(sellerNick.hashCode()) % tableSum +
" set buyer_rate = :buyerRate, update_time = :updateTime where seller_nick = :sellerNick and buyer_nick = :buyerNick";
hashMap.put("buyerRate", Boolean.TRUE);
hashMap.put("buyerNick", buyerNick);
hashMap.put("sellerNick",sellerNick);
hashMap.put("updateTime", DateUtil.date());
namedParameterJdbcTemplate.update(updateString,hashMap);
}
}

@ -315,7 +315,8 @@ public class SellerAccountServiceImpl implements SellerAccountService {
@Override
public List<SellerAccount> queryAccountByParentIdAndStatus(Long parentId) {
List<SellerAccount> byParentIdAndStatus = sellerAccountRepository.findByParentIdAndStatus(DefaultNumberConstants.ONE_NUMBER, parentId);
List<SellerAccount> byParentIdAndStatus = sellerAccountRepository.findByParentIdAndStatus
(DefaultNumberConstants.ONE_NUMBER, parentId,DateUtil.date());
if (!CollectionUtils.isEmpty(byParentIdAndStatus)){
return Convert.toList(SellerAccount.class, byParentIdAndStatus);
}

@ -6,7 +6,6 @@ import com.hchbox.config.MiProperties;
import com.hchbox.constant.FieldConstants;
import com.hchbox.constant.TaoBaoDataMethodConstants;
import com.hchbox.dto.SellerAccountDTO;
import com.hchbox.entity.master.TopTrade;
import com.hchbox.service.TaoBaoTradeService;
import com.hchbox.uitl.TaoBaoEncryption;
import com.taobao.api.SecretException;

@ -113,14 +113,14 @@ public class TaskMessageServiceImpl implements TaskMessageService {
message, submitSendMessageVo.getBuyerInfoList(),
submitSendMessageVo.getOrderTidList());
});
submitSendMessageVo.getBuyerInfoList().forEach(info -> {
submitSendMessageVo.getBuyerInfoList().forEach(submitSendMessageVo.getMessageInfo().contains(DefaultNumberConstants.DOLLAR_DELIM) ? (info -> {
if (submitSendMessageVo.getMessageInfo().contains(RemindTemplates.BUYER_NICK)) {
list.add(RemindTemplates.prepareMsg(submitSendMessageVo.getMessageInfo(), info));
}
if (submitSendMessageVo.getMessageInfo().contains(RemindTemplates.SHOP_NAME)) {
list.add(RemindTemplates.prepareMsg(submitSendMessageVo.getMessageInfo(), sellerAccount.getShopTitle()));
}
});
}) : (info -> list.add(submitSendMessageVo.getMessageInfo())));
hashMap.put("sendList", list);
hashMap.put("buyerInfoList", submitSendMessageVo.getBuyerInfoList());

@ -1,13 +1,17 @@
package com.hchbox.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.hchbox.config.DataSourceConfiguration;
import com.hchbox.constant.TableConstants;
import com.hchbox.entity.master.TopOrder;
import com.hchbox.repository.master.TopOrderRegistry;
import com.hchbox.service.TopOrderService;
import com.hchbox.util.GenerateIdUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils;
@ -29,6 +33,8 @@ public class TopOrderServiceImpl implements TopOrderService {
@Value("${hchbox.sub-tables}")
private Integer tableSum;
private final TopOrderRegistry topOrderRegistry;
private final NamedParameterJdbcTemplate namedParameterJdbcTemplate;
@Override
@ -58,4 +64,18 @@ public class TopOrderServiceImpl implements TopOrderService {
SqlParameterSource[] beanSources = SqlParameterSourceUtils.createBatch(orders);
namedParameterJdbcTemplate.batchUpdate(stringBuilder.toString(), beanSources);
}
@Override
public void updateOrderStatusByOid(Long oid, String buyerNick, String sellerNick, String status, Integer type) {
TopOrder byOid = topOrderRegistry.findByOidAndBuyerNick(oid, buyerNick);
if (byOid != null) {
String updateString = "update " + TableConstants.ORDER + Math.abs(sellerNick.hashCode()) % tableSum +
" set status = :status, buyer_rate = :buyerRate, modified = :modified where oid = :oid";
byOid.setStatus(status);
byOid.setBuyerRate(Boolean.TRUE);
byOid.setModified(DateUtil.date());
SqlParameterSource ps = new BeanPropertySqlParameterSource(byOid);
namedParameterJdbcTemplate.update(updateString, ps);
}
}
}

@ -164,7 +164,7 @@ public class TopTradeServiceImpl implements TopTradeService {
TopTrade trade = topTradeRepository.findByTid(message.getTid());
if (trade != null && message.getStatus() != null) {
log.info("=========== update order status the message as {} ===========", message.getStatus());
updateOrderStatus(DefaultNumberConstants.TEN_NUMBER,trade.getSellerNick(),message.getStatus(),trade);
updateOrderStatus(DefaultNumberConstants.TEN_NUMBER, trade.getSellerNick(), message.getStatus(), trade);
return Boolean.TRUE;
}
return Boolean.FALSE;
@ -177,8 +177,8 @@ public class TopTradeServiceImpl implements TopTradeService {
public Boolean updateOrderStatusByMessage(TaoBaoRefundMessage message, String stateValue) {
TopTrade trade = topTradeRepository.findByTid(message.getTid());
if (trade != null) {
log.info("=========== update refundOrder status the status as {} ===========",stateValue);
updateOrderStatus(DefaultNumberConstants.TEN_NUMBER,trade.getSellerNick(),stateValue,trade);
log.info("=========== update refundOrder status the status as {} ===========", stateValue);
updateOrderStatus(DefaultNumberConstants.TEN_NUMBER, trade.getSellerNick(), stateValue, trade);
return Boolean.TRUE;
}
return Boolean.FALSE;
@ -316,7 +316,7 @@ public class TopTradeServiceImpl implements TopTradeService {
}
if (taoBaoOrderSearchVO.getRateStatus() != null) {
stringBuilder.append(" and rate_status = :rateStatus");
stringBuilder.append(" and buyer_rate = :rateStatus");
}
if (taoBaoOrderSearchVO.getType() != null) {
stringBuilder.append(" and type != :type");
@ -384,7 +384,7 @@ public class TopTradeServiceImpl implements TopTradeService {
TopTrade trade = topTradeRepository.findByTid(tid);
if (trade != null) {
// 修改订单状态
updateOrderStatus(type, buyerNick, orderStatus, trade);
updateOrderStatus(type, sellerAccountDTO.getNickname(), orderStatus, trade);
List<TopOrder> orderList = topOrderRegistry.findByTid(tid);
if (!CollectionUtils.isEmpty(orderList)) {
@ -434,8 +434,7 @@ public class TopTradeServiceImpl implements TopTradeService {
List<Long> longs = Convert.toList(Long.class, setting.getSendAccountIds().split(StrUtil.COMMA));
// 放入缓存
String timeFormat = RandomUtil.randomEle(longs)
.toString()
String timeFormat = RandomUtil.randomEle(longs).toString()
.concat(StrUtil.DASHED)
.concat(TimeUtil.timeFormat());
Map<String, String> sendMessageCache = cacheManagerUtil.getCache
@ -451,10 +450,10 @@ public class TopTradeServiceImpl implements TopTradeService {
DateTime date = DateUtil.date();
StringBuilder updateString = new StringBuilder().append("update ")
.append(TableConstants.TRADE)
.append(Math.abs(buyerNick.hashCode()) % tableSum)
.append(" set status = :status, ");
.append(Math.abs(buyerNick.hashCode()) % tableSum)
.append(" set status = :status, ");
if (type.equals(DefaultNumberConstants.TEN_NUMBER)){
if (type.equals(DefaultNumberConstants.TEN_NUMBER)) {
updateString.append(" modified = :modified, ");
trade.setModified(date);
}
@ -480,12 +479,11 @@ public class TopTradeServiceImpl implements TopTradeService {
updateString.append(" where tid = :tid");
trade.setStatus(orderStatus);
SqlParameterSource ps = new BeanPropertySqlParameterSource(trade);
namedParameterJdbcTemplate.update
namedParameterJdbcTemplate.update
(StrUtil.replace
(updateString.toString(),
updateString.toString().lastIndexOf(StrUtil.COMMA),
StrUtil.COMMA, StrUtil.SPACE,
Boolean.TRUE), ps);
StrUtil.COMMA, StrUtil.SPACE, Boolean.TRUE), ps);
}
private TaskMessageInfo createTaskMessageInfo(String template, AppSetting setting, List<String> sendNickList, TopTrade trade, Long taskId) {
@ -510,16 +508,18 @@ public class TopTradeServiceImpl implements TopTradeService {
return Boolean.TRUE;
}
// 1 发送金额 限定范围
double payment = Double.parseDouble(trade.getPayment());
if (payment > DefaultNumberConstants.ZERO_NUMBER) {
// 金额区间为空或者设置为0表示无限制
if (setting.getPaymentFloor() != null && setting.getPaymentFloor() > 0
&& payment < setting.getPaymentFloor()) {
return Boolean.TRUE;
}
if (setting.getPaymentCeiling() != null && setting.getPaymentCeiling() > 0
&& payment > setting.getPaymentCeiling()) {
return Boolean.TRUE;
if (trade.getPayment() != null){
double payment = Double.parseDouble(trade.getPayment());
if (payment > DefaultNumberConstants.ZERO_NUMBER) {
// 金额区间为空或者设置为0表示无限制
if (setting.getPaymentFloor() != null && setting.getPaymentFloor() > 0
&& payment < setting.getPaymentFloor()) {
return Boolean.TRUE;
}
if (setting.getPaymentCeiling() != null && setting.getPaymentCeiling() > 0
&& payment > setting.getPaymentCeiling()) {
return Boolean.TRUE;
}
}
}
@ -594,8 +594,8 @@ public class TopTradeServiceImpl implements TopTradeService {
message.setTemplate(template);
message.setTaskInfo(StrUtil.EMPTY);
message.setIsFinish(Boolean.FALSE);
message.setSendType(setting.getType());
message.setSellerNick(setting.getSellerNick());
message.setSendType(DefaultNumberConstants.THREE_NUMBER);
message.setStatus(DefaultNumberConstants.ZERO_NUMBER);
message.setTaskName(AppSettingTypeEnum.valueOf(type));
message.setSenderQuantity(DefaultNumberConstants.ONE_NUMBER);
@ -662,7 +662,7 @@ public class TopTradeServiceImpl implements TopTradeService {
@Override
public CommonResult<String> queryTrade(SellerAccountDTO accountDTO, Date startTime)
public CommonResult<String> queryTrade(SellerAccountDTO accountDTO, Date startTime)
throws ApiException, SecretException, NoSuchFieldException, IllegalAccessException {
List<JdpTrade> jdpOrderList =
jdpTradeService.findJdpOrderByTime(startTime, DateUtil.date());
@ -681,5 +681,27 @@ public class TopTradeServiceImpl implements TopTradeService {
return CommonResult.successfulOperation();
}
@Override
@DS(DataSourceConfiguration.SHARDING_DATASOURCE_NAME)
public Boolean orderEvaluation(TaoBaoTradeMessage message) {
TopTrade trade = topTradeRepository.findByTid(message.getTid());
if (trade != null) {
String updateString = "update " +
TableConstants.TRADE + Math.abs(message.getSellerNick().hashCode()) % tableSum +
" set status = :status, buyer_rate = :buyerRate, modified = :modified where tid = :tid";
trade.setStatus(message.getStatus());
trade.setBuyerRate(Boolean.TRUE);
trade.setModified(DateUtil.date());
SqlParameterSource ps = new BeanPropertySqlParameterSource(trade);
int result = namedParameterJdbcTemplate.update(updateString, ps);
if (result > DefaultNumberConstants.ZERO_NUMBER) {
memberService.updateMemberBySellerNick(message.getBuyerNick(), message.getSellerNick());
topOrderService.updateOrderStatusByOid(message.getOid(), message.getBuyerNick(), message.getSellerNick(), message.getStatus(), DefaultNumberConstants.ONE_NUMBER);
}
return Boolean.TRUE;
}
return Boolean.FALSE;
}
}

@ -16,7 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* @author Enzo

@ -117,6 +117,11 @@ public class DefaultNumberConstants {
public static final String NAT_DELIM = "%";
/**
* %
*/
public static final String DOLLAR_DELIM = "$";
/**
*
*/

@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

@ -190,5 +190,8 @@ public class BaseMember implements Serializable {
@ApiModelProperty("最近一次发送旺旺群发时间")
protected Date lastMessageTime;
@Column(name = "buyer_rate")
@ApiModelProperty("是否评价")
protected Boolean buyerRate;
}

Loading…
Cancel
Save