Commit 70572fa1 by huluobin

update

parent bdeef31a
package com.gogirl.application.order.mall;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.order.mall.MallOrderTechnician;
import com.gogirl.shared.order.mall.QueryMallOrderAchievementRequest;
import java.math.BigDecimal;
/**
* <p>
......@@ -13,4 +17,20 @@ import com.gogirl.domain.order.mall.MallOrderTechnician;
*/
public interface IMallOrderTechnicianService extends IService<MallOrderTechnician> {
/**
* 查询美甲师商城业绩列表
*
* @param request
* @return
*/
Page<MallOrderTechnician> queryMallOrderAchievement(QueryMallOrderAchievementRequest request);
/**
* 查询总业绩
* @param technicianId
* @param departmentId
* @param date
* @return
*/
BigDecimal queryTotalMallOrderAchievement(Integer technicianId, Integer departmentId, String date);
}
package com.gogirl.application.order.mall.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.order.mall.IMallOrderTechnicianService;
import com.gogirl.domain.order.mall.MallOrder;
import com.gogirl.domain.order.mall.MallOrderTechnician;
import com.gogirl.infrastructure.mapper.order.mall.MallOrderMapper;
import com.gogirl.infrastructure.mapper.order.mall.MallOrderTechnicianMapper;
import com.gogirl.shared.order.mall.QueryMallOrderAchievementRequest;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* <p>
* 商城订单 - 美甲师 服务实现类
......@@ -17,4 +27,25 @@ import org.springframework.stereotype.Service;
@Service
public class MallOrderTechnicianServiceImpl extends ServiceImpl<MallOrderTechnicianMapper, MallOrderTechnician> implements IMallOrderTechnicianService {
@Resource
MallOrderMapper mallOrderMapper;
@Override
public Page<MallOrderTechnician> queryMallOrderAchievement(QueryMallOrderAchievementRequest request) {
Page<MallOrderTechnician> mallOrderTechnicianList = baseMapper.queryMallOrderAchievement(new Page<>(request.getPageIndex(), request.getPageSize()), request);
Map<Long, MallOrder> mallOrderMap = mallOrderMapper.selectBatchIds(mallOrderTechnicianList.getRecords().stream()
.map(MallOrderTechnician::getMallOrderId).filter(Objects::nonNull).collect(Collectors.toList()))
.stream()
.collect(Collectors.toMap(MallOrder::getId, mallOrder -> mallOrder, (k1, k2) -> k1));
mallOrderTechnicianList.getRecords().forEach(mallOrderTechnician -> {
mallOrderTechnician.setMallOrder(mallOrderMap.get(mallOrderTechnician.getMallOrderId()))
});
return mallOrderTechnicianList;
}
@Override
public BigDecimal queryTotalMallOrderAchievement(Integer technicianId, Integer departmentId, String date) {
return baseMapper.queryTotalMallOrderAchievement(technicianId, departmentId, date);
}
}
package com.gogirl.domain.order.mall;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -39,5 +40,8 @@ public class MallOrderTechnician implements Serializable {
@ApiModelProperty(value = "美甲师订单业绩")
private BigDecimal achievement;
@TableField(exist = false)
private MallOrder mallOrder;
}
package com.gogirl.infrastructure.mapper.order.mall;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.domain.order.mall.MallOrderTechnician;
import com.gogirl.domain.store.store.StoreTechnician;
import com.gogirl.shared.order.mall.QueryMallOrderAchievementRequest;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -23,4 +27,23 @@ public interface MallOrderTechnicianMapper extends BaseMapper<MallOrderTechnicia
* @return
*/
List<StoreTechnician> selectTechnicianList(Long mallOrderId);
/**
* 查询美甲师业绩列表
*
* @param page
* @param param
* @return
*/
Page<MallOrderTechnician> queryMallOrderAchievement(@Param("page") Page<Object> page, @Param("param") QueryMallOrderAchievementRequest param);
/**
* 查询总业绩
*
* @param technicianId
* @param departmentId
* @param date
* @return
*/
BigDecimal queryTotalMallOrderAchievement(@Param("technicianId") Integer technicianId, @Param("departmentId") Integer departmentId, @Param("date") String date);
}
package com.gogirl.interfaces.order.mall;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.application.order.mall.IMallOrderTechnicianService;
import com.gogirl.application.order.mall.MallOrderService;
import com.gogirl.domain.order.mall.MallOrder;
import com.gogirl.domain.order.mall.MallOrderTechnician;
import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.infrastructure.util.lock.MallOrderIdLock;
......@@ -11,6 +14,7 @@ import com.gogirl.shared.market.SubmitMallOrderCommand;
import com.gogirl.shared.market.UpdateMallOrderTechnicianRequest;
import com.gogirl.shared.member.ImmediatePurchaseCommand;
import com.gogirl.shared.order.CancelMallOrderCommand;
import com.gogirl.shared.order.mall.QueryMallOrderAchievementRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
......@@ -27,6 +31,7 @@ import java.math.BigDecimal;
public class MallOrderController {
private final MallOrderService mallOrderService;
private final IMallOrderTechnicianService mallOrderTechnicianService;
@ApiOperation("提交订单")
......@@ -129,4 +134,20 @@ public class MallOrderController {
}
@ApiOperation("查询美甲师业绩列表")
@PostMapping("/queryMallOrderAchievement")
public JsonResult<Page<MallOrderTechnician> queryMallOrderAchievement(@RequestBody QueryMallOrderAchievementRequest request) {
Page<MallOrderTechnician> page = mallOrderTechnicianService.queryMallOrderAchievement(request);
return JsonResult.success(page);
}
@ApiOperation("查询美甲师业绩列表")
@PostMapping("/queryTotalMallOrderAchievement")
public JsonResult<BigDecimal> queryTotalMallOrderAchievement(@RequestParam(required = false) Integer technicianId,
@RequestParam(required = false) Integer departmentId,
@RequestParam String date) {
BigDecimal totalMallOrderAchievement = mallOrderTechnicianService.queryTotalMallOrderAchievement(technicianId, departmentId, date);
return JsonResult.success(totalMallOrderAchievement);
}
}
package com.gogirl.shared.order.mall;
import com.gogirl.infrastructure.common.base.PageRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/7/2 1:27 下午
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class QueryMallOrderAchievementRequest extends PageRequest {
@ApiModelProperty("美甲师id")
private Integer technicianId;
@ApiModelProperty("日期 形如yyyy-HH")
private String date;
}
......@@ -8,4 +8,26 @@
left join store_technician t2 on t1.technician_id = t2.id
where t1.mall_order_id = #{mallOrderId}
</select>
<select id="queryMallOrderAchievement" resultType="com.gogirl.domain.order.mall.MallOrderTechnician">
select t1.*
from mall_order_technician t1
left join mall_order t2 on t1.mall_order_id = t2.id
where t1.technician_id = #{param}
and t2.status = 4
and t2.create_time = #{param.date}
</select>
<select id="queryTotalMallOrderAchievement" resultType="java.math.BigDecimal">
SELECT sum(t1.achievement)
from mall_order_technician t1
LEFT JOIN store_technician t2 on t1.id = technician_id = t2.id
LEFT JOIN mall_order t3 on t1.mall_order_id =t2.id
where t3.create_time= #{date}
<if test="technicianId != null ">
and t1.technician_id =#{technicianId}
</if>
<if test="departmentId != null ">
and t2.department_id =#{departmentId}
</if>
</select>
</mapper>
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