Commit ead9435b by guanchen

添加自营奖励, 改为jar包运行

parent 86d7af4d
......@@ -15,7 +15,8 @@
<version>0.0.1-SNAPSHOT</version>
<name>partner</name>
<description>呼呼省钱合伙人相关服务</description>
<packaging>war</packaging>
<!--<packaging>war</packaging>-->
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
......@@ -63,7 +64,7 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<!--<scope>runtime</scope>-->
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
......@@ -79,7 +80,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -132,11 +133,6 @@
<artifactId>snakeyaml</artifactId>
<version>1.24</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.7.5</version>
</dependency>
</dependencies>
<profiles>
......@@ -172,13 +168,10 @@
<!--<mysql.password>cScdKw%ZKC1i$C!1uAz3Kg$c</mysql.password>-->
<mysql.username>apihu</mysql.username>
<mysql.password>tqH9clYRAxZ@LV4x</mysql.password>
<redis.host>10.9.186.167</redis.host>
<redis.host>10.9.105.101</redis.host>
<redis.password>passwdredis</redis.password>
<spring.profiles.active>dev</spring.profiles.active>
<!-- <logfile_path>/Users/chen/Develop/workspace/partner/data/release/dev/logs</logfile_path>-->
<logfile_path>/data/logs/java</logfile_path>
<!--<providers-path>/data/java/service</providers-path>-->
<providers-path>/Users/chen/Develop/workspace/partner/data/release/dev</providers-path>
<providers-path>/data/java/service</providers-path>
</properties>
</profile>
<profile>
......@@ -211,27 +204,12 @@
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<warName>${project.artifactId}</warName>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.lanren.huhu.partner.PartnerApplication</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
......
package com.lanren.huhu.partner.config;
import com.lanren.huhu.partner.service.impl.RedissonLockService;
import com.lanren.huhu.partner.util.LockUtil;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
/**
* @author chen
* @title: RedissonConfig
* @projectName partner
* @description: 注入锁工具类
* @package com.lanren.huhu.partner.config
* @date 2019-07-01 19:41
*/
@Configuration
public class RedissonConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private String port;
@Value("${spring.redis.password}")
private String password;
/**
* RedissonClient,单机模式
* @return
* @throws IOException
*/
@Bean(destroyMethod = "shutdown")
public RedissonClient redisson() throws IOException {
Config config = new Config();
config.useSingleServer().setAddress("redis://" + host + ":" + port).setPassword(password);
return Redisson.create(config);
}
@Bean
public RedissonLockService redissonLocker(RedissonClient redissonClient){
RedissonLockService locker = new RedissonLockService(redissonClient);
//设置LockUtil的锁处理对象
try{
LockUtil.setLockService(locker);
} catch (Exception e) {
System.out.println("redissonLocker failed");
System.out.println(e.getMessage());
}
return locker;
}
}
......@@ -20,7 +20,8 @@ import java.util.ArrayList;
* @author chen
*/
@RestController
@RequestMapping("/v1/agent")
@RequestMapping("/partner/v1/agent") //线上
//@RequestMapping("/v1/agent") //测试
public class AgentController {
private static Logger logger = LoggerFactory.getLogger(AgentController.class);
......
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.manager.PartnerManager;import com.lanren.huhu.partner.model.Partner;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpHeaders;import org.springframework.web.bind.annotation.*; import javax.validation.Valid;import java.time.LocalDateTime; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/v1/partner")public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerManager partnerManager; @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<PartnerResponse> getPartnerLevel(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("getPartnerLevel userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.getPartnerLevel(partner.getUserId()); }}
\ No newline at end of file
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.manager.PartnerManager;import com.lanren.huhu.partner.model.Partner;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpHeaders;import org.springframework.web.bind.annotation.*; import javax.validation.Valid;import java.time.LocalDateTime; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/partner/v1/partner") //线上 //@RequestMapping("/v1/partner") //测试 public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerManager partnerManager; @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<PartnerResponse> getPartnerLevel(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("getPartnerLevel userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.getPartnerLevel(partner.getUserId()); } }
\ No newline at end of file
......
......@@ -19,7 +19,8 @@ import java.time.LocalDateTime;
*/
@RestController
@EnableAsync
@RequestMapping("/v1/user")
@RequestMapping("/partner/v1/user") //线上
//@RequestMapping("/v1/user") //测试
public class UserController {
private static Logger logger = LoggerFactory.getLogger(UserController.class);
......
......@@ -13,7 +13,6 @@ import com.lanren.huhu.partner.service.PartnerAccountService;
import com.lanren.huhu.partner.service.UserAgentService;
import com.lanren.huhu.partner.service.UserService;
import com.lanren.huhu.partner.util.DateUtils;
import com.lanren.huhu.partner.util.LockUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -75,17 +74,11 @@ public class AgentRewardQueueTask {
while(null != ops && null != ops.size(AGENT_REWARD_QUEUE_KEY) && ops.size(AGENT_REWARD_QUEUE_KEY) > 0L) {
String msg = "";
try {
/**
* 加分布式锁
*/
LockUtil.lock(DISTRIBUTE_REDIS_LOCK_KEY);
try {
msg = ops.rightPop(AGENT_REWARD_QUEUE_KEY);
} catch (Exception e) {
logger.error(e.getMessage(), e);
continue;
} finally{
LockUtil.unlock(DISTRIBUTE_REDIS_LOCK_KEY);
}
logger.info("msg is {}", msg);
JSONObject json = JSON.parseObject(msg);
......@@ -111,6 +104,9 @@ public class AgentRewardQueueTask {
if ((rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER)
&& message.getOrderType().equals(ORDER_TYPE_JD) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + JD_OFFSET);
} else if ((rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER)
&& message.getOrderType().equals(ORDER_TYPE_HHYX) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + HHYX_OFFSET);
} else if (rewardType == AGENT_REWARD_TYPE_SELF_ORDER
&& message.getOrderType().equals(ORDER_TYPE_MT) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + MT_OFFSET);
......@@ -123,6 +119,9 @@ public class AgentRewardQueueTask {
} else if (rewardType == AGENT_REWARD_TYPE_SELF_ORDER
&& message.getOrderType().equals(ORDER_TYPE_ELM) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + ELM_OFFSET);
} else if (rewardType == AGENT_REWARD_TYPE_SELF_ORDER
&& message.getOrderType().equals(ORDER_TYPE_KFC) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + KFC_OFFSET);
} else {
rateMap = AGENT_RATE_MAP.get(rewardType);
}
......@@ -332,7 +331,8 @@ public class AgentRewardQueueTask {
*/
BigDecimal rewardBasement;
if (rewardType == AGENT_REWARD_TYPE_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_HALF_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_SVIP
|| rewardType == AGENT_REWARD_TYPE_REDPACK || rewardType == AGENT_REWARD_TYPE_VIP_PACKAGE || rewardType == AGENT_REWARD_TYPE_PACKAGE_WITH_VIP) {
|| rewardType == AGENT_REWARD_TYPE_REDPACK || rewardType == AGENT_REWARD_TYPE_VIP_PACKAGE || rewardType == AGENT_REWARD_TYPE_PACKAGE_WITH_VIP
|| rewardType == AGENT_REWARD_TYPE_VIP_CARD || rewardType == AGENT_REWARD_TYPE_SVIP_CARD) {
rewardBasement = message.getSourceUserPayment();
} else {
/**
......
package com.lanren.huhu.partner.service.impl;
import com.lanren.huhu.partner.service.LockService;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import java.util.concurrent.TimeUnit;
/**
* @author chen
* @title: RedissonLockService
* @projectName partner
* @description: 基于redisson的锁实现
* @package com.lanren.huhu.partner.service.impl
* @date 2019-07-01 19:38
*/
public class RedissonLockService implements LockService {
private RedissonClient redissonClient;
public RedissonLockService(RedissonClient redissonClient) {
super();
this.redissonClient = redissonClient;
}
@Override
public void lock(String lockKey) {
RLock lock = redissonClient.getLock(lockKey);
lock.lock();
}
@Override
public void unlock(String lockKey) {
RLock lock = redissonClient.getLock(lockKey);
lock.unlock();
}
@Override
public void lock(String lockKey, int leaseTime) {
RLock lock = redissonClient.getLock(lockKey);
lock.lock(leaseTime, TimeUnit.SECONDS);
}
@Override
public void lock(String lockKey, TimeUnit unit, int timeout) {
RLock lock = redissonClient.getLock(lockKey);
lock.lock(timeout, unit);
}
public void setRedissonClient(RedissonClient redissonClient) {
this.redissonClient = redissonClient;
}
@Override
public boolean tryLock(String lockKey) {
RLock lock = redissonClient.getLock(lockKey);
return lock.tryLock();
}
@Override
public boolean tryLock(String lockKey, long waitTime, long leaseTime,
TimeUnit unit) throws InterruptedException{
RLock lock = redissonClient.getLock(lockKey);
return lock.tryLock(waitTime, leaseTime, unit);
}
@Override
public boolean isLocked(String lockKey) {
RLock lock = redissonClient.getLock(lockKey);
return lock.isLocked();
}
}
package com.lanren.huhu.partner.util;
import com.lanren.huhu.partner.service.LockService;
import java.util.concurrent.TimeUnit;
/**
* @author chen
* @title: LockUtil
* @projectName partner
* @description: 分布式锁工具类
* @package com.lanren.huhu.partner.util
* @date 2019-07-01 19:39
*/
public class LockUtil {
private static LockService lockService;
/**
* 设置工具类使用的locker
* @param lockService
*/
public static void setLockService(LockService lockService) {
LockUtil.lockService = lockService;
}
/**
* 获取锁
* @param lockKey
*/
public static void lock(String lockKey) {
try {
lockService.lock(lockKey);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 释放锁
* @param lockKey
*/
public static void unlock(String lockKey) {
lockService.unlock(lockKey);
}
/**
* 获取锁,超时释放
* @param lockKey
* @param timeout
*/
public static void lock(String lockKey, int timeout) {
lockService.lock(lockKey, timeout);
}
/**
* 获取锁,超时释放,指定时间单位
* @param lockKey
* @param unit
* @param timeout
*/
public static void lock(String lockKey, TimeUnit unit, int timeout) {
lockService.lock(lockKey, unit, timeout);
}
/**
* 尝试获取锁,获取到立即返回true,获取失败立即返回false
* @param lockKey
* @return
*/
public static boolean tryLock(String lockKey) {
return lockService.tryLock(lockKey);
}
/**
* 尝试获取锁,在给定的waitTime时间内尝试,获取到返回true,获取失败返回false,获取到后再给定的leaseTime时间超时释放
* @param lockKey
* @param waitTime
* @param leaseTime
* @param unit
* @return
* @throws InterruptedException
*/
public static boolean tryLock(String lockKey, long waitTime, long leaseTime,
TimeUnit unit) throws InterruptedException {
return lockService.tryLock(lockKey, waitTime, leaseTime, unit);
}
/**
* 锁释放被任意一个线程持有
* @param lockKey
* @return
*/
public static boolean isLocked(String lockKey) {
return lockService.isLocked(lockKey);
}
}
......@@ -84,7 +84,8 @@ spring:
converters:
preferred-json-mapper: fastjson
server:
port: 8099
port: 8000 #线上
# port: 8333 #测试
http2:
enabled: true
tomcat:
......
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