Package com.iteye.tianshi.web.controller.base

Source Code of com.iteye.tianshi.web.controller.base.TDistributorController

package com.iteye.tianshi.web.controller.base;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.iteye.tianshi.core.page.Page;
import com.iteye.tianshi.core.page.PageRequest;
import com.iteye.tianshi.core.util.ResponseData;
import com.iteye.tianshi.core.web.controller.BaseController;
import com.iteye.tianshi.web.model.base.TDistributor;
import com.iteye.tianshi.web.model.base.TShopInfo;
import com.iteye.tianshi.web.service.base.TDistributorRankService;
import com.iteye.tianshi.web.service.base.TDistributorService;
import com.iteye.tianshi.web.service.base.TShopInfoService;

/**
*
* 经销商管理界面的业务方法
*
*/
@Controller
@RequestMapping("/distributor")
public class TDistributorController extends BaseController {
  @Autowired
  private TDistributorService tDistributorService;
  @Autowired
  private TShopInfoService tShopInfoService;
  @Autowired
  private TDistributorRankService rankService ;
  @RequestMapping("/index")
  public String index() {
    return "admin/base/distributor";
  }

  /**
   * 应预先插入一条记录代表顶级记录
   * 新增经销商信息, 只接受POST请求
   * 判断上级经销商是否存在(编号不存在,插入失败返回"上级经销商编号填写有误,数据库查无记录")
   * 判断数据库是否有记录,(针对插入第一个经销商的情况)
   *
   * @param TDistributor
   * @return ResponseData
   * @throws Exception
   */
  @RequestMapping(value = "/insertTDistributor", method = RequestMethod.POST)
  @ResponseBody
  public ResponseData insertTDistributor(TDistributor tDistributor)
      throws Exception {
    List<TDistributor> dist = tDistributorService.findByProperty("distributorCode", tDistributor.getDistributorCode());
    if(!dist.isEmpty()){
      dist = null;
      return new ResponseData(true,"经销商编号不得重复添加");
    }
    List<TDistributor> sponsor = tDistributorService.findByProperty("distributorCode", tDistributor.getSponsorCode());
    if(StringUtils.hasText(tDistributor.getSponsorCode()) && sponsor.isEmpty()){
      sponsor = null;
      return new ResponseData(true,"上级经销商编号填写有误,数据库查无记录");
    }
    //设置上级ID
    tDistributor.setSponsorId(sponsor.get(0).getId());
    //设置上级名称
    tDistributor.setSponsor_Name(sponsor.get(0).getDistributorName());
    //设置层数
    tDistributor.setFloors(sponsor.get(0).getFloors()+1);
    dist = null;
    //初始化星级为一星
    tDistributor.setRankId(102001L);
    //当前时间
    tDistributor.setCreateTime(new Date());
    tDistributorService.insertEntity(tDistributor);
    return new ResponseData(true,"ok");
  }

  /**
   * 删除经销商, 只接受POST请求
   * ①要删除其奖金核算信息表
   * ②删除奖金核算信息历史表
   * ③要删除经销商业绩表
   * ④要删除经销商业绩历史表
   *
   * @param id
   * @return ResponseData
   */
  @RequestMapping(value = "/deleteTDistributor", method = RequestMethod.POST)
  @ResponseBody
  public ResponseData deleteUser(Long id) {
    tDistributorService.deleteAllCascadeTable(id);
    tDistributorService.deleteEntity(id);
    return ResponseData.SUCCESS_NO_DATA;
  }

