浏览代码

1.增加推广人接口.

tomatozq 5 年之前
父节点
当前提交
351c9cb4b7

+ 29 - 11
picc-admin-server/src/main/java/com/jpsoft/picc/advice/PermissionAdvice.java

@@ -2,6 +2,7 @@ package com.jpsoft.picc.advice;
 
 import com.jpsoft.picc.modules.common.dto.MessageResult;
 import com.jpsoft.picc.modules.sys.service.PermissionService;
+import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
@@ -18,11 +19,10 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import javax.servlet.http.HttpServletRequest;
 import java.lang.reflect.Method;
 
+@Slf4j
 @Aspect
 @Component
 public class PermissionAdvice {
-    private  Logger logger= LoggerFactory.getLogger("root");
-
     @Autowired
     private PermissionService permissionService;
 
@@ -37,9 +37,9 @@ public class PermissionAdvice {
 
         String classType = point.getTarget().getClass().getName();
         Class<?> clazz = Class.forName(classType);
-        String clazzName = clazz.getName();
         String clazzSimpleName = clazz.getSimpleName();
-        String methodName = point.getSignature().getName();
+        MethodSignature methodSignature = (MethodSignature) point.getSignature();
+        String methodName = methodSignature.getName();
 
         // 通过正则表达式判断当前url是否符合
         //PathMatcher matcher = new AntPathMatcher();
@@ -54,7 +54,6 @@ public class PermissionAdvice {
         }
 
         //查询方法的RequestMapping注解
-        MethodSignature methodSignature = (MethodSignature)point.getSignature();
         Method method = methodSignature.getMethod();
 
         RequestMapping methodMapping = method.getAnnotation(RequestMapping.class);
@@ -75,9 +74,28 @@ public class PermissionAdvice {
 
         if(requestAttrs!=null) {
             HttpServletRequest request = requestAttrs.getRequest();
-            logger.warn("访问地址:" + request.getRequestURL().toString());
+            log.warn("访问地址:" + request.getRequestURL().toString());
+            log.warn("path=" + pathBuilder.toString());
+
+            //1.这里获取到所有的参数值的数组
+            Object[] args = point.getArgs();
+            String[] parameterNames = methodSignature.getParameterNames();
+
+            StringBuilder argBuilder = new StringBuilder();
+
+            for (int i = 0;i<Math.min(args.length, parameterNames.length);i++) {
+                if (argBuilder.length()!=0){
+                    argBuilder.append("&");
+                }
+
+                if(args[i] != null) {
+                    String value = args[i].toString();
+                    value = value.length() > 255 ? value.substring(0, 255) : value;
+                    argBuilder.append(parameterNames[i] + "=" + value);
+                }
+            }
 
-            logger.warn("path=" + pathBuilder.toString());
+            log.warn(argBuilder.toString());
 
             String userId = (String)request.getAttribute("subject");
 
@@ -85,10 +103,10 @@ public class PermissionAdvice {
 
             // 查询该url是否加入到权限控制中,如果是则查询当前用户是否能访问该url
             if (existed) {
-                logger.warn(pathBuilder.toString() + "已加入权限控制");
+                log.warn(pathBuilder.toString() + "已加入权限控制");
 
                 boolean permitted = permissionService.hasPermitted(userId, pathBuilder.toString(), request.getMethod());
-                logger.warn("是否许可当前用户访问:" + permitted);
+                log.warn("是否许可当前用户访问:" + permitted);
 
                 if(permitted){
                     // 执行切入方法
@@ -104,7 +122,7 @@ public class PermissionAdvice {
                 }
             }
             else{
-                logger.warn(pathBuilder.toString() + "未加入权限控制");
+                log.warn(pathBuilder.toString() + "未加入权限控制");
 
                 // 执行切入方法
                 obj = point.proceed();
@@ -114,7 +132,7 @@ public class PermissionAdvice {
         long elapse = System.currentTimeMillis() - start;
 
         System.out.println(classType);
-        logger.warn(String.format("调用类%s方法%s耗时%s毫秒",clazzSimpleName,methodName,elapse));
+        log.warn(String.format("调用类%s方法%s耗时%s毫秒",clazzSimpleName,methodName,elapse));
 
         return obj;
     }

+ 0 - 184
picc-admin-server/src/main/java/com/jpsoft/picc/modules/base/controller/CompanyController.java

@@ -1,28 +1,20 @@
 package com.jpsoft.picc.modules.base.controller;
 
 import com.github.pagehelper.Page;
-import com.jpsoft.picc.modules.base.controller.dto.PromoterDto;
 import com.jpsoft.picc.modules.base.entity.Company;
 import com.jpsoft.picc.modules.base.entity.CompanyUser;
 import com.jpsoft.picc.modules.base.service.CompanyUserService;
-import com.jpsoft.picc.modules.business.entity.InsuranceApplication;
-import com.jpsoft.picc.modules.business.service.InsuranceApplicationService;
-import com.jpsoft.picc.modules.common.constant.PolicyStatus;
-import com.jpsoft.picc.modules.common.dto.MsgResult;
 import com.jpsoft.picc.modules.common.utils.PojoUtils;
 import com.jpsoft.picc.modules.common.dto.Sort;
 import com.jpsoft.picc.modules.common.dto.MessageResult;
 import com.jpsoft.picc.modules.base.service.CompanyService;
 import io.swagger.annotations.*;
-import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 @RestController
@@ -37,9 +29,6 @@ public class CompanyController {
     @Autowired
     private CompanyUserService companyUserService;
 
-    @Autowired
-    private InsuranceApplicationService insuranceApplicationService;
-
     @ApiOperation(value="获取信息")
     @GetMapping("detail")
     @ApiImplicitParams({
@@ -242,177 +231,4 @@ public class CompanyController {
 
         return msgResult;
     }
-
-
-    @ApiOperation(value="保存推广者信息")
-    @RequestMapping(value = "savePromot",method = RequestMethod.POST)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "userName",value = "企业账户用户名", required = true, paramType = "query"),
-            @ApiImplicitParam(name = "promoter",value = "推广者帐号", required = true, paramType = "query"),
-            @ApiImplicitParam(name = "openId",value = "微信ID", required = true, paramType = "query"),
-    })
-    public MsgResult<Integer> savePromot(String userName,String promoter,String openId, @RequestAttribute String subject){
-
-        MsgResult<Integer> msgResult = new MsgResult<Integer>();
-
-        try {
-            Company company = new Company();
-            company.setId(UUID.randomUUID().toString());
-            company.setName(promoter);
-            company.setCreateBy(subject);
-            company.setCreateTime(new Date());
-            company.setDelFlag(false);
-
-            int affectCount = companyService.insert(company);
-
-            int affectCount1 = 0;
-
-            if(affectCount>0){
-                CompanyUser companyUser = new CompanyUser();
-                companyUser.setId(UUID.randomUUID().toString());
-                companyUser.setUserName(userName);
-                companyUser.setOpenId(openId);
-                companyUser.setCreateBy(subject);
-                companyUser.setCreateTime(new Date());
-                companyUser.setDelFlag(false);
-                companyUser.setCompanyId(company.getId());
-
-                affectCount1 = companyUserService.insert(companyUser);
-            }
-
-            if (affectCount1 > 0) {
-                msgResult.setSuccess(true);
-                msgResult.setData(affectCount1);
-            } else {
-                msgResult.setSuccess(false);
-                msgResult.setMsg("数据库添加失败");
-            }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
-
-            msgResult.setSuccess(false);
-            msgResult.setMsg(ex.getMessage());
-        }
-
-        return msgResult;
-    }
-
-
-    @ApiOperation(value="推广者推广统计数据")
-    @RequestMapping(value = "getPromoterData",method = RequestMethod.POST)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "promoter",value = "推广者帐号", required = true, paramType = "query")
-    })
-    public MsgResult<PromoterDto> getPromoterData(String promoter, @RequestAttribute String subject){
-
-        MsgResult<PromoterDto> msgResult = new MsgResult<PromoterDto>();
-
-        PromoterDto promoterDto = new PromoterDto();
-
-        try {
-
-            Date date = new Date();
-
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
-
-            Calendar calendar = Calendar.getInstance();
-
-            calendar.setTime(date);
-
-            calendar.add(Calendar.MONTH, 1);//增加一个月
-
-            Date dt1 = calendar.getTime();
-
-            String startTime = sdf.format(date) + "-01";
-            String endTime = sdf.format(dt1) + "-01";
-
-
-            //累计客户数
-            List<Company> companyList = companyService.findByPromoter(promoter);
-
-            BigDecimal total = new BigDecimal(0);
-            BigDecimal month = new BigDecimal(0);
-
-            for (Company company : companyList) {
-                String status = String.valueOf(PolicyStatus.SendOutPolicy.getValue());
-                //累计投保生效金额
-                List<InsuranceApplication> insuranceApplicationList = insuranceApplicationService.findByCompanyId(company.getId(),status);
-
-                for (InsuranceApplication insuranceApplication : insuranceApplicationList) {
-                    BigDecimal insuranceFee = insuranceApplication.getInsuranceFee();
-                    total = total.add(insuranceFee);
-                }
-
-                //本月投保生效金额
-                List<InsuranceApplication> insuranceApplicationList2 = insuranceApplicationService.findByCompanyIdAndCreatTime(company.getId(), status,startTime, endTime);
-
-                for (InsuranceApplication insuranceApplication : insuranceApplicationList2) {
-                    BigDecimal insuranceFee = insuranceApplication.getInsuranceFee();
-                    month = month.add(insuranceFee);
-                }
-            }
-
-
-            //本月客户数
-            List<Company> monthCompanyList = companyService.findByPromoterAndCreatTime(promoter, startTime, endTime);
-
-            promoterDto.setCompanyNum(companyList.size());
-            promoterDto.setMonthCompanyNum(monthCompanyList.size());
-            promoterDto.setTotalInsuranceFee(total);
-            promoterDto.setMonthInsuranceFee(month);
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
-
-            msgResult.setSuccess(false);
-            msgResult.setMsg(ex.getMessage());
-        }
-
-
-        msgResult.setSuccess(true);
-        msgResult.setData(promoterDto);
-
-        return msgResult;
-    }
-
-
-
-
-    @ApiOperation(value="推广成功客户明细数据")
-    @RequestMapping(value = "promoterSuccess",method = RequestMethod.POST)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "promoter",value = "推广者帐号", required = true, paramType = "query"),
-            @ApiImplicitParam(name = "startTime",value = "开始时间", required = true, paramType = "query"),
-            @ApiImplicitParam(name = "endTime",value = "结束时间", required = true, paramType = "query")
-    })
-    public MsgResult<Map> promoterSuccess(
-            String promoter,String startTime,String endTime,
-            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
-            @RequestParam(value="pageSize",defaultValue="20") int pageSize, @RequestAttribute String subject){
-
-        //当前用户ID
-        System.out.println(subject);
-
-        MsgResult<Map> msgResult = new MsgResult<Map>();
-
-        Map<String,Object> searchParams = new HashMap<>();
-
-        List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("create_time","desc"));
-
-        searchParams.put("promoter",promoter);
-        searchParams.put("startTime",startTime);
-        searchParams.put("endTime",endTime);
-
-        Page<Company> page = companyService.pageSearch(searchParams,pageIndex,pageSize,sortList);
-
-        msgResult.setSuccess(true);
-        msgResult.setData(PojoUtils.pageWrapper(page));
-
-        return msgResult;
-
-    }
-
-
 }

