package com.matrix.system.app.action; 
 | 
  
 | 
import com.matrix.core.constance.MatrixConstance; 
 | 
import com.matrix.core.pojo.AjaxResult; 
 | 
import com.matrix.core.tools.StringUtils; 
 | 
import com.matrix.core.tools.WebUtil; 
 | 
import com.matrix.system.app.dto.*; 
 | 
import com.matrix.system.common.bean.SysUsers; 
 | 
import com.matrix.system.common.tools.DataAuthUtil; 
 | 
import com.matrix.system.hive.action.util.QueryUtil; 
 | 
import com.matrix.system.hive.bean.*; 
 | 
import com.matrix.system.hive.dao.*; 
 | 
import com.matrix.system.hive.plugin.util.CollectionUtils; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import io.swagger.annotations.ApiResponse; 
 | 
import io.swagger.annotations.ApiResponses; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.validation.annotation.Validated; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import java.util.*; 
 | 
import java.util.stream.Collectors; 
 | 
  
 | 
/** 
 | 
 * @author jyy 
 | 
 * @date 2020-12-21 
 | 
 **/ 
 | 
@Api(value = "ApiFollowupAction", tags = "跟进记录接口类") 
 | 
@RestController 
 | 
@RequestMapping(value = "/api/followup") 
 | 
public class ApiFollowupAction { 
 | 
  
 | 
    @Autowired 
 | 
    private SysFollowupDao followupDao; 
 | 
  
 | 
    @Autowired 
 | 
    private SysVipAlbumDao vipAlbumDao; 
 | 
  
 | 
    @Autowired 
 | 
    private SysVipInfoDao vipInfoDao; 
 | 
  
 | 
    @Autowired 
 | 
    private SysFollowupCommentDao followupCommentDao; 
 | 
  
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private SysOrderItemDao orderItemDao; 
 | 
  
 | 
    @Autowired 
 | 
    private SysBeauticianStateDao beauticianStateDao; 
 | 
  
 | 
  
 | 
    @ApiOperation(value = "新增跟进记录", notes = "新增跟进记录") 
 | 
    @ApiResponses({ 
 | 
            @ApiResponse(code = 200, message = "ok", response = SysFollowup.class) 
 | 
    }) 
 | 
    @PostMapping(value = "/addFollowup") 
 | 
    public AjaxResult addFollowup(@RequestBody @Validated SysFollowup followup) { 
 | 
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); 
 | 
        followup.setCreateBy(user.getSuName()); 
 | 
        followup.setUpdateBy(user.getSuName()); 
 | 
        followup.setStaffId(user.getSuId()); 
 | 
        followup.setCompanyId(user.getCompanyId()); 
 | 
        followup.setShopId(user.getShopId()); 
 | 
        //处理订单摘要 
 | 
        if(followup.getOrderId()!=null){ 
 | 
            List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(followup.getOrderId()); 
 | 
            String abs=""; 
 | 
            if(sysOrderItems.size()>1){ 
 | 
                abs= sysOrderItems.get(0).getShoppingGoods().getName()+"等"+sysOrderItems.size()+"件商品"; 
 | 
            }else{ 
 | 
                abs= sysOrderItems.get(0).getShoppingGoods().getName(); 
 | 
            } 
 | 
           followup.setOrderAbstract(abs); 
 | 
        } 
 | 
        //服务单摘要 
 | 
        if(followup.getServiceId()!=null){ 
 | 
            List<SysBeauticianState> sysBeauticianStates = beauticianStateDao.selectBySerIds(followup.getServiceId()); 
 | 
            String abs=""; 
 | 
            if(sysBeauticianStates.size()>1){ 
 | 
                abs= sysBeauticianStates.get(0).getProjInfo().getName()+"等"+sysBeauticianStates.size()+"项服务"; 
 | 
            }else{ 
 | 
                abs= sysBeauticianStates.get(0).getProjInfo().getName(); 
 | 
            } 
 | 
            followup.setOrderAbstract(abs); 
 | 
        } 
 | 
  
