Commit 0f2e867e by Water Wang

optimize

parents 649aedd0 a59a1f7c
......@@ -78,4 +78,33 @@ public class AgmsController {
result.setData(responseVO);
return result;
}
/**
* AGMS -- Dashboard查询 销售统计查询
* @param requestVO 请求数据
* @return 响应数据
*/
@RequestMapping("/statisticsSales")
public Object statisticsSales(@RequestBody StatisticsSalesRequestVO requestVO){
JsonResult result = new JsonResult();
StatisticsSalesResponseVO responseVO = agmsDashboardService.statisticsSales(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
/**
* AGMS -- Dashboard查询 经纪人统计查询
* @param requestVO 请求数据
* @return 响应数据
*/
@RequestMapping("/statisticsPractitioner")
public Object statisticsPractitioner(@RequestBody StatisticsPractitionerRequestVO requestVO){
JsonResult result = new JsonResult();
StatisticsPractitionerResponseVO responseVO = agmsDashboardService.statisticsPractitioner(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
}
......@@ -23,4 +23,18 @@ public interface AgmsDashboardService {
* @return 响应数据
*/
StatisticsForecastTotalResponseVO statisticsForecastTotal(StatisticsForecastTotalRequestVO requestVO);
/**
* AGMS -- Dashboard查询 销售统计查询
* @param requestVO 请求数据
* @return 响应数据
*/
StatisticsSalesResponseVO statisticsSales(StatisticsSalesRequestVO requestVO);
/**
* AGMS -- Dashboard查询 经纪人统计查询
* @param requestVO 请求数据
* @return 响应数据
*/
StatisticsPractitionerResponseVO statisticsPractitioner(StatisticsPractitionerRequestVO requestVO);
}
package com.yd.api.agms.service.impl;
import com.google.common.base.Strings;
import com.yd.api.agms.service.AgmsDashboardService;
import com.yd.api.agms.vo.dashboard.*;
import com.yd.api.result.CommonResult;
......@@ -12,6 +13,9 @@ import com.yd.util.config.ZHBErrorConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
@Service("agmsDashboardService")
......@@ -84,4 +88,73 @@ public class AgmsDashboardServiceImpl implements AgmsDashboardService {
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
}
@Override
public StatisticsSalesResponseVO statisticsSales(StatisticsSalesRequestVO requestVO) {
StatisticsSalesResponseVO responseVO = new StatisticsSalesResponseVO();
String category = requestVO.getCategory();
String time = requestVO.getTime();
String type = requestVO.getType();
category = Strings.isNullOrEmpty(category) ? "all" : category;
time = Strings.isNullOrEmpty(time) ? "m" : time;
type = Strings.isNullOrEmpty(type) ? "b" : type;
List<StatisticsSalesInfo> statisticsSalesInfos;
if("life".equals(category)){//寿险
statisticsSalesInfos = agmsDashboardDALService.statisticsSalesEG(type,time);
}else if("pc".equals(category)){//产险
statisticsSalesInfos = agmsDashboardDALService.statisticsSalesYD(type,time);
}else{
statisticsSalesInfos = getAll(type,time);
}
responseVO.setStatisticsSalesInfos(statisticsSalesInfos);
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
}
/**
* dashBoard -- 寿险+产险销售统计
* @param type 类型
* @param time 时间
* @return 数据
*/
private List<StatisticsSalesInfo> getAll(String type, String time) {
StatisticsSalesInfo statisticsSalesInfo = new StatisticsSalesInfo();
List<StatisticsSalesInfo> statisticsSalesInfos = new ArrayList<>();
String unitPremium = "0";
double fyp = 0D,fyc = 0D;
Integer pieces = 0;
List<StatisticsSalesInfo> statisticsSalesInfosLife = agmsDashboardDALService.statisticsSalesEG(type,time);
List<StatisticsSalesInfo> statisticsSalesInfosPC = agmsDashboardDALService.statisticsSalesYD(type,time);
statisticsSalesInfosLife.addAll(statisticsSalesInfosPC);
if(statisticsSalesInfosLife.size() > 0){
for(StatisticsSalesInfo item : statisticsSalesInfosLife){
fyp += Double.parseDouble(item.getFyp());
fyc += Double.parseDouble(item.getFyc());
pieces += item.getPieces();
}
if(pieces != 0){
unitPremium = BigDecimal.valueOf(fyp / pieces).setScale(2,BigDecimal.ROUND_HALF_UP).toString();
}
}
statisticsSalesInfo.setFyc(new DecimalFormat("0.00").format(fyc));
statisticsSalesInfo.setFyp(new DecimalFormat("0.00").format(fyp));
statisticsSalesInfo.setPieces(pieces);
statisticsSalesInfo.setUnitPremium(unitPremium);
statisticsSalesInfo.setTypeName("寿险+财险");
statisticsSalesInfos.add(statisticsSalesInfo);
return statisticsSalesInfos;
}
@Override
public StatisticsPractitionerResponseVO statisticsPractitioner(StatisticsPractitionerRequestVO requestVO) {
StatisticsPractitionerResponseVO responseVO = new StatisticsPractitionerResponseVO();
String type = requestVO.getType();
type = Strings.isNullOrEmpty(type) ? "b" : type;
List<StatisticsPractitionerInfo> statisticsPractitionerInfos = agmsDashboardDALService.statisticsPractitioner(type);
responseVO.setStatisticsPractitionerInfos(statisticsPractitionerInfos);
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
}
}
package com.yd.api.agms.vo.dashboard;
public class StatisticsPractitionerInfo {
private String typeName;
private Long typeId;
private Integer amount;
private Integer realAmount;
private Double realRate;
private Integer mdrt;
public Long getTypeId() {
return typeId;
}
public void setTypeId(Long typeId) {
this.typeId = typeId;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public Integer getAmount() {
return amount;
}
public void setAmount(Integer amount) {
this.amount = amount;
}
public Integer getRealAmount() {
return realAmount;
}
public void setRealAmount(Integer realAmount) {
this.realAmount = realAmount;
}
public Double getRealRate() {
return realRate;
}
public void setRealRate(Double realRate) {
this.realRate = realRate;
}
public Integer getMdrt() {
return mdrt;
}
public void setMdrt(Integer mdrt) {
this.mdrt = mdrt;
}
}
package com.yd.api.agms.vo.dashboard;
public class StatisticsPractitionerRequestVO {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
package com.yd.api.agms.vo.dashboard;
import com.yd.api.result.CommonResult;
import java.util.List;
public class StatisticsPractitionerResponseVO {
private List<StatisticsPractitionerInfo> statisticsPractitionerInfos;
private CommonResult commonResult;
public List<StatisticsPractitionerInfo> getStatisticsPractitionerInfos() {
return statisticsPractitionerInfos;
}
public void setStatisticsPractitionerInfos(List<StatisticsPractitionerInfo> statisticsPractitionerInfos) {
this.statisticsPractitionerInfos = statisticsPractitionerInfos;
}
public CommonResult getCommonResult() {
return commonResult;
}
public void setCommonResult(CommonResult commonResult) {
this.commonResult = commonResult;
}
}
package com.yd.api.agms.vo.dashboard;
public class StatisticsSalesInfo {
private String typeName;
private Long typeId;
private String fyp;
private String fyc;
private Double api;
private Integer pieces;
private String unitPremium;
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public Long getTypeId() {
return typeId;
}
public void setTypeId(Long typeId) {
this.typeId = typeId;
}
public String getFyp() {
return fyp;
}
public void setFyp(String fyp) {
this.fyp = fyp;
}
public String getFyc() {
return fyc;
}
public void setFyc(String fyc) {
this.fyc = fyc;
}
public Double getApi() {
return api;
}
public void setApi(Double api) {
this.api = api;
}
public Integer getPieces() {
return pieces;
}
public void setPieces(Integer pieces) {
this.pieces = pieces;
}
public String getUnitPremium() {
return unitPremium;
}
public void setUnitPremium(String unitPremium) {
this.unitPremium = unitPremium;
}
}
package com.yd.api.agms.vo.dashboard;
public class StatisticsSalesRequestVO {
private String type;// d:整体,t:团体
private String time;//d:天,w:周,m:月,q:季,y:年
private String category;//life:寿险,pc:财险,all:全部
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
package com.yd.api.agms.vo.dashboard;
import com.yd.api.result.CommonResult;
import java.util.List;
public class StatisticsSalesResponseVO {
private List<StatisticsSalesInfo> statisticsSalesInfos;
private CommonResult commonResult;
public List<StatisticsSalesInfo> getStatisticsSalesInfos() {
return statisticsSalesInfos;
}
public void setStatisticsSalesInfos(List<StatisticsSalesInfo> statisticsSalesInfos) {
this.statisticsSalesInfos = statisticsSalesInfos;
}
public CommonResult getCommonResult() {
return commonResult;
}
public void setCommonResult(CommonResult commonResult) {
this.commonResult = commonResult;
}
}
package com.yd.dal.mapper.agms;
import com.yd.api.agms.vo.dashboard.StatisticsPractitionerInfo;
import com.yd.api.agms.vo.dashboard.StatisticsSalesInfo;
import com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo;
import com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo;
import org.apache.ibatis.annotations.Param;
......@@ -14,4 +16,10 @@ public interface AgmsDashboardMapper {
List<StatisticsOpportunityInfo> statisticsOpportunity(@Param("type")String type,@Param("time") String time, @Param("dropOptionId") Long dropOptionId);
List<Map<String, Long>> getPractitionerNums(@Param("type")String type);
List<StatisticsSalesInfo> statisticsSalesYD(@Param("type")String type, @Param("time")String time);
List<StatisticsPractitionerInfo> statisticsPractitioner(@Param("type")String type);
List<StatisticsSalesInfo> statisticsSalesEG(@Param("type")String type, @Param("time")String time);
}
package com.yd.dal.service.agms;
import com.yd.api.agms.vo.dashboard.StatisticsPractitionerInfo;
import com.yd.api.agms.vo.dashboard.StatisticsSalesInfo;
import com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo;
import com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo;
......@@ -9,4 +11,10 @@ public interface AgmsDashboardDALService {
List<StatisticsPEPInfo> statisticsPEP(String type,Long dropOptionId);
List<StatisticsOpportunityInfo> statisticsOpportunity(String type,String time, Long id);
List<StatisticsSalesInfo> statisticsSalesYD(String type, String time);
List<StatisticsPractitionerInfo> statisticsPractitioner(String type);
List<StatisticsSalesInfo> statisticsSalesEG(String type, String time);
}
package com.yd.dal.service.agms.impl;
import com.yd.api.agms.vo.dashboard.StatisticsPractitionerInfo;
import com.yd.api.agms.vo.dashboard.StatisticsSalesInfo;
import com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo;
import com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo;
import com.yd.dal.mapper.agms.AgmsDashboardMapper;
import com.yd.dal.service.agms.AgmsDashboardDALService;
import com.yd.util.intercept.annotation.TargetDataSource;
import com.yd.util.intercept.commons.DataSourceKey;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -84,4 +88,54 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService {
public List<StatisticsOpportunityInfo> statisticsOpportunity(String type,String time, Long dropOptionId) {
return agmsDashboardMapper.statisticsOpportunity(type , time, dropOptionId);
}
@Override
public List<StatisticsSalesInfo> statisticsSalesYD(String type, String time) {
List<StatisticsSalesInfo> statisticsSalesInfos = agmsDashboardMapper.statisticsSalesYD(type,time);
getUnitPremium(statisticsSalesInfos);
return statisticsSalesInfos;
}
/**
* 获取均件保费
* @param statisticsSalesInfos
*/
private void getUnitPremium(List<StatisticsSalesInfo> statisticsSalesInfos) {
if(statisticsSalesInfos != null && statisticsSalesInfos.size() > 0){
String fyp;
Integer pieces;
for(StatisticsSalesInfo item : statisticsSalesInfos){
fyp = item.getFyp();
pieces = item.getPieces();
if(pieces != null && pieces != 0){
item.setUnitPremium(BigDecimal.valueOf(Double.parseDouble(fyp) / pieces).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
}
}
}
}
@Override
public List<StatisticsPractitionerInfo> statisticsPractitioner(String type) {
List<StatisticsPractitionerInfo> statisticsPractitionerInfos = agmsDashboardMapper.statisticsPractitioner(type);
//计算实动率
if(statisticsPractitionerInfos != null && statisticsPractitionerInfos.size() > 0){
Integer realAmount,amount;
for(StatisticsPractitionerInfo item : statisticsPractitionerInfos){
realAmount = item.getRealAmount();
amount = item.getAmount();
if(amount > 0){
item.setRealRate(BigDecimal.valueOf((realAmount.doubleValue() / amount.doubleValue()) * 100).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
}
}
}
return statisticsPractitionerInfos;
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public List<StatisticsSalesInfo> statisticsSalesEG(String type, String time) {
List<StatisticsSalesInfo> statisticsSalesInfos = agmsDashboardMapper.statisticsSalesEG(type,time);
getUnitPremium(statisticsSalesInfos);
return statisticsSalesInfos;
}
}
......@@ -97,6 +97,7 @@ where
</choose>
order by predictFYC desc ,predictFYP desc ,pieces desc ,opportunityNum desc;
</select>
<select id="getPractitionerNums" resultType="java.util.Map">
select
<choose>
......@@ -125,5 +126,160 @@ where ps.practitioner_type_id = 28
</choose>
</select>
<select id="statisticsSalesYD" resultType="com.yd.api.agms.vo.dashboard.StatisticsSalesInfo">
select
<choose>
<when test="type.equalsIgnoreCase('B')">
b.branch_name as typeName,
b.id as typeId,
</when>
<otherwise>
s.name as typeName,
s.id as typeId,
</otherwise>
</choose>
concat(ifnull(sum(cf.order_price),0),'') as fyp,
concat(ifnull(sum(cf.fyc_amount),0),'') as fyc,
ifnull(count(cf.order_id),0) as pieces
from ag_acl_practitioner p inner join ag_acl_customer_fortune cf on p.customer_id = cf.customer_id and cf.drop_option_code = "S01"
inner join ag_po_order o on cf.order_id = o.id and o.status = 3
left join ag_acl_insurer_branch b on b.id = p.insurer_branch_id
left join ag_acl_practitioner_subordinate_system s on s.id = p.subordinate_system_id
where
<choose>
<when test="type.equalsIgnoreCase('B')">
p.insurer_branch_id is not null
</when>
<otherwise>
p.subordinate_system_id is not null
</otherwise>
</choose>
<choose>
<when test="time.equalsIgnoreCase('D')">
and TO_DAYS(o.order_date) = TO_DAYS(now())
</when>
<when test="time.equalsIgnoreCase('W')">
and YEARWEEK(DATE_FORMAT(o.order_date,'%Y-%m-%d')) = YEARWEEK(NOW())
</when>
<when test="time.equalsIgnoreCase('M')">
and DATE_FORMAT(o.order_date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time.equalsIgnoreCase('Q')">
and QUARTER(o.order_date) = QUARTER(NOW()) AND year(o.order_date)=year(now())
</when>
<otherwise>
and YEAR(o.order_date) = YEAR(now())
</otherwise>
</choose>
<choose>
<when test="type.equalsIgnoreCase('B')">
group by p.insurer_branch_id
</when>
<otherwise>
group by p.subordinate_system_id
</otherwise>
</choose>
order by sum(cf.fyc_amount) desc
</select>
<select id="statisticsPractitioner" resultType="com.yd.api.agms.vo.dashboard.StatisticsPractitionerInfo">
<choose>
<when test="type.equalsIgnoreCase('B')">
select
ib.branch_name as typeName,
ib.id as typeId,
ifnull(count(p.id),0) as amount,
ifnull(a.real_count,0) as realAmount,
ifnull(b.mdrt_count,0) as mdrt
from ag_acl_practitioner p left join
(
select p.insurer_branch_id insurer_branch_id,count(distinct f.customer_id) as real_count
from ag_acl_customer_fortune f inner join ag_po_order o on f.order_id = o.id and o.status = 3 and f.drop_option_code = "S01"
inner join ag_acl_practitioner p on f.customer_id = p.customer_id
group by p.insurer_branch_id
)a on a.insurer_branch_id = p.insurer_branch_id
left join
(
select t.insurer_branch_id,count(t.id) as mdrt_count from ag_acl_practitioner t where t.cert_list is not null and t.cert_list like "%1%" group by t.insurer_branch_id
)b on b.insurer_branch_id = p.insurer_branch_id
left join ag_acl_insurer_branch ib on ib.id = p.insurer_branch_id
where p.is_active = 1
and p.insurer_branch_id is not null
group by p.insurer_branch_id order by amount desc ;
</when>
<otherwise>
select
s.id as typeId,
s.name as typeName,
ifnull(count(p.id),0) as amount,
ifnull(a.real_count,0) as realAmount,
ifnull(b.mdrt_count,0) as mdrt
from ag_acl_practitioner p left join
(
select p.subordinate_system_id subordinate_system_id,count(distinct f.customer_id) as real_count
from ag_acl_customer_fortune f inner join ag_po_order o on f.order_id = o.id and o.status = 3 and f.drop_option_code = "S01"
inner join ag_acl_practitioner p on f.customer_id = p.customer_id
group by p.subordinate_system_id
)a on a.subordinate_system_id = p.subordinate_system_id
left join
(
select t.subordinate_system_id,count(t.id) as mdrt_count from ag_acl_practitioner t where t.cert_list is not null and t.cert_list like "%1%" group by t.subordinate_system_id
)b on b.subordinate_system_id = p.subordinate_system_id
left join ag_acl_practitioner_subordinate_system s on s.id = p.subordinate_system_id
where p.is_active = 1
and p.subordinate_system_id is not null
group by p.subordinate_system_id order by amount desc ;
</otherwise>
</choose>
</select>
<select id="statisticsSalesEG" resultType="com.yd.api.agms.vo.dashboard.StatisticsSalesInfo">
select
<choose>
<when test="type.equalsIgnoreCase('B')">
spc1.SPC_AREA_NAME as typeName,
</when>
<otherwise>
spc4.SPC_DIV_NAME as typeName,
</otherwise>
</choose>
ifnull(count(distinct policy.INS_MST_ID),0) as pieces,
concat(ifnull(sum(policy.INS_MST_TOTAL_PREIUM),0),'') as fyp,
concat(ifnull(sum(policy.INS001_FYCTOTAL),0),'') as fyc
FROM
ins001 policy INNER JOIN mon025 m on policy.INS_MST_ID = m.MON025_002 and m.MON025_109 IN (1,2,3) AND m.MON025_303 = 1 AND m.mon025_108 = 'S01'
INNER JOIN (
SELECT mon025_002,MAX(MON025_405) as MON025_405 FROM mon025 group by mon025_002 ORDER BY mon025_002
) b on m.mon025_002 = b.mon025_002 AND m.MON025_405 = b.MON025_405
inner join spc004 spc4 on m.MON025_006 = spc4.SPC_DIV_ID -- 体系
inner join spc002 spc2 on spc4.FK_BUS_ID = spc2.SPC_BUS_ID -- 营业部
inner join spc001 spc1 on spc2.FK_AREA_ID = spc1.SPC_AREA_ID -- 分公司
where
<choose>
<when test="time.equalsIgnoreCase('D')">
TO_DAYS(policy.INS_MST_ACCEPT_DATE) = TO_DAYS(now())
</when>
<when test="time.equalsIgnoreCase('W')">
YEARWEEK(DATE_FORMAT(policy.INS_MST_ACCEPT_DATE,'%Y-%m-%d')) = YEARWEEK(NOW())
</when>
<when test="time.equalsIgnoreCase('M')">
DATE_FORMAT(policy.INS_MST_ACCEPT_DATE, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time.equalsIgnoreCase('Q')">
QUARTER(policy.INS_MST_ACCEPT_DATE) = QUARTER(NOW()) AND year(policy.INS_MST_ACCEPT_DATE)=year(now())
</when>
<otherwise>
YEAR(policy.INS_MST_ACCEPT_DATE) = YEAR(now())
</otherwise>
</choose>
<choose>
<when test="type.equalsIgnoreCase('B')">
group by spc1.SPC_AREA_ID
</when>
<otherwise>
group by m.MON025_006
</otherwise>
</choose>
order by sum(policy.INS001_FYCTOTAL) desc
</select>
</mapper>
\ No newline at end of file
......@@ -10,8 +10,6 @@
<result column="order_price" jdbcType="DECIMAL" property="orderPrice" />
<result column="commission_rate" jdbcType="DECIMAL" property="commissionRate" />
<result column="commission_amount" jdbcType="DECIMAL" property="commissionAmount" />
<result column="announcement_commission_rate" jdbcType="DECIMAL" property="announcementCommissionRate" />
<result column="announcement_commission_amount" jdbcType="DECIMAL" property="announcementCommissionAmount" />
<result column="grade_commission_rate" jdbcType="DECIMAL" property="gradeCommissionRate" />
<result column="referral_rate" jdbcType="DECIMAL" property="referralRate" />
<result column="referral_amount" jdbcType="DECIMAL" property="referralAmount" />
......@@ -27,7 +25,7 @@
</resultMap>
<sql id="Base_Column_List">
id, share_id, customer_id, order_id, order_date, order_price, commission_rate, commission_amount,
announcement_commission_rate, announcement_commission_amount, grade_commission_rate,
grade_commission_rate,
referral_rate, referral_amount, is_tax, tax_amount,
net_amount, campaign_id, withdrawable_date, withdrawed_id, fortune_payed_id, created_at,
created_by
......@@ -45,8 +43,7 @@
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.yd.dal.entity.customer.AclCustomerFortune" useGeneratedKeys="true">
insert into ag_acl_customer_fortune (share_id, customer_id, order_id,
order_date, order_price, commission_rate,
commission_amount, announcement_commission_rate,
announcement_commission_amount, grade_commission_rate,
commission_amount, grade_commission_rate,
referral_rate, referral_amount,
is_tax, tax_amount, net_amount,
campaign_id, withdrawable_date, withdrawed_id,
......@@ -54,8 +51,8 @@
)
values (#{shareId,jdbcType=BIGINT}, #{customerId,jdbcType=BIGINT}, #{orderId,jdbcType=BIGINT},
#{orderDate,jdbcType=TIMESTAMP}, #{orderPrice,jdbcType=DECIMAL}, #{commissionRate,jdbcType=DECIMAL},
#{commissionAmount,jdbcType=DECIMAL}, #{announcementCommissionRate,jdbcType=DECIMAL},
#{announcementCommissionAmount,jdbcType=DECIMAL}, #{gradeCommissionRate,jdbcType=DECIMAL},
#{commissionAmount,jdbcType=DECIMAL},
#{gradeCommissionRate,jdbcType=DECIMAL},
#{referralRate,jdbcType=DECIMAL}, #{referralAmount,jdbcType=DECIMAL},
#{isTax,jdbcType=INTEGER}, #{taxAmount,jdbcType=DECIMAL}, #{netAmount,jdbcType=DECIMAL},
#{campaignId,jdbcType=BIGINT}, #{withdrawableDate,jdbcType=TIMESTAMP}, #{withdrawedId,jdbcType=BIGINT},
......@@ -151,12 +148,6 @@
<if test="commissionAmount != null">
#{commissionAmount,jdbcType=DECIMAL},
</if>
<if test="announcementCommissionRate != null">
#{announcementCommissionRate,jdbcType=DECIMAL},
</if>
<if test="announcementCommissionAmount != null">
#{announcementCommissionAmount,jdbcType=DECIMAL},
</if>
<if test="gradeCommissionRate != null">
#{gradeCommissionRate,jdbcType=DECIMAL},
</if>
......@@ -219,12 +210,6 @@
<if test="commissionAmount != null">
commission_amount = #{commissionAmount,jdbcType=DECIMAL},
</if>
<if test="announcementCommissionRate != null">
announcement_commission_rate = #{announcementCommissionRate,jdbcType=DECIMAL},
</if>
<if test="announcementCommissionAmount != null">
announcement_commission_amount = #{announcementCommissionAmount,jdbcType=DECIMAL},
</if>
<if test="gradeCommissionRate != null">
grade_commission_rate = #{gradeCommissionRate,jdbcType=DECIMAL},
</if>
......@@ -273,8 +258,6 @@
order_price = #{orderPrice,jdbcType=DECIMAL},
commission_rate = #{commissionRate,jdbcType=DECIMAL},
commission_amount = #{commissionAmount,jdbcType=DECIMAL},
announcement_commission_rate = #{announcementCommissionRate,jdbcType=DECIMAL},
announcement_commission_amount = #{announcementCommissionAmount,jdbcType=DECIMAL},
grade_commission_rate = #{gradeCommissionRate,jdbcType=DECIMAL},
referral_rate = #{referralRate,jdbcType=DECIMAL},
referral_amount = #{referralAmount,jdbcType=DECIMAL},
......@@ -302,7 +285,7 @@
s.practitioner_level practitionerLevelId
FROM
((ag_acl_practitioner_setting s LEFT JOIN ag_acl_practitioner p ON s.practitioner_id = p.id)
INNER JOIN ag_acl_customer_fortune f ON f.customer_id = p.customer_id )
INNER JOIN ag_acl_customer_fortune f ON f.customer_id = p.customer_id and f.drop_option_code = "S01")
INNER JOIN ag_po_order o ON f.order_id = o.id
WHERE
o.status = 3 and o.order_price > 0
......
......@@ -614,7 +614,7 @@
inner JOIN ag_acl_practitioner p ON f.customer_id = p.customer_id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
left join ag_acl_practitioner_subordinate_system ss on p.subordinate_system_id = ss.id
WHERE o.status = 3
WHERE o.status = 3 and f.drop_option_code = "S01"
<if test="practitionerTypeId != null">
and s.practitioner_type_id = #{practitionerTypeId}
</if>
......@@ -646,7 +646,7 @@
inner JOIN ag_acl_practitioner p ON f.customer_id = p.customer_id
left join ag_acl_customer c on p.customer_id = c.id
left join ag_acl_practitioner_subordinate_system ss on p.subordinate_system_id = ss.id
WHERE o.status = 3
WHERE o.status = 3 and f.drop_option_code = "S01"
and c.login in
<foreach collection="mobileSpecials" index="index" item="item" open="(" separator="," close=")">
#{item}
......@@ -861,7 +861,7 @@
inner JOIN ag_acl_practitioner p ON f.customer_id = p.customer_id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
left join ag_acl_practitioner_subordinate_system ss on p.subordinate_system_id = ss.id
WHERE p.id = #{practitionerId,jdbcType=BIGINT}
WHERE p.id = #{practitionerId,jdbcType=BIGINT} and f.drop_option_code = "S01"
<choose>
<when test="time == 1">
and DATE_FORMAT(f.order_date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
......
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