+ 227 - 0
picc-admin-server/src/main/java/com/jpsoft/picc/modules/base/controller/PromoterController.java

@@ -0,0 +1,227 @@
+package com.jpsoft.picc.modules.base.controller;
+
+import com.github.pagehelper.Page;
+import com.jpsoft.picc.modules.base.dto.PromoterDto;
+import com.jpsoft.picc.modules.base.entity.Company;
+import com.jpsoft.picc.modules.base.entity.CompanyUser;
+import com.jpsoft.picc.modules.base.service.CompanyService;
+import com.jpsoft.picc.modules.base.service.CompanyUserService;
+import com.jpsoft.picc.modules.business.entity.InsuranceApplication;
+import com.jpsoft.picc.modules.business.service.InsuranceApplicationService;
+import com.jpsoft.picc.modules.common.constant.PolicyStatus;
+import com.jpsoft.picc.modules.common.dto.MsgResult;
+import com.jpsoft.picc.modules.common.dto.Sort;
+import com.jpsoft.picc.modules.common.utils.PojoUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Api(description = "推广者API")
+@Slf4j
+@RestController
+@RequestMapping("/pub/promoter")
+public class PromoterController {
+    @Autowired
+    private CompanyService companyService;
+
+    @Autowired
+    private CompanyUserService companyUserService;
+
+    @Autowired
+    private InsuranceApplicationService insuranceApplicationService;
+
+    @ApiOperation(value="保存推广者信息")
+    @RequestMapping(value = "save",method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "promoter",value = "推广者帐号", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "userName",value = "企业账户用户名", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "companyName",value = "企业名", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "openId",value = "企业账户微信ID", required = true, paramType = "query"),
+    })
+    public MsgResult<String> save(String promoter,String userName,String companyName, String openId){
+        MsgResult<String> msgResult = new MsgResult<String>();
+
+        try {
+            CompanyUser companyUser = companyUserService.findByUserName(userName);
+
+            if(companyUser==null) {
+                Company company = new Company();
+                company.setId(UUID.randomUUID().toString());
+                company.setName(companyName);
+                company.setPromoter(promoter);
+                company.setCreateBy(userName);
+                company.setCreateTime(new Date());
+                company.setDelFlag(false);
+
+                int affectCount = companyService.insert(company);
+
+                if (affectCount > 0) {
+                    companyUser = new CompanyUser();
+                    companyUser.setId(UUID.randomUUID().toString());
+                    companyUser.setUserName(userName);
+                    companyUser.setOpenId(openId);
+                    companyUser.setCreateBy(userName);
+                    companyUser.setCreateTime(new Date());
+                    companyUser.setDelFlag(false);
+                    companyUser.setCompanyId(company.getId());
+
+                    affectCount = companyUserService.insert(companyUser);
+
+                    if (affectCount > 0) {
+                        msgResult.setSuccess(true);
+                    } else {
+                        msgResult.setSuccess(false);
+                        msgResult.setMsg("添加企业用户信息失败!");
+                    }
+                }
+                else{
+                    msgResult.setMsg("添加企业信息失败!");
+                }
+            }
+            else{
+                msgResult.setSuccess(false);
+                msgResult.setMsg("企业账户" + userName + "已存在!");
+            }
+        }
+        catch(Exception ex){
+            log.error(ex.getMessage(),ex);
+
+            msgResult.setSuccess(false);
+            msgResult.setMsg(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="推广者推广统计数据")
+    @RequestMapping(value = "promoterStatData",method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "promoter",value = "推广者帐号", required = true, paramType = "query")
+    })
+    public MsgResult<PromoterDto> promoterStatData(String promoter){
+        MsgResult<PromoterDto> msgResult = new MsgResult<PromoterDto>();
+        PromoterDto promoterDto = new PromoterDto();
+
+        try {
+
+            Date date = new Date();
+
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+
+            Calendar calendar = Calendar.getInstance();
+
+            calendar.setTime(date);
+
+            calendar.add(Calendar.MONTH, 1);//增加一个月
+
+            Date dt1 = calendar.getTime();
+
+            String startTime = sdf.format(date) + "-01";
+            String endTime = sdf.format(dt1) + "-01";
+
+            //累计客户数
+            List<Company> companyList = companyService.findByPromoter(promoter);
+
+            BigDecimal total = new BigDecimal(0);
+            BigDecimal month = new BigDecimal(0);
+
+            for (Company company : companyList) {
+                String status = String.valueOf(PolicyStatus.SendOutPolicy.getValue());
+                //累计投保生效金额
+                List<InsuranceApplication> insuranceApplicationList = insuranceApplicationService.findByCompanyId(company.getId(),status);
+
+                for (InsuranceApplication insuranceApplication : insuranceApplicationList) {
+                    BigDecimal insuranceFee = insuranceApplication.getInsuranceFee();
+                    total = total.add(insuranceFee);
+                }
+
+                //本月投保生效金额
+                List<InsuranceApplication> insuranceApplicationList2 = insuranceApplicationService.findByCompanyIdAndCreatTime(company.getId(), status,startTime, endTime);
+
+                for (InsuranceApplication insuranceApplication : insuranceApplicationList2) {
+                    BigDecimal insuranceFee = insuranceApplication.getInsuranceFee();
+                    month = month.add(insuranceFee);
+                }
+            }
+
+
+            //本月客户数
+            List<Company> monthCompanyList = companyService.findByPromoterAndCreatTime(promoter, startTime, endTime);
+
+            promoterDto.setCompanyNum(companyList.size());
+            promoterDto.setMonthCompanyNum(monthCompanyList.size());
+            promoterDto.setTotalInsuranceFee(total);
+            promoterDto.setMonthInsuranceFee(month);
+        }
+        catch(Exception ex){
+            log.error(ex.getMessage(),ex);
+
+            msgResult.setSuccess(false);
+            msgResult.setMsg(ex.getMessage());
+        }
+
+
+        msgResult.setSuccess(true);
+        msgResult.setData(promoterDto);
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="推广成功客户明细数据")
+    @RequestMapping(value = "promoterSuccessData",method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "promoter",value = "推广者帐号", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "startTime",value = "开始时间", required = false, paramType = "query"),
+            @ApiImplicitParam(name = "endTime",value = "结束时间", required = false, paramType = "query")
+    })
+    public MsgResult<Map> promoterSuccessData(
+            String promoter,String startTime,String endTime,
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize){
+        MsgResult<Map> msgResult = new MsgResult<Map>();
+
+        Map<String,Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("create_time","desc"));
+
+        searchParams.put("promoter",promoter);
+        searchParams.put("startTime",startTime);
+        searchParams.put("endTime",endTime);
+
+        Page<Company> page = companyService.pageSearch(searchParams,pageIndex,pageSize,sortList);
+
+        msgResult.setSuccess(true);
+
+        Map dataMap = PojoUtils.pageWrapper(page);
+
+        //客户企业名称、客户注册时间、联系电话
+        List<Map> mapList = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        for (Company company: page.getResult()) {
+            Map<String,Object> map = new HashMap<>();
+            map.put("name",company.getName());
+            map.put("createTime", sdf.format(company.getCreateTime()));
+            map.put("tel",company.getTel());
+
+            mapList.add(map);
+        }
+
+        dataMap.put("data",mapList);
+
+        msgResult.setData(dataMap);
+
+        return msgResult;
+
+    }
+}

