first commit
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitAddress;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitAddressService;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitAddressController
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/13 15:44
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/benefit/address")
|
||||
public class BenefitAddressController {
|
||||
@Inject
|
||||
private BenefitAddressService benefitAddressService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/address/index.html")
|
||||
@SaCheckPermission("benefit.address.mange")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 地址列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("benefit.address.mange")
|
||||
public Result selectUserAddress(String userId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
userName ,
|
||||
tel,
|
||||
addressDetail,
|
||||
isDefault,
|
||||
province,
|
||||
city,
|
||||
county,
|
||||
areaCode
|
||||
FROM
|
||||
`benefit_address`
|
||||
WHERE userId = @userId
|
||||
ORDER BY
|
||||
isDefault DESC
|
||||
""");
|
||||
sql.setParam("userId", StrUtil.isNotBlank(userId) ? userId : SecurityUtil.getUserId());
|
||||
return Result.success(benefitAddressService.listMap(sql));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改默认地址
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("benefit.address.mange")
|
||||
public Result doDefault(String id) {
|
||||
benefitAddressService.dao().update(BenefitAddress.class, Chain.make("isDefault", false),
|
||||
Cnd.where("userId", "=", SecurityUtil.getUserId()));
|
||||
benefitAddressService.dao().update(BenefitAddress.class, Chain.make("isDefault", true),
|
||||
Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.address.mange")
|
||||
public Result deleteAddress(String id) {
|
||||
benefitAddressService.dao().clear(BenefitAddress.class, Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存地址
|
||||
* @param benefitAddress
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("benefit.address.mange")
|
||||
public Result doSaveUserAddress(@Param("data") BenefitAddress benefitAddress) {
|
||||
String userId = StrUtil.isNotBlank(benefitAddress.getUserId()) ? benefitAddress.getUserId() : SecurityUtil.getUserId();
|
||||
if (benefitAddress.isDefault()) {
|
||||
benefitAddressService.dao().update(BenefitAddress.class, Chain.make("isDefault", false),
|
||||
Cnd.where("userId", "=", userId));
|
||||
}
|
||||
benefitAddress.setUserId(userId);
|
||||
benefitAddressService.dao().insertOrUpdate(benefitAddress);
|
||||
return Result.success();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsCategory;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitGoodsCategoryPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsCategoryService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsCategoryController
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/12 11:29
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/benefit/goodsCategory")
|
||||
public class BenefitGoodsCategoryController {
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsCategoryService benefitGoodsCategoryService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/goodsCategory/index.html")
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@ApiOperation("查询福利商品分类")
|
||||
public Result pageData(BenefitGoodsCategoryPageForm pageForm){
|
||||
Cnd cnd=Cnd.NEW();
|
||||
Pagination pagination = benefitGoodsCategoryService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存福利商品分类信息
|
||||
*/
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@ApiOperation("添加福利商品分类")
|
||||
@SLog(type = "condolenceApply", tag = "添加福利商品分类", msg = "添加福利商品分类")
|
||||
public Result save(@Valid @Param("benefitGoodsCategory") BenefitGoodsCategory benefitGoodsCategory){
|
||||
benefitGoodsCategory.setHasChildren(benefitGoodsCategory.getParentId()==""?true:false);
|
||||
BenefitGoodsCategory category = benefitGoodsCategoryService.insert(benefitGoodsCategory);
|
||||
return Result.success(category);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改福利商品分类信息
|
||||
*/
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@ApiOperation("修改福利商品分类")
|
||||
@SLog(type = "condolenceApply", tag = "修改福利商品分类", msg = "修改福利商品分类")
|
||||
public Result update(@Valid @Param("benefitGoodsCategory") BenefitGoodsCategory benefitGoodsCategory){
|
||||
benefitGoodsCategoryService.update(benefitGoodsCategory);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@ApiOperation("查询单个福利商品分类")
|
||||
public Result info(@Param("id") String id){
|
||||
BenefitGoodsCategory benefitGoodsCategory = benefitGoodsCategoryService.fetch(id);
|
||||
return Result.success(benefitGoodsCategory);
|
||||
}
|
||||
|
||||
@At("/doDelete/?")
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@ApiOperation("删除福利商品分类")
|
||||
@SLog(type = "goodsCategory", tag = "删除福利商品分类", msg = "删除福利商品分类")
|
||||
public Result doDelete(String id) {
|
||||
int count = benefitGoodsCategoryService.count(Cnd.NEW().and("parentId", "=", id));
|
||||
if (count>0){
|
||||
return Result.error("该分类下存在子分类,无法删除!");
|
||||
}
|
||||
benefitGoodsCategoryService.delete(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@ApiOperation("获取福利商品分类树形结构")
|
||||
public Result getCategoryTree(){
|
||||
return Result.success(benefitGoodsCategoryService.getCategoryTree());
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@ApiOperation("查询下级类型")
|
||||
public Result child(@Param("pid") String pid,String name,Integer status){
|
||||
List<NutMap> treeList = new ArrayList<>();
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (StrUtil.isNotBlank(name)){
|
||||
cnd.and(BenefitGoodsCategory::getName,"like", name);
|
||||
}
|
||||
if (status!=null){
|
||||
cnd.and(BenefitGoodsCategory::getStatus,"=", status);
|
||||
}
|
||||
List<BenefitGoodsCategory> list = benefitGoodsCategoryService.query(cnd.and(BenefitGoodsCategory::getParentId, "=", pid));
|
||||
for (BenefitGoodsCategory benefitGoodsCategory : list) {
|
||||
if (benefitGoodsCategoryService.count(Cnd.where("parentId", "=", benefitGoodsCategory.getId())) > 0) {
|
||||
benefitGoodsCategory.setHasChildren(true);
|
||||
}
|
||||
NutMap map = Lang.obj2nutmap(benefitGoodsCategory);
|
||||
map.put("expanded", false);
|
||||
map.put("children", new ArrayList<>());
|
||||
treeList.add(map);
|
||||
}
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
@At("/enable/?")
|
||||
@Ok("json")
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@SLog(tag = "启用福利商品类型", msg = "类型名称:${args[1].getAttribute('name')}")
|
||||
public Object enable(String id, HttpServletRequest req) {
|
||||
try {
|
||||
req.setAttribute("name", benefitGoodsCategoryService.fetch(id).getName());
|
||||
benefitGoodsCategoryService.update(org.nutz.dao.Chain.make("status", 0), Cnd.where(BenefitGoodsCategory::getId, "=", id).or(BenefitGoodsCategory::getParentId,"=",id));
|
||||
return Result.success();
|
||||
}catch (Exception e) {
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
|
||||
@At("/disable/?")
|
||||
@Ok("json")
|
||||
@SaCheckPermission("benefit.goodsCategory.mange")
|
||||
@SLog(tag = "禁用福利商品类型", msg = "类型名称:${args[1].getAttribute('name')}")
|
||||
public Object disable(String id, HttpServletRequest req) {
|
||||
try {
|
||||
req.setAttribute("name", benefitGoodsCategoryService.fetch(id).getName());
|
||||
benefitGoodsCategoryService.update(org.nutz.dao.Chain.make("status", 1), Cnd.where(BenefitGoodsCategory::getId, "=", id).or(BenefitGoodsCategory::getParentId,"=",id));
|
||||
return Result.success();
|
||||
} catch (Exception e) {
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsSpecifications;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitGoodsPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsCategoryService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/13 上午10:16
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/benefit/goods")
|
||||
@Ok("json:full")
|
||||
@Api(tags = "福利商品")
|
||||
public class BenefitGoodsController {
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsService benefitGoodsService;
|
||||
@Inject
|
||||
private BenefitGoodsCategoryService benefitGoodsCategoryService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/goods/index.html")
|
||||
@SaCheckPermission("benefit.goods")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public Result pageData(BenefitGoodsPageForm pageForm) {
|
||||
Sql sql = benefitGoodsService.getSql(pageForm);
|
||||
Pagination pagination = benefitGoodsService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("获取商品类型")
|
||||
@SaCheckPermission("benefit.goods")
|
||||
public Result getGoodsCategoryTree() {
|
||||
List<Tree<String>> categoryTree = benefitGoodsCategoryService.getCategoryTree();
|
||||
return Result.success(categoryTree);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("提交商品")
|
||||
@SLog(tag = "商品管理", msg = "提交商品")
|
||||
@SaCheckPermission("benefit.goods")
|
||||
public Result submit(@Param("data") BenefitGoods benefitGoods) {
|
||||
benefitGoodsService.submit(benefitGoods);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("删除商品")
|
||||
@SLog(tag = "商品管理", msg = "删除商品")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("benefit.goods")
|
||||
public Result delete(String id) {
|
||||
benefitGoodsService.delete(id);
|
||||
benefitGoodsService.dao().clear(BenefitGoodsSpecifications.class, Cnd.where("goodsId", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询单个商品")
|
||||
@SaCheckPermission("benefit.goods")
|
||||
public Result findOne(String id) {
|
||||
NutMap map = benefitGoodsService.findOne(id);
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("根据类型id获取商品")
|
||||
@SaCheckPermission("benefit.goods")
|
||||
public Result getGoodsListByType(String id) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (id!=null&&!"".equals(id)){
|
||||
cnd.and(BenefitGoods::getGoodsCategoryOneLevelId, "=", id);
|
||||
}
|
||||
return Result.success(benefitGoodsService.query(cnd));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitGoodsOrderServicePageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsOrderService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsOrderController
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/20 15:26
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/benefit/order")
|
||||
public class BenefitGoodsOrderController {
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsOrderService benefitGoodsOrderService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/order/index.html")
|
||||
@SaCheckPermission("benefit.order.mange")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.order.mange")
|
||||
public Result pageData(BenefitGoodsOrderServicePageForm pageForm) {
|
||||
Sql sql = benefitGoodsOrderService.getSql(pageForm);
|
||||
Pagination pagination = benefitGoodsOrderService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("删除商品订单")
|
||||
@SaCheckPermission("benefit.order.mange")
|
||||
public Result deleteOrder(String id) {
|
||||
benefitGoodsOrderService.clear(Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitProject;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitProjectPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsCategoryService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitProjectService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitProjectController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/12 下午2:20
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/benefit/project")
|
||||
@Ok("json:full")
|
||||
@Api(tags = "福利项目")
|
||||
public class BenefitProjectController {
|
||||
|
||||
@Inject
|
||||
private BenefitProjectService benefitProjectService;
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsCategoryService benefitGoodsCategoryService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/project/index.html")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public Result pageData(BenefitProjectPageForm pageForm) {
|
||||
Sql sql = benefitProjectService.getSql(pageForm);
|
||||
Pagination pagination = benefitProjectService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("按年度获取福利项目")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result getBenefitList(Integer year) {
|
||||
return Result.success(benefitProjectService.getBenefitList(year));
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("获取没有关联的商品及关联了自己福利项目的商品")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result getGoodsTableData(@Param("pageForm") BenefitProjectPageForm benefitProjectPageForm) {
|
||||
return Result.success(benefitProjectService.getGoodsTableData(benefitProjectPageForm));
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.project")
|
||||
@ApiOperation("获取福利商品分类树形结构")
|
||||
public Result getCategoryTree() {
|
||||
return Result.success(benefitGoodsCategoryService.getCategoryTree());
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("提交福利项目")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "福利项目", msg = "提交福利项目")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result submit(@Param("data") BenefitProject benefitProject,
|
||||
@Param("benefitGoodsIds[]") List<String> benefitGoodsIds) {
|
||||
benefitProjectService.submit(benefitProject, benefitGoodsIds);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("修改福利状态")
|
||||
@SLog(tag = "福利项目", msg = "修改福利状态")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result doEdit(@Valid String id, Boolean isUnseal) {
|
||||
benefitProjectService.update(Chain.make("isUnseal", isUnseal), Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("福利项目删除")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "福利项目", msg = "删除福利项目")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result delete(@Valid String id) {
|
||||
benefitProjectService.deleteBenefit(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("查询单个福利项目")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result findOne(@Valid String id) {
|
||||
BenefitProject map = benefitProjectService.findOne(id);
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("生成福利名单")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result createBenefitUser(@Valid String benefitId) {
|
||||
benefitProjectService.createBenefitUser(benefitId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("更新福利名单")
|
||||
@SaCheckPermission("benefit.project")
|
||||
public Result renewBenefitUser(@Valid String benefitId, Boolean isRenew) {
|
||||
benefitProjectService.renewBenefitUser(benefitId, isRenew);
|
||||
return Result.success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.*;
|
||||
import com.budwk.app.zhgh.benefit.param.vo.BenefitBuyGoodsVo;
|
||||
import com.budwk.app.zhgh.benefit.service.*;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitShoppController
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/14 14:26
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/benefit/shop")
|
||||
public class BenefitShopController {
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsCategoryService benefitGoodsCategoryService;
|
||||
|
||||
@Inject
|
||||
private BenefitProjectService benefitProjectService;
|
||||
|
||||
// @Inject
|
||||
// private IntegralManageService integralManageService;
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsService benefitGoodsService;
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsOrderService benefitGoodsOrderService;
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsCartService benefitGoodsCartService;
|
||||
|
||||
@Inject
|
||||
private BenefitAddressService benefitAddressService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/shop/index.html")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
@ApiOperation("获取福利商品分类树形结构")
|
||||
public Result getCategoryTree(){
|
||||
return Result.success(benefitGoodsCategoryService.getCategoryTree());
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
@ApiOperation("获取当前时间段的项目商品")
|
||||
public Result getProjectGoodsList(){
|
||||
return Result.success(benefitProjectService.getProjectGoodsList());
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
@ApiOperation("获取分类下面的商品")
|
||||
public Result getGoodsListByType(String id){
|
||||
return Result.success(benefitGoodsCategoryService.getGoodsListByType(id));
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
@ApiOperation("购买多个商品")
|
||||
public Result buyGoodsList(BenefitBuyGoodsVo benefitBuyGoodsVo){
|
||||
//获取当前用户信息
|
||||
Sys_user sysUser = benefitGoodsService.dao().fetch(Sys_user.class, SecurityUtil.getUserId());
|
||||
//获取商品总积分
|
||||
int totalPoints = benefitBuyGoodsVo.getList().stream().map(BenefitGoodsSpecifications::getPoints)
|
||||
.reduce(0,Integer::sum);
|
||||
|
||||
// 获取当前日期和时间
|
||||
LocalDateTime currentDateTime = LocalDateTime.now();
|
||||
|
||||
// 格式化时间
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
//获取收货地址
|
||||
BenefitAddress address = benefitAddressService.fetch(benefitBuyGoodsVo.getAddressId());
|
||||
|
||||
//判断积分是否足够
|
||||
if (sysUser.getTotalIntegral()>=totalPoints){
|
||||
for (BenefitGoodsSpecifications benefitGoodsSpecifications : benefitBuyGoodsVo.getList()) {
|
||||
//添加购买信息到积分表
|
||||
// integralManageService.operateIntegral(SecurityUtil.getUserId(),-benefitGoodsSpecifications.getPoints(),IntegralChangeTypeEnum.DECREASE, IntegralOriginEnum.BUY_GOODS,benefitGoodsSpecifications.getId(),"积分商城购买商品");
|
||||
BenefitGoodsOrder benefitGoodsOrder = new BenefitGoodsOrder();
|
||||
benefitGoodsOrder.setGoodsId(benefitGoodsSpecifications.getGoodsId());
|
||||
benefitGoodsOrder.setSpecificationsId(benefitGoodsSpecifications.getId());
|
||||
benefitGoodsOrder.setSelectUserId(sysUser.getId());
|
||||
benefitGoodsOrder.setReceiveAddress(address.getProvince()+address.getCity()+address.getCounty()+address.getAddressDetail());
|
||||
benefitGoodsOrder.setUserAddress(address.getUserName()+address.getTel());
|
||||
benefitGoodsOrder.setOrderTime(currentDateTime.format(formatter));
|
||||
//添加信息到订单表
|
||||
benefitGoodsOrderService.insert(benefitGoodsOrder);
|
||||
}
|
||||
//移出购物车
|
||||
if (benefitBuyGoodsVo.getCartId()!=null){
|
||||
benefitGoodsCartService.delete(benefitBuyGoodsVo.getCartId());
|
||||
}
|
||||
return Result.success().addMsg("购买成功!");
|
||||
}else{
|
||||
return Result.error().addMsg("您的剩余积分不足!");
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("获取主页轮播商品")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result getGoodsList(){
|
||||
return Result.success(benefitGoodsService.query(Cnd.NEW().and(BenefitGoods::getStatus,"=",true).and(BenefitGoods::getIsHomepage,"=",true)));
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询单个商品")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result findOne(String id) {
|
||||
NutMap map = benefitGoodsService.findOne(id);
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询用户购物车")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result getCartList() {
|
||||
return Result.success(benefitGoodsCartService.getCartList());
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("修改购物车商品")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result editCart(BenefitGoodsCart benefitGoodsCart) {
|
||||
benefitGoodsCartService.update(benefitGoodsCart);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("修改多个购物车商品")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result editCartList(@Valid String[] ids, @Valid int isChecked) {
|
||||
benefitGoodsCartService.update(Chain.make("isChecked",isChecked),Cnd.where("id", "in", ids));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("添加购物车商品")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result addCart(BenefitGoodsCart benefitGoodsCart) {
|
||||
benefitGoodsCart.setUserId(SecurityUtil.getUserId());;
|
||||
benefitGoodsCartService.insert(benefitGoodsCart);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("删除购物车商品")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result deleteCart(String id) {
|
||||
benefitGoodsCartService.clear(Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("根据规格id查询商品")
|
||||
@SaCheckPermission("benefit.shop.mange")
|
||||
public Result findOneBySpecId(String id) {
|
||||
NutMap map = benefitGoodsService.findOneBySpecId(id);
|
||||
return Result.success(map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitProject;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitStatisticsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitStatisticsController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/21 下午2:44
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/benefit/statistics")
|
||||
@Ok("json:full")
|
||||
@Slf4j
|
||||
@Api(tags = "节日福利用户选择管理")
|
||||
public class BenefitStatisticsController {
|
||||
|
||||
@Inject
|
||||
private BenefitStatisticsService benefitStatisticsService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/statistics/index.html")
|
||||
@SaCheckPermission("benefit.statistics")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.statistics")
|
||||
public Result pageData(String benefitId, String unionId) {
|
||||
return Result.success(benefitStatisticsService.pageData(benefitId, unionId));
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询福利列表")
|
||||
@SaCheckPermission("benefit.statistics")
|
||||
public Result getBenefitList(Integer year) {
|
||||
List<BenefitProject> projectList = benefitStatisticsService.dao().query(BenefitProject.class,
|
||||
Cnd.where("provideMode", "=", "BENEFIT_PROVIDE_MODE_TWO")
|
||||
.andEX("year", "=", year));
|
||||
projectList.forEach(v -> {
|
||||
benefitStatisticsService.dao().fetchLinks(v, "benefitGoodsList");
|
||||
v.getBenefitGoodsList().forEach(g -> {
|
||||
benefitStatisticsService.dao().fetchLinks(g, "benefitGoodsSpecificationsList");
|
||||
});
|
||||
});
|
||||
return Result.success(projectList);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("benefit.statistics")
|
||||
@ApiOperation("导出福利汇总情况")
|
||||
public void openExportSummary(String benefitId, String unionId, HttpServletResponse response) {
|
||||
benefitStatisticsService.openExportSummary(benefitId, unionId, response);
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("benefit.statistics")
|
||||
@ApiOperation("导出福利汇总情况")
|
||||
public Result doSetAllBenefit(@Valid String benefitId, @Valid @Param("benefitGoodsList") String benefitGoodsList) {
|
||||
benefitStatisticsService.doSelectByAdmin(benefitId, benefitGoodsList);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.zhgh.benefit.mode.BenefitUserTemp;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUserSelection;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitUserPageForm;
|
||||
import com.budwk.app.zhgh.benefit.param.vo.BenefitUserVo;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/12 上午11:22
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/benefit/user")
|
||||
@Ok("json:full")
|
||||
@Api(tags = "福利名单")
|
||||
@Slf4j
|
||||
public class BenefitUserController {
|
||||
|
||||
@Inject
|
||||
private BenefitUserService benefitUserService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/userList/index.html")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public Result pageData(BenefitUserPageForm pageForm) {
|
||||
Sql sql = benefitUserService.getSql(pageForm);
|
||||
Pagination pagination = benefitUserService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("获取不在当前福利名单里面的人")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public Result selectNotBenefitUser(BenefitUserPageForm pageForm) {
|
||||
return Result.success(benefitUserService.getSelectNotBenefitUser(pageForm));
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("把选择的人添加到当前福利名单中")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public Result doBenefitUser(BenefitUserVo benefitUserVo) {
|
||||
benefitUserService.doBenefitUser(benefitUserVo.getIds(), benefitUserVo.getBenefitId());
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("根据id删除福利名单的人")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public Result deleteBenefitUser(@Valid String id, @Valid String benefitId) {
|
||||
benefitUserService.delete(id);
|
||||
benefitUserService.dao().clear(BenefitUserSelection.class, Cnd.where("benefitId", "=", benefitId)
|
||||
.and("selectUserId", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@ApiOperation("下载福利名单导入模板")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public void downloadImport(HttpServletResponse response) {
|
||||
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();) {
|
||||
EasyExcel.write(byteArrayOutputStream, BenefitUserTemp.class)
|
||||
.sheet("福利名单导入模版")
|
||||
.doWrite(ArrayList::new);
|
||||
CommonDownloadUtil.download("福利名单导入模版.xlsx", byteArrayOutputStream.toByteArray(), response);
|
||||
} catch (Exception e) {
|
||||
log.error("下载福利名单导入模版失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("benefit.user")
|
||||
@ApiOperation("导入福利名单")
|
||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||
public Result doImportBenefitUser(TempFile file, @Valid String businessId, @Valid Boolean isFlag) {
|
||||
return benefitUserService.doImportBenefitUser(file, businessId, isFlag);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("benefit.user")
|
||||
@ApiOperation("导出福利名单")
|
||||
public void exportBenefitUser(BenefitUserPageForm pageForm, HttpServletResponse response) {
|
||||
Sql sql = benefitUserService.getSql(pageForm);
|
||||
List<NutMap> map = benefitUserService.listMap(sql);
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||
exportEntities.add(new ExcelExportEntity("教职工类别", "personType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所在分工会", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所在部门", "unitName", 20));
|
||||
try {
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, map);
|
||||
CommonDownloadUtil.download("福利名单.xlsx", workbook, response);
|
||||
} catch (Exception e) {
|
||||
log.error("导出福利名单失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitProject;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUserSelection;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitProjectService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserSelectionService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserSelectionController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/18 上午9:43
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/benefit/userSelection")
|
||||
@Ok("json:full")
|
||||
@Api(tags = "节日福利选择")
|
||||
public class BenefitUserSelectionController {
|
||||
|
||||
@Inject
|
||||
private BenefitUserSelectionService benefitUserSelectionService;
|
||||
|
||||
@Inject
|
||||
private BenefitProjectService benefitProjectService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/userSelection/index.html")
|
||||
@SaCheckPermission("benefit.userSelection")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("按年度获取福利项目")
|
||||
@SaCheckPermission("benefit.userSelection")
|
||||
public Result getBenefitList(Integer year) {
|
||||
return Result.success(benefitProjectService.getBenefitList(year));
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.userSelection")
|
||||
public Result pageData(PageForm pageForm, String benefitId, Integer year) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bu.*,
|
||||
bp.`year` ,
|
||||
bp.`name` benefitName,
|
||||
bp.startChoiceTime,
|
||||
bp.endChoiceTime,
|
||||
bp.provideMode,
|
||||
bp.signMode,
|
||||
bp.cover
|
||||
FROM
|
||||
benefit_user bu
|
||||
LEFT JOIN benefit_project bp ON bp.id = bu.benefitId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("bu.benefitId", "=", benefitId);
|
||||
cnd.and("bp.isUnseal", "=", 1);
|
||||
cnd.and(Cnd.exps("bp.provideMode", "=", "BENEFIT_PROVIDE_MODE_TWO")
|
||||
.or(Cnd.exps("bp.provideMode", "=", "BENEFIT_PROVIDE_MODE_ONE")
|
||||
.and("bp.signMode", "=", "BENEFIT_SIGN_MODE_ONE"))
|
||||
);
|
||||
cnd.and("bu.userId", "=", SecurityUtil.getUserId());
|
||||
cnd.andEX("bp.year", "=", year);
|
||||
cnd.and("bp.startChoiceTime", "<", DateUtil.now());
|
||||
cnd.and("bp.endChoiceTime", ">", DateUtil.now());
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = benefitUserSelectionService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询单个福利项目")
|
||||
@SaCheckPermission("benefit.userSelection")
|
||||
public Result findOneBenefit(@Valid String id) {
|
||||
BenefitProject map = benefitProjectService.findOne(id);
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("提交福利")
|
||||
@SaCheckPermission("benefit.userSelection")
|
||||
public Result submit(@Param("benefitUserSelection") BenefitUserSelection[] benefitUserSelection, @Valid String benefitId, @Valid String userId) {
|
||||
benefitUserSelectionService.submit(benefitUserSelection, benefitId, userId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("统一发放并且需要签字")
|
||||
@SaCheckPermission("benefit.userSelection")
|
||||
public Result provideModeOneDoSubmit(@Valid String benefitId, @Valid String userSign) {
|
||||
benefitUserSelectionService.dao().update(BenefitUser.class, Chain.make("userSign", userSign)
|
||||
.add("isChoice", true),
|
||||
Cnd.where("userId", "=", SecurityUtil.getUserId())
|
||||
.and("benefitId", "=", benefitId));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询自己选择的福利")
|
||||
@SaCheckPermission("benefit.userSelection")
|
||||
public Result selectSelectionBenefit(String benefitId, String userId) {
|
||||
return Result.success(benefitUserSelectionService.selectSelectionBenefit(benefitId, userId));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.afterturn.easypoi.entity.BaseTypeConstants;
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitProject;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitUserPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserSelectionListService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserSelectionListController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/20 下午4:42
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/benefit/userSelection/list")
|
||||
@Ok("json:full")
|
||||
@Slf4j
|
||||
@Api(tags = "节日福利用户选择管理")
|
||||
public class BenefitUserSelectionListController {
|
||||
|
||||
@Inject
|
||||
private BenefitUserSelectionListService benefitUserSelectionListService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/userSelectionList/index.html")
|
||||
@SaCheckPermission("benefit.userSelectionList")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.user")
|
||||
public Result pageData(BenefitUserPageForm pageForm) {
|
||||
Sql sql = benefitUserSelectionListService.getSql(pageForm);
|
||||
Pagination pagination = benefitUserSelectionListService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("benefit.user")
|
||||
@ApiOperation("导出福利名单的选择情况")
|
||||
public void exportBenefitUserSelect(BenefitUserPageForm pageForm, HttpServletResponse response) {
|
||||
Sql sql = benefitUserSelectionListService.getExportSql(pageForm);
|
||||
List<NutMap> map = benefitUserSelectionListService.listMap(sql);
|
||||
BenefitProject benefitProject = benefitUserSelectionListService.dao().fetch(BenefitProject.class, pageForm.getBenefitId());
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||
exportEntities.add(new ExcelExportEntity("教职工类别", "personType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所在分工会", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所在部门", "unitName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所选福利", "giftName", 30));
|
||||
if (benefitProject.getProvideMode().equals("BENEFIT_PROVIDE_MODE_TWO")) {
|
||||
exportEntities.add(new ExcelExportEntity("商品规格", "specificationsName", 100));
|
||||
ExcelExportEntity excelExport = new ExcelExportEntity("选择数量", "selectNum", 20);
|
||||
excelExport.setType(BaseTypeConstants.DOUBLE_TYPE);
|
||||
exportEntities.add(excelExport);
|
||||
exportEntities.add(new ExcelExportEntity("收货地址", "receiveAddress", 100));
|
||||
}
|
||||
try {
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, map);
|
||||
CommonDownloadUtil.download(benefitProject.getName() + "选择情况.xlsx", workbook, response);
|
||||
} catch (Exception e) {
|
||||
log.error("导出福利名单失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.budwk.app.zhgh.benefit.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserSelectionMineService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserSelectionMineController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/20 下午4:43
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/benefit/userSelection/mine")
|
||||
@Ok("json:full")
|
||||
@Api(tags = "节日福利我的选择")
|
||||
public class BenefitUserSelectionMineController {
|
||||
@Inject
|
||||
private BenefitUserSelectionMineService benefitUserSelectionMineService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/benefit/userSelectionMine/index.html")
|
||||
@SaCheckPermission("benefit.userSelectionMine")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("benefit.userSelectionMine")
|
||||
public Result pageData(PageForm pageForm, String benefitId, Integer year) {
|
||||
return Result.success(benefitUserSelectionMineService.pageData(pageForm, benefitId, year));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.budwk.app.zhgh.benefit.h5Controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/h5/benefit/address")
|
||||
public class H5BenefitAddressController {
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/address/index.html")
|
||||
@SaCheckPermission("h5.benefit.address")
|
||||
public void index() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.budwk.app.zhgh.benefit.h5Controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/h5/benefit/shop")
|
||||
public class H5BenefitShopController {
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/shop/index.html")
|
||||
@SaCheckPermission("h5.benefit.shop")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At("/category")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/shop/category.html")
|
||||
@SaCheckPermission("h5.benefit.shop")
|
||||
public void category() {
|
||||
}
|
||||
|
||||
@At("/detail")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/shop/detail.html")
|
||||
@SaCheckPermission("h5.benefit.shop")
|
||||
public void detail() {
|
||||
}
|
||||
|
||||
@At("/cart")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/shop/cart.html")
|
||||
@SaCheckPermission("h5.benefit.shop")
|
||||
public void cart() {
|
||||
}
|
||||
|
||||
@At("/buy")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/shop/buy.html")
|
||||
@SaCheckPermission("h5.benefit.shop")
|
||||
public void buy() {
|
||||
}
|
||||
|
||||
@At("/order")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/shop/order.html")
|
||||
@SaCheckPermission("h5.benefit.shop")
|
||||
public void order() {
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.budwk.app.zhgh.benefit.h5Controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserSelectionService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @ClassName H5BenefitUserSelectionController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/24 上午11:06
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/h5/benefit/userSelection")
|
||||
@Ok("json:full")
|
||||
@Api(tags = "节日福利选择")
|
||||
public class H5BenefitUserSelectionController {
|
||||
|
||||
@Inject
|
||||
private BenefitUserSelectionService benefitUserSelectionService;
|
||||
|
||||
@Inject
|
||||
private BenefitUserService benefitUserService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/userSelection/index.html")
|
||||
@SaCheckPermission("h5.benefit.userSelection")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At("/goodsSelection")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/userSelection/goodsSelection.html")
|
||||
@SaCheckPermission("h5.benefit.userSelection")
|
||||
public void goodsSelection() {
|
||||
}
|
||||
|
||||
@At("/goodsSelectionMine")
|
||||
@Ok("beetl:/platform/zhghh5/benefit/userSelectionMine/index.html")
|
||||
@SaCheckPermission("h5.benefit.userSelection")
|
||||
public void goodsSelectionMine() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询自己福利名单的签字")
|
||||
@SaCheckPermission("h5.benefit.userSelection")
|
||||
public Result getUserSelectionSign(String benefitId) {
|
||||
return Result.success(benefitUserService.fetch(Cnd.where("benefitId", "=", benefitId).and("userId", "=", SecurityUtil.getUserId())));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.budwk.app.zhgh.benefit.mode;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
|
||||
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
@ContentRowHeight(20) // 内容行高
|
||||
@HeadRowHeight(20) // 表头行高
|
||||
@ColumnWidth(25) //列宽
|
||||
public class BenefitUserTemp {
|
||||
|
||||
@ExcelProperty("工号")
|
||||
private String loginName;
|
||||
|
||||
@ExcelProperty("姓名")
|
||||
private String userName;
|
||||
|
||||
@ExcelIgnore
|
||||
private String errorInfo;
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 福利会员地址信息
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_address")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利商品分类表")
|
||||
public class BenefitAddress extends BaseModel implements Serializable {
|
||||
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("用户ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String userId;
|
||||
|
||||
@Column
|
||||
@Comment("收货人姓名")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 64)
|
||||
private String userName;
|
||||
|
||||
@Column
|
||||
@Comment("收货人手机号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 11)
|
||||
private String tel;
|
||||
|
||||
@Column
|
||||
@Comment("省份")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 10)
|
||||
private String province;
|
||||
|
||||
@Column
|
||||
@Comment("城市")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 10)
|
||||
private String city;
|
||||
|
||||
@Column
|
||||
@Comment("区县")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 10)
|
||||
private String county;
|
||||
|
||||
@Column
|
||||
@Comment("详细地址")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String addressDetail;
|
||||
|
||||
@Column
|
||||
@Comment("地区编码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 10)
|
||||
private String areaCode;
|
||||
|
||||
@Column
|
||||
@Comment("是否为默认地址")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default("0")
|
||||
private boolean isDefault;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoods
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/13 上午9:06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_goods")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利商品表")
|
||||
public class BenefitGoods extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("福利id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String benefitId;
|
||||
|
||||
@Column
|
||||
@Comment("商品名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String name;
|
||||
|
||||
@Column
|
||||
@Comment("排序")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer goodsSort;
|
||||
|
||||
@Column
|
||||
@Comment("图片地址")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> imgUrl;
|
||||
|
||||
@Column
|
||||
@Comment("说明描述")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String description;
|
||||
|
||||
@Column
|
||||
@Comment("简短描述")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String simpleDesc;
|
||||
|
||||
@Column
|
||||
@Comment("所属一级分类")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String goodsCategoryOneLevelId;
|
||||
|
||||
@Column
|
||||
@Comment("所属二级分类")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String goodsCategoryTwoLevelId;
|
||||
|
||||
@Column
|
||||
@Comment("价格")
|
||||
@ColDefine(customType = "decimal(6,2)")
|
||||
private BigDecimal money;
|
||||
|
||||
@Column
|
||||
@Comment("商品状态(1.上架,0.下架)")
|
||||
@Default("1")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean status;
|
||||
|
||||
@Column
|
||||
@Comment("是否主页展示(1.展示,0.不展示)")
|
||||
@Default("0")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean isHomepage;
|
||||
|
||||
@Column
|
||||
@Comment("发放形式(dict)")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String goodsProvideMode;
|
||||
|
||||
@Column
|
||||
@Comment("邮寄发放配置")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private JSONObject postProvideConfig;
|
||||
|
||||
@Column
|
||||
@Comment("门店地址")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> shopAddressList;
|
||||
|
||||
@Many(field = "goodsId")
|
||||
private List<BenefitGoodsSpecifications> benefitGoodsSpecificationsList;
|
||||
|
||||
private Integer choiceNum;
|
||||
|
||||
@Column
|
||||
@Comment("主页图片")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> carouselImgUrl;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsCart
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/19 16:22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_goods_cart")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利商品购物车表")
|
||||
public class BenefitGoodsCart extends BaseModel {
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("所属用户")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String userId;
|
||||
|
||||
@Column
|
||||
@Comment("商品id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String goodsId;
|
||||
|
||||
@Column
|
||||
@Comment("数量")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer count;
|
||||
|
||||
@Column
|
||||
@Comment("规格id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String specificationsId;
|
||||
|
||||
@Column
|
||||
@Comment("是否选中")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default("0")
|
||||
private boolean isChecked;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_goods_Category")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利商品分类表")
|
||||
public class BenefitGoodsCategory extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("类型名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 128)
|
||||
private String name;
|
||||
|
||||
@Column
|
||||
@Comment("父级ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String parentId;
|
||||
|
||||
@Column
|
||||
@Comment("状态")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer status;
|
||||
|
||||
@Column
|
||||
@Comment("排序")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer sort;
|
||||
|
||||
@Column
|
||||
@Comment("有子节点")
|
||||
private boolean hasChildren;
|
||||
|
||||
@Column
|
||||
@Comment("图标")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
private String icon;
|
||||
|
||||
private List<BenefitGoodsCategory> children;
|
||||
|
||||
private List<BenefitGoods> goodsList;
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
/**
|
||||
* @Description 福利商品订单
|
||||
* hpf
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_goods_order")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利订单表")
|
||||
public class BenefitGoodsOrder extends BaseModel {
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("商品ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String goodsId;
|
||||
|
||||
@Column
|
||||
@Comment("用户ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String selectUserId;
|
||||
|
||||
@Column
|
||||
@Comment("规格ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String specificationsId;
|
||||
|
||||
@Column
|
||||
@Comment("收货地址")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String receiveAddress;
|
||||
|
||||
@Column
|
||||
@Comment("收货信息")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String userAddress;
|
||||
|
||||
@Column
|
||||
@Comment("下单时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private String orderTime;
|
||||
|
||||
@Column
|
||||
@Comment("快递单号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String trackingNumber;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsSpecifications
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/13 上午9:43
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_goods_specifications")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利规格表")
|
||||
public class BenefitGoodsSpecifications extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("商品Id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String goodsId;
|
||||
|
||||
@Column
|
||||
@Comment("规格名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String name;
|
||||
|
||||
@Column
|
||||
@Comment("图片地址")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> imgUrl;
|
||||
|
||||
@Column
|
||||
@Comment("排序")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer specificationsSort;
|
||||
|
||||
@Column
|
||||
@Comment("兑换所需积分")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer points;
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_project")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利项目表")
|
||||
public class BenefitProject extends BaseModel {
|
||||
|
||||
@Column
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("年度")
|
||||
@ColDefine(type = ColType.INT, width = 4)
|
||||
private Integer year;
|
||||
|
||||
@Column
|
||||
@Comment("项目名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String name;
|
||||
|
||||
@Column
|
||||
@Comment("节日")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String festival;
|
||||
|
||||
@Column
|
||||
@Comment("福利礼品(用于分工会发放)")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String giftName;
|
||||
|
||||
@Column
|
||||
@Comment("选择开始时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private Date startChoiceTime;
|
||||
|
||||
@Column
|
||||
@Comment("选择结束时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private Date endChoiceTime;
|
||||
|
||||
@Column
|
||||
@Comment("逾期补发结束时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private Date endOverdueChoiceTime;
|
||||
|
||||
@Column
|
||||
@Comment("发放形式(dict)")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String provideMode;
|
||||
|
||||
@Column
|
||||
@Comment("签字形式(dict)")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String signMode;
|
||||
|
||||
@Column
|
||||
@Comment("封面")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 200)
|
||||
private String cover;
|
||||
|
||||
@Column
|
||||
@Comment("是否开启")
|
||||
@Default("1")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean isUnseal;
|
||||
|
||||
@Column
|
||||
@Comment("福利总价格")
|
||||
@ColDefine(customType = "decimal(7,2)")
|
||||
private BigDecimal totalMoney;
|
||||
|
||||
/**
|
||||
* 商品
|
||||
*/
|
||||
@Many(field = "benefitId")
|
||||
private List<BenefitGoods> benefitGoodsList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitList
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/12 上午10:46
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_user")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利名单表")
|
||||
public class BenefitUser extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Column
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("福利项目ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String benefitId;
|
||||
|
||||
@Column
|
||||
@Comment("用户ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String userId;
|
||||
|
||||
@Column
|
||||
@Comment("用户姓名")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String userName;
|
||||
|
||||
@Column
|
||||
@Comment("用户工号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String loginName;
|
||||
|
||||
@Column
|
||||
@Comment("单位ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unitId;
|
||||
|
||||
@Column
|
||||
@Comment("工会ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unionId;
|
||||
|
||||
@Column
|
||||
@Comment("教职工类别")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String personType;
|
||||
|
||||
@Column
|
||||
@Comment("在职状态")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String userState;
|
||||
|
||||
@Column
|
||||
@Comment("是否选择")
|
||||
@Default("0")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean isChoice;
|
||||
|
||||
@Column
|
||||
@Comment("用户签字(用于统一发放需要签字)")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String userSign;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.budwk.app.zhgh.benefit.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserSelection
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/18 上午9:37
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("benefit_user_selection")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("福利选择表")
|
||||
public class BenefitUserSelection extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Column
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("福利项目ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String benefitId;
|
||||
|
||||
@Column
|
||||
@Comment("商品ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String goodsId;
|
||||
|
||||
@Column
|
||||
@Comment("规格ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String specificationsId;
|
||||
|
||||
@Column
|
||||
@Comment("选择用户")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String selectUserId;
|
||||
|
||||
@Column
|
||||
@Comment("选择时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private Date selectTime;
|
||||
|
||||
@Column
|
||||
@Comment("收货地址")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String receiveAddress;
|
||||
|
||||
@Column
|
||||
@Comment("收货门店")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String shopAddress;
|
||||
|
||||
@Column
|
||||
@Comment("用户签字")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String userSign;
|
||||
|
||||
@Column
|
||||
@Comment("选择数量")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer selectNum;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.budwk.app.zhgh.benefit.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsCategoryPageForm
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/12 11:29
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class BenefitGoodsCategoryPageForm extends PageForm {
|
||||
private String id;
|
||||
private String name;
|
||||
private String goodsId;
|
||||
private String parentId;
|
||||
private Integer status;
|
||||
private Integer level;
|
||||
private Integer sort;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.budwk.app.zhgh.benefit.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsOrderServicePageForm
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/20 16:17
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class BenefitGoodsOrderServicePageForm extends PageForm {
|
||||
private String id;
|
||||
private String goodsName;
|
||||
private String specName;
|
||||
private String orderTime;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.budwk.app.zhgh.benefit.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsPageForm
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/13 下午4:06
|
||||
*/
|
||||
@Data
|
||||
public class BenefitGoodsPageForm extends PageForm {
|
||||
private String benefitId;
|
||||
private String goodsCategoryOneLevelId;
|
||||
private String goodsCategoryTwoLevelId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.budwk.app.zhgh.benefit.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitProjectPageForm
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/14 下午5:02
|
||||
*/
|
||||
@Data
|
||||
public class BenefitProjectPageForm extends PageForm {
|
||||
|
||||
public Integer year;
|
||||
public String benefitId;
|
||||
//如果是编辑或者是新增就查询自己的商品和没有benefitId的商品,如果是查询就只查自己的商品
|
||||
public Boolean isEdit;
|
||||
public List<String> goodsCategoryIds;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.budwk.app.zhgh.benefit.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserParam
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/12 上午11:16
|
||||
*/
|
||||
@Data
|
||||
public class BenefitUserPageForm extends PageForm {
|
||||
private String unionId;
|
||||
private String unitId;
|
||||
private List<String> unitIds;
|
||||
private String personType;
|
||||
private List<String> personTypes;
|
||||
private String userState;
|
||||
private List<String> userStates;
|
||||
@NotEmpty(message = "福利id不能为空,为空暂时无法操作!")
|
||||
private String benefitId;
|
||||
private Integer isChoice;
|
||||
private String goodsId;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.budwk.app.zhgh.benefit.param.vo;
|
||||
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsSpecifications;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class BenefitBuyGoodsVo extends BenefitGoods {
|
||||
|
||||
private List<BenefitGoodsSpecifications> list;
|
||||
|
||||
private String addressId;
|
||||
|
||||
private List<String> cartId;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.budwk.app.zhgh.benefit.param.vo;
|
||||
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsCart;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsSpecifications;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class BenefitGoodsCartVo extends BenefitGoodsCart {
|
||||
|
||||
private BenefitGoods benefitGoods;
|
||||
|
||||
private BenefitGoodsSpecifications benefitGoodsSpecifications;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.budwk.app.zhgh.benefit.param.vo;
|
||||
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class BenefitUserVo extends BenefitUser {
|
||||
|
||||
private List<String> ids;
|
||||
|
||||
private String benefitId;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitAddress;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitAddressService
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/13 15:44
|
||||
*/
|
||||
public interface BenefitAddressService extends BaseService<BenefitAddress> {
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsCart;
|
||||
import com.budwk.app.zhgh.benefit.param.vo.BenefitGoodsCartVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsCartService
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/19 16:34
|
||||
*/
|
||||
public interface BenefitGoodsCartService extends BaseService<BenefitGoodsCart> {
|
||||
List<BenefitGoodsCartVo> getCartList();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsCategory;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsCategoryService
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/12 11:29
|
||||
*/
|
||||
public interface BenefitGoodsCategoryService extends BaseService<BenefitGoodsCategory> {
|
||||
List<Tree<String>> getCategoryTree();
|
||||
|
||||
List<BenefitGoodsCategory> getGoodsListByType(String id);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsOrder;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitGoodsOrderServicePageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsOrderService
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/19 15:01
|
||||
*/
|
||||
public interface BenefitGoodsOrderService extends BaseService<BenefitGoodsOrder> {
|
||||
Sql getSql(BenefitGoodsOrderServicePageForm pageForm);
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitGoodsPageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsService
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/13 上午10:33
|
||||
*/
|
||||
public interface BenefitGoodsService extends BaseService<BenefitGoods> {
|
||||
/**
|
||||
* @param benefitGoods
|
||||
* @author zhf
|
||||
* @description 提交福利商品
|
||||
*/
|
||||
void submit(BenefitGoods benefitGoods);
|
||||
|
||||
Sql getSql(BenefitGoodsPageForm benefitGoodsPageForm);
|
||||
|
||||
NutMap findOne(String id);
|
||||
|
||||
|
||||
NutMap findOneBySpecId(String id);
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsSpecifications;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsSpecificationsService
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/17 18:01
|
||||
*/
|
||||
public interface BenefitGoodsSpecificationsService extends BaseService<BenefitGoodsSpecifications> {
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitProject;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitProjectPageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface BenefitProjectService extends BaseService<BenefitProject> {
|
||||
|
||||
Sql getSql(BenefitProjectPageForm benefitProjectPageForm);
|
||||
/**
|
||||
* 按年度获取福利项目
|
||||
*
|
||||
* @param year 年份
|
||||
* @return
|
||||
*/
|
||||
List<BenefitProject> getBenefitList(Integer year);
|
||||
|
||||
/**
|
||||
* @param benefitProjectPageForm
|
||||
* @return com.budwk.app.base.page.Pagination
|
||||
* @author zhf
|
||||
* @description 获取没有关联的商品及关联了自己福利项目的商品
|
||||
*/
|
||||
Pagination getGoodsTableData(BenefitProjectPageForm benefitProjectPageForm);
|
||||
|
||||
/**
|
||||
* @param benefitProject
|
||||
* @param benefitGoodsIds
|
||||
* @author zhf
|
||||
* @description 提交福利项目
|
||||
*/
|
||||
void submit(BenefitProject benefitProject, List<String> benefitGoodsIds);
|
||||
|
||||
/**
|
||||
* @param id
|
||||
* @author zhf
|
||||
* @description 删除福利项目
|
||||
*/
|
||||
void deleteBenefit(String id);
|
||||
|
||||
/**
|
||||
* @param benefitId
|
||||
* @author zhf
|
||||
* @description 生成福利名单
|
||||
*/
|
||||
void createBenefitUser(String benefitId);
|
||||
|
||||
/**
|
||||
* @param benefitId
|
||||
* @param isRenew
|
||||
* @author zhf
|
||||
* @description 更新福利名单
|
||||
*/
|
||||
void renewBenefitUser(String benefitId, Boolean isRenew);
|
||||
|
||||
BenefitProject findOne(String id);
|
||||
|
||||
/**
|
||||
* @author hpf
|
||||
* @description 获取福利项目关联的商品
|
||||
*/
|
||||
List<BenefitProject> getProjectGoodsList();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUserSelection;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
public interface BenefitStatisticsService extends BaseService<BenefitUserSelection> {
|
||||
|
||||
NutMap pageData(String benefitId, String unionId);
|
||||
|
||||
List<NutMap> getUserSelectionByBenefitId(String benefitId);
|
||||
|
||||
void openExportSummary(String benefitId, String unionId, HttpServletResponse response);
|
||||
|
||||
void doSelectByAdmin(String benefitId, String benefitGoodsList);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitUserPageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
|
||||
public interface BenefitUserSelectionListService extends BaseService<BenefitUser> {
|
||||
|
||||
Sql getSql(BenefitUserPageForm pageForm);
|
||||
|
||||
Sql getExportSql(BenefitUserPageForm pageForm);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
|
||||
public interface BenefitUserSelectionMineService extends BaseService<BenefitUser> {
|
||||
|
||||
|
||||
Pagination pageData(PageForm pageForm, String benefitId, Integer year);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUserSelection;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface BenefitUserSelectionService extends BaseService<BenefitUserSelection> {
|
||||
|
||||
void submit(BenefitUserSelection[] benefitUserSelection, String benefitId, String userId);
|
||||
|
||||
/**
|
||||
* @param benefitId
|
||||
* @param userId
|
||||
* @return java.util.List<com.budwk.app.zhgh.benefit.models.BenefitUserSelection>
|
||||
* @author zhf
|
||||
* @description 查询自己选择的福利,如果有userid就查询对应的
|
||||
*/
|
||||
List<BenefitUserSelection> selectSelectionBenefit(String benefitId, String userId);
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.budwk.app.zhgh.benefit.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitUserPageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
public interface BenefitUserService extends BaseService<BenefitUser> {
|
||||
|
||||
/**
|
||||
* @param pageForm
|
||||
* @return org.nutz.dao.sql.Sql
|
||||
* @author zhf
|
||||
* @description 获取首页福利名单
|
||||
* @date 2021/1/28 17:01
|
||||
*/
|
||||
Sql getSql(BenefitUserPageForm pageForm);
|
||||
|
||||
/**
|
||||
* @param pageForm
|
||||
* @return org.nutz.dao.sql.Sql
|
||||
* @author zhf
|
||||
* @description 获取未在福利名单里面的人
|
||||
* @date 2021/1/28 17:01
|
||||
*/
|
||||
Pagination getSelectNotBenefitUser(BenefitUserPageForm pageForm);
|
||||
|
||||
/**
|
||||
* @param ids
|
||||
* @param projectId
|
||||
* @author zhf
|
||||
* @description 把选择的人添加到当前福利名单中
|
||||
* @date 2021/1/28 17:01
|
||||
*/
|
||||
void doBenefitUser(List<String> ids, String projectId);
|
||||
|
||||
|
||||
/**
|
||||
* @param file
|
||||
* @param businessId
|
||||
* @param isFlag
|
||||
* @return com.budwk.app.base.result.Result
|
||||
* @author zhf
|
||||
* @description 导入福利名单
|
||||
*/
|
||||
Result doImportBenefitUser(TempFile file, @Valid String businessId, @Valid Boolean isFlag);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitAddress;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitAddressService;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitAddressServiceImpl
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/13 15:44
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitAddressServiceImpl extends BaseServiceImpl<BenefitAddress> implements BenefitAddressService {
|
||||
public BenefitAddressServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsCart;
|
||||
import com.budwk.app.zhgh.benefit.param.vo.BenefitGoodsCartVo;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsCartService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsSpecificationsService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsCartServiceImpl
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/17 16:35
|
||||
*/
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitGoodsCartServiceImpl extends BaseServiceImpl<BenefitGoodsCart> implements BenefitGoodsCartService {
|
||||
public BenefitGoodsCartServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsService benefitGoodsService;
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsSpecificationsService benefitGoodsSpecificationsService;
|
||||
|
||||
@Override
|
||||
public List<BenefitGoodsCartVo> getCartList() {
|
||||
//获取当前用户的购物车
|
||||
List<BenefitGoodsCart> cartList = query(Cnd.NEW().and(BenefitGoodsCart::getUserId, "=", SecurityUtil.getUserId()));
|
||||
List<BenefitGoodsCartVo> cartVoList = cartList.stream().map(item -> {
|
||||
BenefitGoodsCartVo cartVo = new BenefitGoodsCartVo();
|
||||
cartVo.setId(item.getId());
|
||||
cartVo.setGoodsId(item.getGoodsId());
|
||||
cartVo.setCount(item.getCount());
|
||||
cartVo.setChecked(item.isChecked());
|
||||
cartVo.setUserId(item.getUserId());
|
||||
cartVo.setSpecificationsId(item.getSpecificationsId());
|
||||
cartVo.setBenefitGoods(benefitGoodsService.fetch(item.getGoodsId()));
|
||||
if (item.getSpecificationsId()!=null){
|
||||
cartVo.setBenefitGoodsSpecifications(benefitGoodsSpecificationsService.fetch(item.getSpecificationsId()));
|
||||
}
|
||||
return cartVo;
|
||||
}).collect(Collectors.toList());
|
||||
return cartVoList;
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNode;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsCategory;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsCategoryService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsCategoryServiceImpl
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/12 11:29
|
||||
*/
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitGoodsCategoryServiceImpl extends BaseServiceImpl<BenefitGoodsCategory> implements BenefitGoodsCategoryService {
|
||||
|
||||
public BenefitGoodsCategoryServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsService benefitGoodsService;
|
||||
|
||||
@Override
|
||||
public List<Tree<String>> getCategoryTree() {
|
||||
List<BenefitGoodsCategory> list = this.query(Cnd.NEW().asc(BenefitGoodsCategory::getSort));
|
||||
List<TreeNode<String>> treeNodes = new ArrayList<>(list.stream().map(category -> new TreeNode<>(category.getId(), category.getParentId(), category.getName(), 0)).toList());
|
||||
|
||||
return TreeUtil.build(treeNodes, "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BenefitGoodsCategory> getGoodsListByType(String id) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (id!=null&&!"".equals(id)){
|
||||
cnd.and(BenefitGoodsCategory::getId,"=",id).or(BenefitGoodsCategory::getParentId,"=",id);
|
||||
}else{
|
||||
cnd.and(BenefitGoodsCategory::getParentId,"=","");
|
||||
}
|
||||
cnd.asc(BenefitGoodsCategory::getSort);
|
||||
List<BenefitGoodsCategory> list = this.query(cnd);
|
||||
List<String> categoryIdList = list.stream().map(BenefitGoodsCategory::getId).collect(Collectors.toList());
|
||||
// 获取当前类型下的商品
|
||||
List<BenefitGoods> goodsList = benefitGoodsService.query(Cnd.NEW()
|
||||
.and(BenefitGoods::getGoodsCategoryOneLevelId, "in", categoryIdList)
|
||||
.and(BenefitGoods::getStatus,"=",1)
|
||||
.and(BenefitGoods::getGoodsProvideMode,"=","GOODS_PROVIDE_MODE_SHOPPING")
|
||||
);
|
||||
|
||||
// 使用 groupingBy 将商品分配到项目
|
||||
Map<String, List<BenefitGoods>> goodsMap = goodsList.stream()
|
||||
.collect(Collectors.groupingBy(BenefitGoods::getGoodsCategoryOneLevelId));
|
||||
|
||||
// 将商品分配到对应的项目
|
||||
list.forEach(category -> category.setGoodsList(goodsMap.getOrDefault(category.getId(), List.of())));
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsOrder;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitGoodsOrderServicePageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsOrderService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsOrderServiceImpl
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/17 15:03
|
||||
*/
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitGoodsOrderServiceImpl extends BaseServiceImpl<BenefitGoodsOrder> implements BenefitGoodsOrderService {
|
||||
public BenefitGoodsOrderServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSql(BenefitGoodsOrderServicePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bo.id,
|
||||
bo.goodsId,
|
||||
bo.specificationsId,
|
||||
bo.receiveAddress,
|
||||
bo.orderTime,
|
||||
bo.createdBy,
|
||||
bg.name goodsName,
|
||||
bgs.name specName,
|
||||
bgs.imgUrl,
|
||||
bgs.points,
|
||||
bo.userAddress,
|
||||
bg.simpleDesc
|
||||
FROM
|
||||
benefit_goods_order bo
|
||||
LEFT JOIN benefit_goods bg ON bg.id=bo.goodsId
|
||||
LEFT JOIN benefit_goods_specifications bgs ON bgs.id=bo.specificationsId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and(Cnd.likeEX("bg.name",pageForm.getGoodsName()));
|
||||
cnd.and(Cnd.likeEX("bgs.name",pageForm.getSpecName()));
|
||||
/* cnd.andEX("bg.name", "like", '%'+pageForm.getGoodsName()+'%');
|
||||
cnd.andEX("bgs.name", "like", '%'+pageForm.getSpecName()+'%');*/
|
||||
cnd.andEX("bo.orderTime", "=", pageForm.getOrderTime());
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsSpecifications;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitGoodsPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsSpecificationsService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/13 上午10:34
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitGoodsServiceImpl extends BaseServiceImpl<BenefitGoods> implements BenefitGoodsService {
|
||||
public BenefitGoodsServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Inject
|
||||
private BenefitGoodsSpecificationsService benefitGoodsSpecificationsService;
|
||||
@Override
|
||||
public void submit(BenefitGoods benefitGoods) {
|
||||
if (StrUtil.isNotBlank(benefitGoods.getId())) {
|
||||
updateWith(benefitGoods, "benefitGoodsSpecificationsList");
|
||||
benefitGoods.getBenefitGoodsSpecificationsList().forEach(spec -> {
|
||||
spec.setGoodsId(benefitGoods.getId());
|
||||
});
|
||||
benefitGoodsSpecificationsService.insertWith(benefitGoods.getBenefitGoodsSpecificationsList(), "id");
|
||||
} else {
|
||||
insertWith(benefitGoods, "benefitGoodsSpecificationsList");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSql(BenefitGoodsPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bg.*,
|
||||
bgcOne.`name` goodsCategoryOneLevelName,
|
||||
bgcTwo.`name` goodsCategoryTwoLevelName
|
||||
FROM
|
||||
`benefit_goods` bg
|
||||
LEFT JOIN benefit_goods_category bgcOne ON bg.goodsCategoryOneLevelId = bgcOne.id
|
||||
LEFT JOIN benefit_goods_category bgcTwo ON bg.goodsCategoryTwoLevelId = bgcTwo.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("bg.benefitId", "=", pageForm.getBenefitId());
|
||||
cnd.andEX("bg.goodsCategoryOneLevelId", "=", pageForm.getGoodsCategoryOneLevelId());
|
||||
cnd.andEX("bg.goodsCategoryTwoLevelId", "=", pageForm.getGoodsCategoryTwoLevelId());
|
||||
cnd.asc("bg.goodsSort");
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NutMap findOne(String id) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bg.*,
|
||||
bgcOne.`name` goodsCategoryOneLevelName,
|
||||
bgcTwo.`name` goodsCategoryTwoLevelName
|
||||
FROM
|
||||
`benefit_goods` bg
|
||||
LEFT JOIN benefit_goods_category bgcOne ON bg.goodsCategoryOneLevelId = bgcOne.id
|
||||
LEFT JOIN benefit_goods_category bgcTwo ON bg.goodsCategoryTwoLevelId = bgcTwo.id
|
||||
WHERE bg.id=@id
|
||||
""").setParam("id", id);
|
||||
NutMap nutMap = (NutMap) dao().execute(sql.setCallback(Sqls.callback.map())).getResult();
|
||||
List<BenefitGoodsSpecifications> specificationsList = dao().query(BenefitGoodsSpecifications.class,
|
||||
Cnd.where("goodsId", "=", id).asc("specificationsSort"));
|
||||
nutMap.put("benefitGoodsSpecificationsList", specificationsList);
|
||||
return nutMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NutMap findOneBySpecId(String id) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bgs.*,
|
||||
bg.name goodsName,
|
||||
bg.simpleDesc
|
||||
FROM
|
||||
benefit_goods_specifications bgs
|
||||
LEFT JOIN benefit_goods bg on bgs.goodsId=bg.id
|
||||
WHERE bgs.id=@id
|
||||
""").setParam("id", id);
|
||||
NutMap nutMap = (NutMap) dao().execute(sql.setCallback(Sqls.callback.map())).getResult();
|
||||
return nutMap;
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoodsSpecifications;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsSpecificationsService;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitGoodsSpecificationsServiceImpl
|
||||
* @Description TODO
|
||||
* @Author hpf
|
||||
* @Date 2025/2/17 18:01
|
||||
*/
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitGoodsSpecificationsServiceImpl extends BaseServiceImpl<BenefitGoodsSpecifications> implements BenefitGoodsSpecificationsService {
|
||||
public BenefitGoodsSpecificationsServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,234 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitProject;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUserSelection;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitProjectPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitGoodsService;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitProjectService;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitProjectServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/12 上午11:15
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitProjectServiceImpl extends BaseServiceImpl<BenefitProject> implements BenefitProjectService {
|
||||
@Inject
|
||||
private BenefitGoodsService benefitGoodsService;
|
||||
|
||||
public BenefitProjectServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSql(BenefitProjectPageForm benefitProjectPageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bp.*,
|
||||
( SELECT COUNT(*) FROM benefit_user WHERE benefitId = bp.id ) benefitUserNum
|
||||
FROM
|
||||
`benefit_project` bp
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("year", "=", benefitProjectPageForm.getYear());
|
||||
cnd.andEX("id", "=", benefitProjectPageForm.getBenefitId());
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BenefitProject> getBenefitList(Integer year) {
|
||||
List<BenefitProject> list = query(Cnd.NEW().andEX("year", "=", year));
|
||||
list.forEach(l -> {
|
||||
fetchLinks(l, "benefitGoodsList");
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination getGoodsTableData(BenefitProjectPageForm benefitProjectPageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bg.*,
|
||||
bgcTwo.`name` goodsCategoryTwoLevelName,
|
||||
bgcOne.`name` goodsCategoryOneLevelName
|
||||
FROM
|
||||
`benefit_goods` bg
|
||||
LEFT JOIN benefit_goods_category bgcOne ON bgcOne.id = bg.goodsCategoryOneLevelId
|
||||
LEFT JOIN benefit_goods_category bgcTwo ON bgcTwo.id = bg.goodsCategoryTwoLevelId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (benefitProjectPageForm.getIsEdit()) {
|
||||
cnd.and("bg.benefitId", "is", null);
|
||||
cnd.orEX("bg.benefitId", "=", benefitProjectPageForm.getBenefitId());
|
||||
} else {
|
||||
cnd.and("bg.benefitId", "=", benefitProjectPageForm.getBenefitId());
|
||||
}
|
||||
|
||||
if (Lang.isNotEmpty(benefitProjectPageForm.getGoodsCategoryIds())) {
|
||||
if (benefitProjectPageForm.getGoodsCategoryIds().size() == 1) {
|
||||
cnd.andEX("bg.goodsCategoryOneLevelId", "=", benefitProjectPageForm.getGoodsCategoryIds().get(0));
|
||||
}
|
||||
if (benefitProjectPageForm.getGoodsCategoryIds().size() == 2) {
|
||||
cnd.andEX("bg.goodsCategoryTwoLevelId", "=", benefitProjectPageForm.getGoodsCategoryIds().get(1));
|
||||
}
|
||||
}
|
||||
cnd.asc("bg.goodsSort").desc("benefitId");
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = listPageMap(benefitProjectPageForm.getPageNumber(), benefitProjectPageForm.getPageSize(), sql);
|
||||
return pagination;
|
||||
}
|
||||
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@Override
|
||||
public void submit(BenefitProject benefitProject, List<String> benefitGoodsIds) {
|
||||
benefitProject.setYear(DateUtil.thisYear());
|
||||
insertOrUpdate(benefitProject);
|
||||
if (Lang.isNotEmpty(benefitGoodsIds)) {
|
||||
dao().update(BenefitGoods.class,
|
||||
Chain.make("benefitId", null),
|
||||
Cnd.where("benefitId", "=", benefitProject.getId()));
|
||||
dao().update(BenefitGoods.class,
|
||||
Chain.make("benefitId", benefitProject.getId()),
|
||||
Cnd.where("id", "in", benefitGoodsIds));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteBenefit(String id) {
|
||||
delete(id);
|
||||
dao().update(BenefitGoods.class,
|
||||
Chain.make("benefitId", null),
|
||||
Cnd.where("benefitId", "=", id));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createBenefitUser(String benefitId) {
|
||||
List<View_user> userList = dao().query(View_user.class, Cnd.where("welfareMember", "=", 1));
|
||||
addBenefitUser(userList, benefitId);
|
||||
}
|
||||
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@Override
|
||||
public void renewBenefitUser(String benefitId, Boolean isRenew) {
|
||||
if (!isRenew) {
|
||||
//如果是重置就直接删除福利名单
|
||||
dao().clear(BenefitUser.class, Cnd.where("benefitId", "=", benefitId));
|
||||
dao().clear(BenefitUserSelection.class, Cnd.where("benefitId", "=", benefitId));
|
||||
}
|
||||
//找到不是福利会员的,并且在福利名单中的删除
|
||||
List<View_user> notUserList = dao().query(View_user.class,
|
||||
Cnd.where("welfareMember", "=", 0)
|
||||
.or("welfareMember", "is", null));
|
||||
List<String> ids = notUserList.stream().map(View_user::getId).toList();
|
||||
dao().clear(BenefitUser.class, Cnd.where(BenefitUser::getBenefitId, "=", benefitId).and(BenefitUser::getUserId, "in", ids));
|
||||
dao().clear(BenefitUserSelection.class, Cnd.where(BenefitUserSelection::getBenefitId, "=", benefitId).and(BenefitUserSelection::getSelectUserId, "in", ids));
|
||||
|
||||
//找出在福利名单中的
|
||||
List<String> benefitUserIds = dao().query(BenefitUser.class,
|
||||
Cnd.where(BenefitUser::getBenefitId, "=", benefitId)).stream().map(BenefitUser::getUserId).toList();
|
||||
//找出是福利会员,不在 BenefitUser 中的 userId,并且排除本身就在福利名单中的人
|
||||
List<View_user> userList = dao().query(View_user.class,
|
||||
Cnd.where("welfareMember", "=", 1)
|
||||
.andEX("id", "not in", benefitUserIds));
|
||||
addBenefitUser(userList, benefitId);
|
||||
}
|
||||
|
||||
private void addBenefitUser(List<View_user> userList, String benefitId) {
|
||||
List<BenefitUser> benefitUserList = new ArrayList<>();
|
||||
BenefitProject project = fetch(benefitId);
|
||||
userList.forEach(v -> {
|
||||
BenefitUser benefitUser = new BenefitUser();
|
||||
benefitUser.setBenefitId(benefitId);
|
||||
benefitUser.setUserId(v.getId());
|
||||
benefitUser.setUserName(v.getUsername());
|
||||
benefitUser.setLoginName(v.getLoginname());
|
||||
benefitUser.setUnionId(v.getUnionId());
|
||||
benefitUser.setUnitId(v.getUnitId());
|
||||
benefitUser.setPersonType(v.getPersonType());
|
||||
benefitUser.setUserState(v.getUserState());
|
||||
if (project.getProvideMode().equals("BENEFIT_PROVIDE_MODE_ONE") && !project.getSignMode().equals("BENEFIT_SIGN_MODE_TWO")) {
|
||||
//如果发放模式为统一发放并且不需要签字的话,默认设置为已签收
|
||||
benefitUser.setIsChoice(true);
|
||||
}
|
||||
benefitUserList.add(benefitUser);
|
||||
});
|
||||
insert(benefitUserList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BenefitProject findOne(String id) {
|
||||
BenefitProject benefitProject = fetch(id);
|
||||
fetchLinks(benefitProject, "benefitGoodsList", Cnd.NEW().asc("goodsSort"));
|
||||
fetchLinks(benefitProject.getBenefitGoodsList(), "benefitGoodsSpecificationsList", Cnd.NEW().asc("specificationsSort"));
|
||||
|
||||
List<BenefitUserSelection> selectionList = dao().query(BenefitUserSelection.class, Cnd.where(BenefitUserSelection::getBenefitId, "=", id));
|
||||
benefitProject.getBenefitGoodsList().forEach(bg -> {
|
||||
int sum = selectionList.stream().filter(x -> x.getGoodsId().equals(bg.getId())).mapToInt(BenefitUserSelection::getSelectNum).sum();
|
||||
bg.setChoiceNum(sum);
|
||||
});
|
||||
List<BenefitGoods> goodsList = benefitProject.getBenefitGoodsList().stream().sorted(Comparator.comparingInt(BenefitGoods::getChoiceNum).reversed()).toList();
|
||||
benefitProject.setBenefitGoodsList(goodsList);
|
||||
return benefitProject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BenefitProject> getProjectGoodsList() {
|
||||
// 获取当前日期
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
|
||||
// 定义日期格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
// 格式化日期
|
||||
String formattedDate = currentDate.format(formatter);
|
||||
|
||||
//获取当前时间段的项目
|
||||
List<BenefitProject> projectList = this.query(Cnd.NEW()
|
||||
.and(BenefitProject::getStartChoiceTime, "<=", formattedDate)
|
||||
.and(BenefitProject::getEndChoiceTime, ">=", formattedDate)
|
||||
.and(BenefitProject::getIsUnseal, "=", true).desc(BenefitProject::getStartChoiceTime));
|
||||
|
||||
// 获取当前项目下的商品
|
||||
List<BenefitGoods> goodsList = benefitGoodsService.query(Cnd.NEW()
|
||||
.and(BenefitGoods::getBenefitId, "in", projectList.stream().map(BenefitProject::getId).collect(Collectors.toList()))
|
||||
.and(BenefitGoods::getStatus, "=", 1));
|
||||
|
||||
// 使用 groupingBy 将商品分配到项目
|
||||
Map<String, List<BenefitGoods>> goodsMap = goodsList.stream()
|
||||
.collect(Collectors.groupingBy(BenefitGoods::getBenefitId));
|
||||
|
||||
// 将商品分配到对应的项目
|
||||
projectList.forEach(project -> project.setBenefitGoodsList(goodsMap.getOrDefault(project.getId(), List.of())));
|
||||
|
||||
return projectList;
|
||||
}
|
||||
}
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitGoods;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUserSelection;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitStatisticsService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitStatisticsServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/21 下午4:00
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitStatisticsServiceImpl extends BaseServiceImpl<BenefitUserSelection> implements BenefitStatisticsService {
|
||||
public BenefitStatisticsServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NutMap pageData(String benefitId, String unionId) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_WELFARE_ADMIN.name())) {
|
||||
cnd.and("id", "=", SecurityUtil.getUnionId());
|
||||
}
|
||||
cnd.andEX("id", "=", unionId);
|
||||
cnd.asc("unionCode");
|
||||
Sql sqlUnion = Sqls.create("select * from sys_union $condition");
|
||||
sqlUnion.setCondition(cnd);
|
||||
List<NutMap> sysUnions = listMap(sqlUnion);
|
||||
|
||||
Sql sqlViewList = Sqls.create("SELECT * FROM benefit_user where benefitId=@benefitId and unionId is not null").setParam("benefitId", benefitId);
|
||||
List<NutMap> viewMap = listMap(sqlViewList);
|
||||
|
||||
//循环每个分工会
|
||||
sysUnions.forEach(v -> {
|
||||
//找出这个分工会的人数
|
||||
List<NutMap> collect = viewMap.stream().filter(view -> view.getString("unionId").equals(v.getString("id"))).toList();
|
||||
v.addv("teacherSum", collect.size());
|
||||
});
|
||||
|
||||
//获取商品列表
|
||||
List<BenefitGoods> goodsList = dao().query(BenefitGoods.class, Cnd.where("benefitId", "=", benefitId));
|
||||
goodsList.forEach(g -> {
|
||||
dao().fetchLinks(g, "benefitGoodsSpecificationsList");
|
||||
});
|
||||
//所有选择的人
|
||||
List<NutMap> userSelectionList = getUserSelectionByBenefitId(benefitId);
|
||||
|
||||
for (NutMap union : sysUnions) {
|
||||
|
||||
//每个分工会选择的人数
|
||||
List<NutMap> unionUserSelectionList = userSelectionList.stream().filter(x -> x.getString("unionId").equals(union.getString("id"))).toList();
|
||||
|
||||
goodsList.forEach(g -> {
|
||||
IntStream selectNum = unionUserSelectionList.stream().filter(sel -> sel.getString("goodsId").equals(g.getId())).mapToInt(x -> x.getInt("selectNum"));
|
||||
union.put(g.getName(), selectNum.sum());
|
||||
if (ObjectUtil.isNotEmpty(g.getBenefitGoodsSpecificationsList())) {
|
||||
g.getBenefitGoodsSpecificationsList().forEach(spec -> {
|
||||
IntStream specificationsSelectNum = unionUserSelectionList.stream().filter(sel -> ObjectUtil.isNotEmpty(sel.getString("specificationsId")) && sel.getString("specificationsId").equals(spec.getId())).mapToInt(x -> x.getInt("selectNum"));
|
||||
union.put(spec.getName(), specificationsSelectNum.sum());
|
||||
});
|
||||
}
|
||||
});
|
||||
union.put("selectTotalCount", unionUserSelectionList.stream().map(u -> u.getString("selectUserId")).distinct().count());
|
||||
union.put("notSelectTotalCount", union.getInt("teacherSum") - union.getInt("selectTotalCount"));
|
||||
|
||||
}
|
||||
|
||||
//表格列数据
|
||||
List<NutMap> labelList = new ArrayList<>();
|
||||
labelList.add(NutMap.NEW().addv("label", "本次福利会员人数").addv("prop", "teacherSum"));
|
||||
goodsList.forEach(v -> {
|
||||
if (!v.getBenefitGoodsSpecificationsList().isEmpty()) {
|
||||
labelList.add(NutMap.NEW().addv("label", v.getName()).addv("prop", v.getName()).addv("isHasChildren", true).addv("benefitGoodsSpecificationsList", v.getBenefitGoodsSpecificationsList()));
|
||||
} else {
|
||||
labelList.add(NutMap.NEW().addv("label", v.getName()).addv("prop", v.getName()).addv("isHasChildren", false));
|
||||
}
|
||||
});
|
||||
labelList.add(NutMap.NEW().addv("label", "参加人数").addv("prop", "selectTotalCount"));
|
||||
labelList.add(NutMap.NEW().addv("label", "未选人数").addv("prop", "notSelectTotalCount"));
|
||||
return NutMap.NEW().addv("tableList", sysUnions).addv("tableColumn", labelList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NutMap> getUserSelectionByBenefitId(String benefitId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bus.*,
|
||||
bu.unionId
|
||||
FROM
|
||||
benefit_user_selection bus
|
||||
LEFT JOIN benefit_user bu ON bus.selectUserId = bu.userId
|
||||
AND bu.benefitId = bus.benefitId
|
||||
WHERE
|
||||
bus.benefitId = @benefitId AND bu.unionId IS NOT NULL
|
||||
""").setParam("benefitId", benefitId);
|
||||
return listMap(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openExportSummary(String benefitId, String unionId, HttpServletResponse response) {
|
||||
|
||||
NutMap dataMap = pageData(benefitId, unionId);
|
||||
List<ExcelExportEntity> entityList = new ArrayList<>();
|
||||
List<NutMap> labelList = dataMap.getAsList("tableColumn", NutMap.class);
|
||||
List<NutMap> list = dataMap.getAsList("tableList", NutMap.class);
|
||||
|
||||
NutMap map = NutMap.NEW().setv("name", "合计");
|
||||
labelList.forEach(o -> {
|
||||
List<Integer> numList = list.stream().map(v -> v.getInt(o.getString("prop"))).toList();
|
||||
int sum = numList.stream().mapToInt(Integer::intValue).sum();
|
||||
map.setv(o.getString("prop"), sum);
|
||||
});
|
||||
list.add(map);
|
||||
|
||||
labelList.add(0, NutMap.NEW().addv("label", "所属工会").addv("prop", "name"));
|
||||
labelList.forEach(v -> {
|
||||
entityList.add(new ExcelExportEntity(v.getString("label"), v.getString("prop"), 20));
|
||||
});
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("汇总表", ""), entityList, list);
|
||||
CommonDownloadUtil.download("汇总表.xlsx", workbook, response);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doSelectByAdmin(String benefitId, String benefitGoodsList) {
|
||||
List<BenefitUser> benefitUserList = dao().query(BenefitUser.class,
|
||||
Cnd.where(BenefitUser::getBenefitId, "=", benefitId).and(BenefitUser::getIsChoice, "=", 0));
|
||||
List<String> userIds = benefitUserList.stream().map(BenefitUser::getUserId).toList();
|
||||
|
||||
List<NutMap> optionList = Json.fromJsonAsList(NutMap.class, benefitGoodsList);
|
||||
List<BenefitUserSelection> insertList = new ArrayList<>();
|
||||
userIds.forEach(id -> {
|
||||
List<BenefitUserSelection> userSelections = optionList.stream().filter(v -> v.getInt("selectNum") > 0).map(v -> {
|
||||
BenefitUserSelection selection = new BenefitUserSelection();
|
||||
selection.setSelectTime(new Date());
|
||||
selection.setBenefitId(benefitId);
|
||||
selection.setSelectUserId(id);
|
||||
selection.setGoodsId(v.getString("id"));
|
||||
selection.setReceiveAddress(null);
|
||||
selection.setSpecificationsId(v.getString("specificationsId"));
|
||||
selection.setShopAddress(v.getString("shopAddress"));
|
||||
selection.setSelectNum(v.getInt("selectNum"));
|
||||
return selection;
|
||||
}).toList();
|
||||
insertList.addAll(userSelections);
|
||||
});
|
||||
dao().insert(insertList);
|
||||
dao().update(BenefitUser.class,
|
||||
Chain.make("isChoice", true),
|
||||
Cnd.where(BenefitUser::getBenefitId, "=", benefitId)
|
||||
.and(BenefitUser::getUserId, "in", userIds));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitUserPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserSelectionListService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Strings;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserSelectionListServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/20 下午7:33
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitUserSelectionListServiceImpl extends BaseServiceImpl<BenefitUser> implements BenefitUserSelectionListService {
|
||||
|
||||
public BenefitUserSelectionListServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSql(BenefitUserPageForm pageForm) {
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bu.id,
|
||||
bu.userId,
|
||||
bu.personType,
|
||||
bu.userState,
|
||||
bu.userName,
|
||||
bu.loginName,
|
||||
bu.benefitId,
|
||||
bu.isChoice,
|
||||
us.sex,
|
||||
it.`name` unitName,
|
||||
un.`name` unionName,
|
||||
bp.`year`,
|
||||
bp.`name` benefitName,
|
||||
bp.startChoiceTime,
|
||||
bp.endChoiceTime,
|
||||
bp.provideMode,
|
||||
bp.signMode,
|
||||
GROUP_CONCAT( DISTINCT bg.`name`, 'x', bus.selectNum ) AS giftList,
|
||||
GROUP_CONCAT(DISTINCT bg.`name`, ':', COALESCE( bus.shopAddress,bus.receiveAddress)) AS receiveAddressList,
|
||||
COALESCE( bu.userSign,bus.userSign) userSign,
|
||||
bp.giftName
|
||||
FROM
|
||||
benefit_user bu
|
||||
LEFT JOIN sys_user us ON us.id = bu.userId
|
||||
LEFT JOIN sys_unit it ON it.id = bu.unitId
|
||||
LEFT JOIN sys_union un ON un.id = bu.unionId
|
||||
LEFT JOIN benefit_project bp ON bp.id = bu.benefitId
|
||||
LEFT JOIN benefit_user_selection bus ON bu.benefitId = bus.benefitId
|
||||
AND bus.selectUserId = bu.userId
|
||||
LEFT JOIN benefit_goods bg ON bg.id = bus.goodsId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("bu.benefitId", "=", pageForm.getBenefitId());
|
||||
cnd.andEX("bu.unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("bu.unitId", "in", pageForm.getUnitIds());
|
||||
cnd.andEX("bu.personType", "in", pageForm.getPersonTypes());
|
||||
cnd.andEX("bu.userState", "in", pageForm.getUserStates());
|
||||
cnd.and("bu.benefitId", "=", pageForm.getBenefitId());
|
||||
cnd.andEX("bus.goodsId", "=", pageForm.getGoodsId());
|
||||
cnd.andEX("bu.isChoice", "=", ObjectUtil.isNull(pageForm.getIsChoice()) ? null : pageForm.getIsChoice());
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword()) && StrUtil.isNotBlank(pageForm.getSearchName())) {
|
||||
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
|
||||
}
|
||||
cnd.groupBy("bu.id");
|
||||
if (Strings.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
} else {
|
||||
cnd.asc("it.unitcode").asc("bu.loginName");
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getExportSql(BenefitUserPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bu.loginName,
|
||||
bu.userName,
|
||||
bu.personType,
|
||||
bu.userState,
|
||||
us.sex,
|
||||
it.`name` unitName,
|
||||
un.`name` unionName,
|
||||
bp.provideMode,
|
||||
bp.signMode,
|
||||
bus.selectNum,
|
||||
COALESCE ( bus.shopAddress, bus.receiveAddress ) receiveAddress,
|
||||
COALESCE ( bp.giftName, bg.`name` ) giftName,
|
||||
bgs.`name` specificationsName
|
||||
FROM
|
||||
benefit_user bu
|
||||
LEFT JOIN sys_user us ON us.id = bu.userId
|
||||
LEFT JOIN sys_unit it ON it.id = bu.unitId
|
||||
LEFT JOIN sys_union un ON un.id = bu.unionId
|
||||
LEFT JOIN benefit_project bp ON bp.id = bu.benefitId
|
||||
LEFT JOIN benefit_user_selection bus ON bu.benefitId = bus.benefitId
|
||||
AND bus.selectUserId = bu.userId
|
||||
LEFT JOIN benefit_goods_specifications bgs ON bgs.id = bus.specificationsId
|
||||
LEFT JOIN benefit_goods bg ON bg.id = bus.goodsId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("bu.benefitId", "=", pageForm.getBenefitId());
|
||||
cnd.andEX("bu.unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("bu.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("bu.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("bu.userState", "=", pageForm.getUserState());
|
||||
cnd.and("bu.benefitId", "=", pageForm.getBenefitId());
|
||||
cnd.andEX("bus.goodsId", "=", pageForm.getGoodsId());
|
||||
cnd.andEX("bu.isChoice", "=", ObjectUtil.isNull(pageForm.getIsChoice()) ? null : pageForm.getIsChoice());
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword()) && StrUtil.isNotBlank(pageForm.getSearchName())) {
|
||||
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
|
||||
}
|
||||
cnd.asc("it.unitcode").asc("bu.loginName");
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserSelectionMineService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserSelectionMineServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/20 下午4:45
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitUserSelectionMineServiceImpl extends BaseServiceImpl<BenefitUser> implements BenefitUserSelectionMineService {
|
||||
public BenefitUserSelectionMineServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination pageData(PageForm pageForm, String benefitId, Integer year) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bu.*,
|
||||
bp.`year`,
|
||||
bp.`name` benefitName,
|
||||
bp.startChoiceTime,
|
||||
bp.endChoiceTime,
|
||||
bp.provideMode,
|
||||
bp.signMode,
|
||||
bp.cover,
|
||||
GROUP_CONCAT( DISTINCT bg.`name`, 'x', bus.selectNum ) AS giftList,
|
||||
bp.giftName
|
||||
FROM
|
||||
benefit_user bu
|
||||
LEFT JOIN benefit_project bp ON bp.id = bu.benefitId
|
||||
LEFT JOIN benefit_user_selection bus ON bu.benefitId = bus.benefitId
|
||||
AND bus.selectUserId = @selectUserId
|
||||
LEFT JOIN benefit_goods bg ON bg.id = bus.goodsId
|
||||
$condition
|
||||
""").setParam("selectUserId", SecurityUtil.getUserId());
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("bu.benefitId", "=", benefitId);
|
||||
cnd.and("bp.isUnseal", "=", 1);
|
||||
cnd.and("bu.userId", "=", SecurityUtil.getUserId());
|
||||
cnd.andEX("bp.year", "=", year);
|
||||
cnd.groupBy("bu.id");
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return pagination;
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUserSelection;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserSelectionService;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserSelectionServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/18 上午9:46
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitUserSelectionServiceImpl extends BaseServiceImpl<BenefitUserSelection> implements BenefitUserSelectionService {
|
||||
public BenefitUserSelectionServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void submit(BenefitUserSelection[] benefitUserSelection, String benefitId, String userId) {
|
||||
clear(Cnd.where("benefitId", "=", benefitId)
|
||||
.and("selectUserId", "=", userId));
|
||||
for (BenefitUserSelection selection : benefitUserSelection) {
|
||||
selection.setSelectUserId(userId);
|
||||
selection.setSelectTime(new Date());
|
||||
}
|
||||
insert(benefitUserSelection);
|
||||
dao().update(BenefitUser.class,
|
||||
Chain.make("isChoice", true),
|
||||
Cnd.where("benefitId", "=", benefitId)
|
||||
.and("userId", "=", userId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BenefitUserSelection> selectSelectionBenefit(String benefitId, String userId) {
|
||||
if (ObjectUtil.isNull(userId)) {
|
||||
userId = SecurityUtil.getUserId();
|
||||
}
|
||||
return query(Cnd.where("benefitId", "=", benefitId).andEX("selectUserId", "=", userId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
package com.budwk.app.zhgh.benefit.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.easyexcel.EasyExcelUtil;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.zhgh.benefit.mode.BenefitUserTemp;
|
||||
import com.budwk.app.zhgh.benefit.models.BenefitUser;
|
||||
import com.budwk.app.zhgh.benefit.param.BenefitUserPageForm;
|
||||
import com.budwk.app.zhgh.benefit.service.BenefitUserService;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName BenefitUserServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/2/12 上午11:16
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class BenefitUserServiceImpl extends BaseServiceImpl<BenefitUser> implements BenefitUserService {
|
||||
public BenefitUserServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSql(BenefitUserPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
bu.*,
|
||||
us.sex,
|
||||
us.mobile,
|
||||
it.`name` unitName,
|
||||
un.`name` unionName
|
||||
FROM
|
||||
`benefit_user` bu
|
||||
LEFT JOIN sys_user us ON us.id = bu.userId
|
||||
LEFT JOIN sys_unit it ON it.id = bu.unitId
|
||||
LEFT JOIN sys_union un ON un.id = bu.unionId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("bu.unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("bu.unitId", "in", pageForm.getUnitIds());
|
||||
cnd.andEX("bu.personType", "in", pageForm.getPersonTypes());
|
||||
cnd.andEX("bu.userState", "in", pageForm.getUserStates());
|
||||
cnd.and("bu.benefitId", "=", pageForm.getBenefitId());
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword()) && StrUtil.isNotBlank(pageForm.getSearchName())) {
|
||||
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
|
||||
}
|
||||
cnd.asc("it.unitcode");
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination getSelectNotBenefitUser(BenefitUserPageForm pageForm) {
|
||||
List<BenefitUser> benefitUserList = query(Cnd.where("benefitId", "=", pageForm.getBenefitId()));
|
||||
List<String> userIds = benefitUserList.stream().map(BenefitUser::getUserId).collect(Collectors.toList());
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
loginname,
|
||||
username,
|
||||
userState,
|
||||
personType,
|
||||
unitName,
|
||||
unionName,
|
||||
unitcode
|
||||
FROM
|
||||
`vw_user`
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("id", "not in", userIds);
|
||||
cnd.and("unionCode", "is not", null);
|
||||
cnd.andEX("unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("userState", "=", pageForm.getUserState());
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword()) && StrUtil.isNotBlank(pageForm.getSearchName())) {
|
||||
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
|
||||
}
|
||||
cnd.asc("unitcode");
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void doBenefitUser(List<String> ids, String benefitId) {
|
||||
List<View_user> userList = dao().query(View_user.class, Cnd.NEW().and("id", "in", ids));
|
||||
List<BenefitUser> welfareLists = userList.stream().map(v -> {
|
||||
BenefitUser benefitUser = new BenefitUser();
|
||||
benefitUser.setBenefitId(benefitId);
|
||||
benefitUser.setUserId(v.getId());
|
||||
benefitUser.setUserName(v.getUsername());
|
||||
benefitUser.setLoginName(v.getLoginname());
|
||||
benefitUser.setUnionId(v.getUnionId());
|
||||
benefitUser.setUnitId(v.getUnitId());
|
||||
benefitUser.setPersonType(v.getPersonType());
|
||||
benefitUser.setUserState(v.getUserState());
|
||||
return benefitUser;
|
||||
}).collect(Collectors.toList());
|
||||
insert(welfareLists);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result doImportBenefitUser(TempFile file, String businessId, Boolean isFlag) {
|
||||
|
||||
List<T> ts = EasyExcelUtil.syncReadModel(file.getFile(), BenefitUserTemp.class, 0, 1);
|
||||
List<BenefitUserTemp> mdList = JSONUtil.parseArray(JSONUtil.toJsonStr(ts)).toList(BenefitUserTemp.class);
|
||||
List<String> loginNames = mdList.stream().map(BenefitUserTemp::getLoginName).collect(Collectors.toList());
|
||||
List<View_user> sysUsers = dao().query(View_user.class, Cnd.where("loginname", "in", loginNames));
|
||||
|
||||
|
||||
if (isFlag) {
|
||||
clear(Cnd.where("benefitId", "=", businessId));
|
||||
}
|
||||
//查询这个福利现有的福利名单
|
||||
List<BenefitUser> benefitUsers = query(Cnd.where("benefitId", "=", businessId));
|
||||
//返回错误记录
|
||||
List<BenefitUserTemp> errorInfos = new ArrayList<>();
|
||||
//添加福利名单数据
|
||||
List<BenefitUser> benefitUserList = new ArrayList<>();
|
||||
for (BenefitUserTemp v : mdList) {
|
||||
View_user user = sysUsers.stream().filter(s -> s.getLoginname().equals(v.getLoginName())).findFirst().orElse(null);
|
||||
if (user != null) {
|
||||
if (benefitUsers.stream().anyMatch(s -> s.getUserId().equals(user.getId()))) {
|
||||
v.setErrorInfo("福利名单中已存在无法在添加");
|
||||
errorInfos.add(v);
|
||||
continue;
|
||||
}
|
||||
BenefitUser benefitUser = new BenefitUser();
|
||||
benefitUser.setUserId(user.getId());
|
||||
benefitUser.setBenefitId(businessId);
|
||||
benefitUser.setUnionId(user.getUnionId());
|
||||
benefitUser.setUnitId(user.getUnitId());
|
||||
benefitUser.setPersonType(user.getPersonType());
|
||||
benefitUser.setUserState(user.getUserState());
|
||||
benefitUser.setLoginName(user.getLoginname());
|
||||
benefitUser.setUserName(user.getUsername());
|
||||
benefitUserList.add(benefitUser);
|
||||
} else {
|
||||
v.setErrorInfo("数据库暂无此人请检查工号");
|
||||
errorInfos.add(v);
|
||||
}
|
||||
}
|
||||
|
||||
insert(benefitUserList);
|
||||
//如果有错误数据就返回给前端
|
||||
if (Lang.isNotEmpty(errorInfos)) {
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
nutMap.setv("totalCount", mdList.size());
|
||||
nutMap.setv("successCount", Math.max(mdList.size() - errorInfos.size(), 0));
|
||||
nutMap.setv("errorCount", errorInfos.size());
|
||||
nutMap.setv("errorList", errorInfos.stream().map(v -> {
|
||||
return NutMap.NEW().addv("工号", v.getLoginName()).addv("姓名", v.getUserName()).addv("错误原因", v.getErrorInfo());
|
||||
}).collect(Collectors.toList()));
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
return Result.success("导入成功");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user