  /**
   * 更新经销商信息, 只接受POST请求
   * 判断上级经销商是否存在(编号不存在,插入失败返回"上级经销商编号填写有误,数据库查无记录")
   * @param TDistributor
   * @return ResponseData
   */
  @RequestMapping(value = "/updateTDistributor", method = RequestMethod.POST)
  @ResponseBody
  public ResponseData updateTDistributor(TDistributor tDistributor) {
    if(!tDistributorService.findEntity(tDistributor.getId()).getDistributorCode().equals(tDistributor.getDistributorCode())){
      if(!tDistributorService.findByProperty("distributorCode", tDistributor.getDistributorCode()).isEmpty()){
        return new ResponseData(true,"编号不能更新数据库已经存在的其它编号");
      }
    }
    if(StringUtils.hasText(tDistributor.getSponsorCode()) &&
        tDistributorService.findByProperty("distributorCode", tDistributor.getSponsorCode()).isEmpty()){
      return new ResponseData(true,"上级编号填写有误,数据库查无记录");
    }
    //更新层级
    List<TDistributor> dist = tDistributorService.findByProperty("distributorCode", tDistributor.getSponsorCode());
    tDistributor.setFloors(dist.get(0).getFloors()+1);
    tDistributorService.updateEntity(tDistributor);
    dist = null;
    return new ResponseData(true,"ok");
  }

  /**
   * 查询经销商信息, 只接受POST请求
   *
   * @param id
   * @return TDistributor
   */
  @RequestMapping(value = "/loadDistributor", method = RequestMethod.POST)
  @ResponseBody
  public TDistributor loadDistributor(Long id) {
    TDistributor tDistributor = tDistributorService.findEntity(id);
    return tDistributor;
  }

  /**
   * 经销商管理,查询经销商信息,按照经销商优先级降序排序
   *
   * @param pageRequest
   * @return
   */
  @RequestMapping("/pageQueryTDistributors")
  @ResponseBody
  public Page<TDistributor> pageQueryDistributor(
      @RequestParam("start") int startIndex,
      @RequestParam("limit") int pageSize, TDistributor tDistributor,
      @RequestParam(required = false) String sort,
      @RequestParam(required = false) String dir) {
    if(StringUtils.hasText(sort) && sort.equals("rankId_Name")){
      sort = "rankId";
    }
    PageRequest<TDistributor> pageRequest = new PageRequest<TDistributor>(
        startIndex, pageSize);
    if (StringUtils.hasText(sort) && StringUtils.hasText(dir))
      pageRequest.setSortColumns(sort + " " + dir);
    Map<String, String> likeFilters = pageRequest.getLikeFilters();
    Map<String, Object> filters = pageRequest.getFilters();
    //查询条件
    String distCode = tDistributor.getDistributorCode();
    Long shopId = tDistributor.getShopId();
    String sponsorCode = tDistributor.getSponsorCode();
    Long rankId = tDistributor.getRankId();
    //根据编号查询
    if (StringUtils.hasText(distCode)) {
      likeFilters.put("distributorCode", distCode);
    }
    //根据上级编号查询
    if (StringUtils.hasText(sponsorCode)) {
      likeFilters.put("sponsorCode", sponsorCode);
    }
    //根据商铺查询
    if(shopId!=null){
      filters.put("shopId", shopId);
    }
    //根据职级查询
    if(rankId!=null){
      filters.put("rankId", rankId);
    }
    Page<TDistributor> page = tDistributorService.findAllForPage(pageRequest);
    //根节点不显示
    int rootIndex = -1;
    //将主键ID转换成名称回显
    for(TDistributor dist :page.getResult()){
      if(dist.getId() == -1L){
        rootIndex = page.getResult().indexOf(dist);
      }
      if(StringUtils.hasText(dist.getSponsorCode()) ){
        String sponsor_Name = tDistributorService.findByProperty("distributorCode", dist.getSponsorCode()).get(0).getDistributorName();
        dist.setSponsor_Name(sponsor_Name);
      }
      if(dist.getShopId() != null){
        TShopInfo t = tShopInfoService.findEntity(dist.getShopId());
        dist.setShop_Name(t.getShopName());
        dist.setShop_Code(t.getShopCode());
      }
      if(dist.getRankId()!=null){
        String rankId_Name = rankService.findEntity(dist.getRankId()).getRankName();
        dist.setRankId_Name(rankId_Name);
      }
    }
    if(rootIndex!=-1){
      page.getResult().remove(rootIndex);
    }
    return page;
  }

}
TOP

Related Classes of com.iteye.tianshi.web.controller.base.TDistributorController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.