Commit ead9435b by guanchen

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

parent 86d7af4d
...@@ -15,7 +15,8 @@ ...@@ -15,7 +15,8 @@
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>partner</name> <name>partner</name>
<description>呼呼省钱合伙人相关服务</description> <description>呼呼省钱合伙人相关服务</description>
<packaging>war</packaging> <!--<packaging>war</packaging>-->
<packaging>jar</packaging>
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
...@@ -63,7 +64,7 @@ ...@@ -63,7 +64,7 @@
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope> <!--<scope>runtime</scope>-->
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
...@@ -79,7 +80,7 @@ ...@@ -79,7 +80,7 @@
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId> <artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope> <!--<scope>provided</scope>-->
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -132,11 +133,6 @@ ...@@ -132,11 +133,6 @@
<artifactId>snakeyaml</artifactId> <artifactId>snakeyaml</artifactId>
<version>1.24</version> <version>1.24</version>
</dependency> </dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.7.5</version>
</dependency>
</dependencies> </dependencies>
<profiles> <profiles>
...@@ -172,13 +168,10 @@ ...@@ -172,13 +168,10 @@
<!--<mysql.password>cScdKw%ZKC1i$C!1uAz3Kg$c</mysql.password>--> <!--<mysql.password>cScdKw%ZKC1i$C!1uAz3Kg$c</mysql.password>-->
<mysql.username>apihu</mysql.username> <mysql.username>apihu</mysql.username>
<mysql.password>tqH9clYRAxZ@LV4x</mysql.password> <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> <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> <logfile_path>/data/logs/java</logfile_path>
<!--<providers-path>/data/java/service</providers-path>--> <providers-path>/data/java/service</providers-path>
<providers-path>/Users/chen/Develop/workspace/partner/data/release/dev</providers-path>
</properties> </properties>
</profile> </profile>
<profile> <profile>
...@@ -211,27 +204,12 @@ ...@@ -211,27 +204,12 @@
</configuration> </configuration>
</plugin> </plugin>
<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> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<executions> <configuration>
<execution> <mainClass>com.lanren.huhu.partner.PartnerApplication</mainClass>
<goals> </configuration>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId> <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; ...@@ -20,7 +20,8 @@ import java.util.ArrayList;
* @author chen * @author chen
*/ */
@RestController @RestController
@RequestMapping("/v1/agent") @RequestMapping("/partner/v1/agent") //线上
//@RequestMapping("/v1/agent") //测试
public class AgentController { public class AgentController {
private static Logger logger = LoggerFactory.getLogger(AgentController.class); 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()); }} 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 \ No newline at end of file
......
...@@ -19,7 +19,8 @@ import java.time.LocalDateTime; ...@@ -19,7 +19,8 @@ import java.time.LocalDateTime;
*/ */
@RestController @RestController
@EnableAsync @EnableAsync
@RequestMapping("/v1/user") @RequestMapping("/partner/v1/user") //线上
//@RequestMapping("/v1/user") //测试
public class UserController { public class UserController {
private static Logger logger = LoggerFactory.getLogger(UserController.class); private static Logger logger = LoggerFactory.getLogger(UserController.class);
......
...@@ -13,7 +13,6 @@ import com.lanren.huhu.partner.service.PartnerAccountService; ...@@ -13,7 +13,6 @@ import com.lanren.huhu.partner.service.PartnerAccountService;
import com.lanren.huhu.partner.service.UserAgentService; import com.lanren.huhu.partner.service.UserAgentService;
import com.lanren.huhu.partner.service.UserService; import com.lanren.huhu.partner.service.UserService;
import com.lanren.huhu.partner.util.DateUtils; import com.lanren.huhu.partner.util.DateUtils;
import com.lanren.huhu.partner.util.LockUtil;
import org.slf4j.Logger; 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;
...@@ -75,17 +74,11 @@ public class AgentRewardQueueTask { ...@@ -75,17 +74,11 @@ public class AgentRewardQueueTask {
while(null != ops && null != ops.size(AGENT_REWARD_QUEUE_KEY) && ops.size(AGENT_REWARD_QUEUE_KEY) > 0L) { while(null != ops && null != ops.size(AGENT_REWARD_QUEUE_KEY) && ops.size(AGENT_REWARD_QUEUE_KEY) > 0L) {
String msg = ""; String msg = "";
try { try {
/**
* 加分布式锁
*/
LockUtil.lock(DISTRIBUTE_REDIS_LOCK_KEY);
try { try {
msg = ops.rightPop(AGENT_REWARD_QUEUE_KEY); msg = ops.rightPop(AGENT_REWARD_QUEUE_KEY);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
continue; continue;
} finally{
LockUtil.unlock(DISTRIBUTE_REDIS_LOCK_KEY);
} }
logger.info("msg is {}", msg); logger.info("msg is {}", msg);
JSONObject json = JSON.parseObject(msg); JSONObject json = JSON.parseObject(msg);
...@@ -111,6 +104,9 @@ public class AgentRewardQueueTask { ...@@ -111,6 +104,9 @@ public class AgentRewardQueueTask {
if ((rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER) if ((rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER)
&& message.getOrderType().equals(ORDER_TYPE_JD) ) { && message.getOrderType().equals(ORDER_TYPE_JD) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + JD_OFFSET); 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 } else if (rewardType == AGENT_REWARD_TYPE_SELF_ORDER
&& message.getOrderType().equals(ORDER_TYPE_MT) ) { && message.getOrderType().equals(ORDER_TYPE_MT) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + MT_OFFSET); rateMap = AGENT_RATE_MAP.get(rewardType + MT_OFFSET);
...@@ -123,6 +119,9 @@ public class AgentRewardQueueTask { ...@@ -123,6 +119,9 @@ public class AgentRewardQueueTask {
} else if (rewardType == AGENT_REWARD_TYPE_SELF_ORDER } else if (rewardType == AGENT_REWARD_TYPE_SELF_ORDER
&& message.getOrderType().equals(ORDER_TYPE_ELM) ) { && message.getOrderType().equals(ORDER_TYPE_ELM) ) {
rateMap = AGENT_RATE_MAP.get(rewardType + ELM_OFFSET); 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 { } else {
rateMap = AGENT_RATE_MAP.get(rewardType); rateMap = AGENT_RATE_MAP.get(rewardType);
} }
...@@ -332,7 +331,8 @@ public class AgentRewardQueueTask { ...@@ -332,7 +331,8 @@ public class AgentRewardQueueTask {
*/ */
BigDecimal rewardBasement; BigDecimal rewardBasement;
if (rewardType == AGENT_REWARD_TYPE_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_HALF_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_SVIP 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(); rewardBasement = message.getSourceUserPayment();
} else { } 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: ...@@ -84,7 +84,8 @@ spring:
converters: converters:
preferred-json-mapper: fastjson preferred-json-mapper: fastjson
server: server:
port: 8099 port: 8000 #线上
# port: 8333 #测试
http2: http2:
enabled: true enabled: true
tomcat: 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