commit. activity

Nabeel-DG-BS
Raja Nabeel 2 years ago
parent 31ff361e90
commit 406bf7dce1

@ -21,5 +21,5 @@ public interface UCOURI {
String BANKING_CASH_IN = "/deposit/transactions/uco/cash-in";
String BANKING_CASH_OUT = "/deposit/transactions/uco/cash-out";
String ACCOUNT_ACTIVITY = "/account/activity/organization/{porOrgacode}/customer/{cmpCustcode}/customertype/{pctCstycode}/fromdate/{fdate}/todate/{tdate}";
String ACCOUNT_ACTIVITY = "/account/activity/organization/{porOrgacode}/customer/{cmpCustcode}/fromdate/{fdate}/todate/{tdate}";
}

@ -12,67 +12,71 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.util.ContentCachingResponseWrapper;
import java.io.IOException;
import java.net.URLDecoder;
import java.time.LocalDateTime;
@Component
public class LoggingActivityFilter extends OncePerRequestFilter {
private static final Logger LOGGER = LoggerFactory.getLogger(LoggingActivityFilter.class);
private final CustomerProfileRepository customerProfileRepository;
private final CustomerAccountActivityService custAccActivityService;
private final CustomerAccountActivityService customerAccountActivityService;
public LoggingActivityFilter(CustomerProfileRepository customerProfileRepository, CustomerAccountActivityService custAccActivityService) {
public LoggingActivityFilter(CustomerProfileRepository customerProfileRepository, CustomerAccountActivityService customerAccountActivityService) {
this.customerProfileRepository = customerProfileRepository;
this.custAccActivityService = custAccActivityService;
this.customerAccountActivityService = customerAccountActivityService;
}
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
setAccessControlHeaders(response);
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
} else {
filterChain.doFilter(request, response);
logRequestDetails(request, response);
handleUserActivityLogging(request);
}
}
private void setAccessControlHeaders(HttpServletResponse response) {
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", "*");
response.setHeader("Access-Control-Expose-Headers", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS");
if (!(request.getMethod().equals("OPTIONS"))) {
filterChain.doFilter(request, response);
}
}
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
LOGGER.info(
"FINISHED PROCESSING: METHOD={}; REQUESTURI={}; RESPONSE CODE={}; IP={};",
request.getMethod(),
request.getRequestURI(),
response.getStatus(),
request.getRemoteAddr()
);
private void logRequestDetails(HttpServletRequest request, HttpServletResponse response) {
LOGGER.info("FINISHED PROCESSING: METHOD={}; REQUESTURI={}; RESPONSE CODE={}; IP={};",
request.getMethod(), request.getRequestURI(), response.getStatus(), request.getRemoteAddr());
}
CustomerProfile cust;
String susUsercode = "";
if(request.getHeader("cmpUserId")!=null) {
susUsercode = URLDecoder.decode(request.getHeader("cmpUserId"), "UTF-8");
}
String porOrgacode = request.getHeader("porOrgacode");
String email = request.getHeader("email");
String channalCode = request.getHeader("channelCode");
String deviceName = request.getHeader("deviceName");
String userActivity = request.getHeader("userActivity");
cust = customerProfileRepository.findbyEmail(porOrgacode,email);
LocalDateTime date = LocalDateTime.now();
private void handleUserActivityLogging(HttpServletRequest request) {
try {
String susUserCode = request.getHeader("cmpUserId") != null ? URLDecoder.decode(request.getHeader("cmpUserId"), "UTF-8") : "";
String porOrgacode = request.getHeader("porOrgacode");
String email = request.getHeader("email");
String channelCode = request.getHeader("channelCode");
String deviceName = request.getHeader("deviceName");
String userActivity = request.getHeader("userActivity");
if (cust != null && userActivity!=null) {
CustomerAccountActivity activity = new CustomerAccountActivity(
null,
porOrgacode,
cust.getCmpCustcode(),
date,
channalCode,
deviceName,
userActivity,
cust
);
custAccActivityService.postCustomerAccountActivity(activity);;
CustomerProfile customer = customerProfileRepository.findbyEmail(porOrgacode,email);
if (customer != null && userActivity != null) {
CustomerAccountActivity activity = new CustomerAccountActivity(
null,
porOrgacode,
customer.getCmpCustcode(),
LocalDateTime.now(),
channelCode,
deviceName,
userActivity,
customer
);
customerAccountActivityService.postCustomerAccountActivity(activity);
}
} catch (Exception e) {
LOGGER.error("Error logging user activity", e);
}
}
}

@ -163,9 +163,9 @@ public class UserController {
@GetMapping(UCOURI.ACCOUNT_ACTIVITY)
public ResponseEntity<List<CustomerAccountActivity>> getCustomerAccountActivity(
@PathVariable String porOrgacode, @PathVariable String cmpCustcode,@RequestHeader String cmpUserId , @PathVariable String pctCstycode,@PathVariable String fdate,@PathVariable String tdate) {
@PathVariable String porOrgacode, @PathVariable String cmpCustcode,@PathVariable String fdate,@PathVariable String tdate) {
return new ResponseEntity<List<CustomerAccountActivity>>(
customerAccountActivityService.getCustomerAccountActivity(porOrgacode, pctCstycode, cmpCustcode,cmpUserId, fdate, tdate),
customerAccountActivityService.getCustomerAccountActivity(porOrgacode, cmpCustcode, fdate, tdate),
HttpStatus.OK);
}

@ -10,8 +10,8 @@ import java.util.List;
@Repository
public interface CustomerAccountActivityRepository extends JpaRepository<CustomerAccountActivity, Integer> {
@Query("SELECT cust FROM CustomerAccountActivity cust WHERE cust.cmpCustcode = :cmpUserId AND DATE(cust.date) BETWEEN DATE(:fdate) AND DATE(:tdate)")
List<CustomerAccountActivity> findAllByCmpUserIdAndDateBetween(String cmpUserId, String fdate, String tdate);
@Query("SELECT cust FROM CustomerAccountActivity cust WHERE cust.porOrgacode = :porOrgacode and cust.cmpCustcode = :cmpCustcode AND DATE(cust.date) BETWEEN DATE(:fdate) AND DATE(:tdate)")
List<CustomerAccountActivity> findAllByCmpUserIdAndDateBetween(String porOrgacode, String cmpCustcode, String fdate, String tdate);
}

@ -17,14 +17,11 @@ public class CustomerAccountActivityService {
this.customerAccountActivityRepository = customerAccountActivityRepository;
}
public List<CustomerAccountActivity> getCustomerAccountActivity(String porOrgacode, String pctCstycode,
String cmpCustcode, String cmpUserId, String fdate, String tdate) {
return customerAccountActivityRepository.findAllByCmpUserIdAndDateBetween(cmpUserId, fdate, tdate);
public List<CustomerAccountActivity> getCustomerAccountActivity(String porOrgacode, String cmpCustcode, String fdate, String tdate) {
return customerAccountActivityRepository.findAllByCmpUserIdAndDateBetween(porOrgacode,cmpCustcode, fdate, tdate);
}
public void postCustomerAccountActivity(CustomerAccountActivity customerAccountActivity) {
// TODO Auto-generated method stub
customerAccountActivityRepository.save(customerAccountActivity);
}

Loading…
Cancel
Save