 | 
        followupDao.insert(followup); 
 | 
        //插入图片 
 | 
        List<SysVipAlbum> albums=followup.getAlbums(); 
 | 
        if(CollectionUtils.isNotEmpty(albums)){ 
 | 
            for (SysVipAlbum vipAlbum:albums){ 
 | 
                if(StringUtils.isNotBlank(vipAlbum.getImg())){ 
 | 
                    vipAlbum.setCreateBy(user.getSuName()); 
 | 
                    vipAlbum.setUpdateBy(user.getSuName()); 
 | 
                    vipAlbum.setSource(SysVipAlbum.SOURCE_FOLLOW); 
 | 
                    vipAlbum.setVipId(followup.getVipId()); 
 | 
                    vipAlbum.setSourceId(followup.getId()); 
 | 
                    vipAlbumDao.insert(vipAlbum); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        return AjaxResult.buildSuccessInstance("保存成功"); 
 | 
    } 
 | 
  
 | 
    @ApiOperation(value = "跟进记录点赞或者取消点赞", notes = "跟进记录点赞或者取消点赞") 
 | 
    @ApiResponses({ 
 | 
            @ApiResponse(code = 200, message = "ok", response = AjaxResult.class) 
 | 
    }) 
 | 
    @GetMapping(value = "/zanFollowup/{id}") 
 | 
    public AjaxResult zanFollowup(@PathVariable("id")Long id) { 
 | 
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); 
 | 
        SysFollowup followup = followupDao.selectById(id); 
 | 
        String zans=followup.getZans(); 
 | 
        if(StringUtils.isNotBlank(zans)){ 
 | 
            List<Long> zanIds = StringUtils.strToCollToLong(zans, ","); 
 | 
            List<Long> zaned = zanIds.stream().filter(zanid -> zanid.equals(user.getSuId())).collect(Collectors.toList()); 
 | 
            if(CollectionUtils.isNotEmpty(zaned)){ 
 | 
                //取消赞 
 | 
                List<Long> newZaned = zanIds.stream().filter(zanid -> !zanid.equals(user.getSuId())).collect(Collectors.toList()); 
 | 
                zans=StringUtils.collToStr(newZaned,","); 
 | 
  
 | 
            }else{ 
 | 
                //点赞 
 | 
                zanIds.add(user.getSuId()); 
 | 
                zans=StringUtils.collToStr(zanIds,","); 
 | 
            } 
 | 
        }else{ 
 | 
            //直接点赞 
 | 
            zans=user.getSuId()+""; 
 | 
        } 
 | 
        followupDao.updateZan(id,zans); 
 | 
        return AjaxResult.buildSuccessInstance("修改成功"); 
 | 
    } 
 | 
  
 | 
  
 | 
    @ApiOperation(value = "评论跟进", notes = "评论跟进") 
 | 
    @ApiResponses({ 
 | 
            @ApiResponse(code = 200, message = "ok", response = AjaxResult.class) 
 | 
    }) 
 | 
    @PostMapping(value = "/addFollowupComment") 
 | 
    public AjaxResult addFollowupComment(@RequestBody @Validated SysFollowupComment followupComment) { 
 | 
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); 
 | 
        followupComment.setCreateBy(user.getSuName()); 
 | 
        followupComment.setUpdateBy(user.getSuName()); 
 | 
        followupComment.setStaffId(user.getSuId()); 
 | 
        followupCommentDao.insert(followupComment); 
 | 
        return AjaxResult.buildSuccessInstance("评论成功"); 
 | 
    } 
 | 
  
 | 
  
 | 
    @ApiOperation(value = "查询跟进记录", notes = "查询跟进记录") 
 | 
    @ApiResponses({ 
 | 
            @ApiResponse(code = 200, message = "ok", response = SysFollowup.class) 
 | 
    }) 
 | 
    @PostMapping(value = "/findFollowup") 
 | 
    public AjaxResult findFollowup(@RequestBody @Validated FollowupListDto followupListDto) { 
 | 
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); 
 | 
        if(!DataAuthUtil.hasAllShopAuth()){ 
 | 
            followupListDto.setShopId(user.getShopId()); 
 | 
        } 
 | 
        followupListDto.setCompanyId(user.getCompanyId()); 
 | 
        followupListDto.setSelfStaff(user.getSuId()); 
 | 
        //TODO 需要设置跨店数据权限 
 | 
        List<SysFollowup> rows= followupDao.selectByAppDto(followupListDto); 
 | 
        return AjaxResult.buildSuccessInstance(rows,"查询成功"); 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
     
 | 
     
 | 
  
 | 
} 
 |