jyy
2021-06-09 ec87cf1ee2b9382bf9d089711f0ff82ae8e7077c
zq-erp/src/main/java/com/matrix/system/hiveErp/action/AchieveRuleAction.java
New file
@@ -0,0 +1,129 @@
package com.matrix.system.hiveErp.action;
import cn.hutool.core.date.DateTime;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.BasePageQueryDto;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.AchieveRule;
import com.matrix.system.hive.dao.AchieveRuleDao;
import com.matrix.system.hiveErp.pojo.AchieveRuleItem;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * 业绩规则Api
 *
 * @author jiangyouyao
 * @date 2021-06-03
 **/
@RestController
@AllArgsConstructor
@RequestMapping(value = "/admin/achieveRule")
public class AchieveRuleAction {
    private AchieveRuleDao achieveRuleDao;
    private SysUsersDao sysUsersDao;
    /**
     * 新增业绩规则
     * @param achieveRule
     * @return
     */
    @PostMapping("/add")
    public AjaxResult add(@RequestBody @Validated AchieveRule achieveRule) {
        String rules = JSONUtil.toJsonStr(achieveRule.getRuleItemList());
        achieveRule.setRules(rules);
        QueryUtil.setQueryLimitCom(achieveRule);
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        achieveRule.setCreateTime(DateTime.now());
        achieveRule.setUpdateTime(DateTime.now());
        achieveRule.setCreateBy(user.getSuName());
        achieveRule.setUpdateBy(user.getSuName());
        achieveRuleDao.insert(achieveRule);
        return AjaxResult.buildSuccessInstance("新增成功");
    }
    /**
     * 修改业绩规则
     *
     * @param achieveRule
     * @return
     */
    @PostMapping("/update")
    public AjaxResult update(@RequestBody @Validated AchieveRule achieveRule) {
        if (achieveRule.getId() == null) {
            return AjaxResult.buildFailInstance("id不能为空");
        }
        String rules = JSONUtil.toJsonStr(achieveRule.getRuleItemList());
        achieveRule.setRules(rules);
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        achieveRule.setUpdateBy(user.getSuName());
        achieveRule.setUpdateTime(DateTime.now());
        achieveRuleDao.updateById(achieveRule);
        return AjaxResult.buildSuccessInstance("修改成功");
    }
    /**
     * 删除id
     *
     * @param id
     * @return
     */
    @GetMapping("/removeById/{id}")
    public AjaxResult removeById(@PathVariable Long id) {
        achieveRuleDao.deleteById(id);
        return AjaxResult.buildSuccessInstance("删除成功");
    }
    /**
     * 分页查询规则
     *
     * @param pageDto
     * @return
     */
    @PostMapping("/selectList")
    public AjaxResult selectList(@RequestBody BasePageQueryDto pageDto) {
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        Page<AchieveRule> page = new Page<>(pageDto.getPageNum(), pageDto.getPageSize());
        LambdaQueryWrapper<AchieveRule> lambdaQueryWrapper = new LambdaQueryWrapper<AchieveRule>()
                .eq(AchieveRule::getCompanyId, user.getCompanyId());
        if (StringUtils.isNotBlank(pageDto.getKeywords())) {
            lambdaQueryWrapper.like(AchieveRule::getName, pageDto.getKeywords());
        }
        IPage<AchieveRule> achieveRuleIPage = achieveRuleDao.selectPage(page, lambdaQueryWrapper);
        achieveRuleIPage.getRecords().stream().forEach(item->{
            item.setRuleItemList(JSONUtil.toList(JSONUtil.parseArray(item.getRules()), AchieveRuleItem.class));
            item.setRules(null);
        });
        AjaxResult result = AjaxResult.buildSuccessInstance(achieveRuleIPage.getRecords(), achieveRuleIPage.getTotal());
        return result;
    }
    @PostMapping("/selectListForm")
    public AjaxResult selectListForm(BasePageQueryDto pageDto) {
        return selectList(pageDto);
    }
}