+ 1 - 1
picc-admin-server/src/main/java/com/jpsoft/picc/modules/base/controller/dto/PromoterDto.java → picc-admin-server/src/main/java/com/jpsoft/picc/modules/base/dto/PromoterDto.java

@@ -1,4 +1,4 @@
-package com.jpsoft.picc.modules.base.controller.dto;
+package com.jpsoft.picc.modules.base.dto;
 
 
 import io.swagger.annotations.ApiModel;

+ 17 - 0
picc-admin-server/src/main/resources/logback-spring.xml

@@ -22,6 +22,16 @@
             <pattern>${pattern}</pattern>
         </encoder>
     </appender>
+    <appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${loggerPath}/access/access.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${loggerPath}/access/access.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%date [%file : %line] %msg%n</pattern>
+        </encoder>
+    </appender>
     <!--
     直接用maven的变量是@...@,用spring的变量是${...}
     -->
@@ -33,12 +43,19 @@
         <logger name="jdbc.sqltiming" additivity="false" level="ON">
             <appender-ref ref="STDOUT" />
         </logger>
+        <logger name="com.jpsoft.picc.advice.PermissionAdvice" additivity="false" level="ON">
+            <appender-ref ref="STDOUT" />
+            <appender-ref ref="ACCESS" />
+        </logger>
     </springProfile>
     <springProfile name="test">
         <root level="WARN">
             <appender-ref ref="STDOUT" />
             <appender-ref ref="FILE" />
         </root>
+        <logger name="com.jpsoft.picc.advice.PermissionAdvice" additivity="false" level="ON">
+            <appender-ref ref="ACCESS" />
+        </logger>
     </springProfile>
     <springProfile name="production">
         <root level="WARN">

+ 4 - 2
picc-common/src/main/resources/mapper/base/Company.xml

@@ -214,8 +214,10 @@ id_,name_,legal_name,legal_card,legal_card_file,uscc_code,uscc_files,type_,busin
 
 	<select id="findByPromoterAndCreatTime" resultMap="CompanyMap">
 		<![CDATA[
-		select * from base_company where promoter_=#{promoter} and del_flag=0 and create_time >= str_to_date( #{startTime},'%Y-%m-%d')
-			AND create_time < str_to_date( #{endTime},'%Y-%m-%d')
+		select * from base_company where
+			promoter_=#{promoter} and del_flag=0
+			and create_time >= str_to_date( #{startTime},'%Y-%m-%d')
+			and create_time < str_to_date( #{endTime},'%Y-%m-%d')
 		]]>
 	</select>
 </mapper>