This commit is contained in:
Paidax
2024-11-29 09:03:59 +08:00
commit 2ffadd89a7
3480 changed files with 879405 additions and 0 deletions
@@ -0,0 +1,85 @@
package io.v.nutz.zhgh.mobileHome.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.mainPage.models.NeedItems;
import io.v.nutz.zhgh.mobileHome.models.MobileHome;
import io.v.nutz.zhgh.mobileHome.service.MobileHomeService;
import io.v.nutz.zhgh.welfare.model.WelfareProject;
import io.v.nutz.zhgh.welfare.service.WelfareProjectService;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
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 java.util.List;
@IocBean
@Slf4j
@Ok("json:full")
@At("/platform/sys/mobileHome")
public class MobileHomeController {
@Inject
private MobileHomeService mobileHomeService;
@Inject
private WelfareProjectService welfareProjectService;
@At("")
@Ok("beetl:/platform/mobileHome/mobileHome.html")
@RequiresPermissions("sys.manager.mobileHome")
public void index() {
}
@At
@ViReturn
@RequiresPermissions("sys.manager.mobileHome")
public Object pageData(PageForm pageForm,
@Param(value = "name", required = false) String name) {
Cnd cnd = Cnd.NEW();
return mobileHomeService.pageData(pageForm, cnd);
}
@At
@ViReturn
@RequiresPermissions("sys.manager.mobileHome")
public Object doHandle(MobileHome mobileHome) {
mobileHomeService.insertOrUpdate(mobileHome);
return null;
}
@At
@ViReturn
@RequiresPermissions("sys.manager.mobileHome")
public Object doDelete(String id) {
mobileHomeService.delete(id);
return null;
}
@At
@ViReturn
@RequiresPermissions("sys.manager.mobileHome")
public Object getWelfareList() {
return welfareProjectService.getIngWelfareProject();
}
@At
@ViReturn
@RequiresPermissions("sys.manager.mobileHome")
public Object updateStatus(String id, Boolean enableStatus) {
mobileHomeService.update(Chain.make("enableStatus", enableStatus)
, Cnd.where("id", "=", id));
return null;
}
}
@@ -0,0 +1,82 @@
package io.v.nutz.zhgh.mobileHome.models;
import io.v.nutz.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
@Data
@Table
@EqualsAndHashCode(callSuper = true)
public class MobileHome extends BaseModel {
public MobileHome() {
this.setId("");
this.setName("");
this.setType("");
this.setLink("");
this.setCoverPicture("");
this.setEnableStatus(true);
this.setSignUpStartTime("");
this.setSignUpEndTime("");
this.setActivityGroupId(null);
this.setWelfareProjectId("");
this.setBigPicture(1);
}
@Column
@Name
@Comment("id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String id;
@Column
@Comment("名称")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String name;
@Column
@Comment("类型")
@ColDefine(type = ColType.VARCHAR, width = 20)
private String type;
@Column
@Comment("跳转路径")
@ColDefine(type = ColType.VARCHAR, width = 300)
private String link;
@Column
@Comment("封面图")
@ColDefine(type = ColType.VARCHAR, width = 100)
private String coverPicture;
@Column
@Comment("是否启用")
@ColDefine(type = ColType.BOOLEAN)
private Boolean enableStatus;
@Column
@Comment("开始时间")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String signUpStartTime;
@Column
@Comment("结束时间")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String signUpEndTime;
@Column
@Comment("活动范围id")
@ColDefine(type = ColType.INT)
private Integer activityGroupId;
@Column
@Comment("福利项目id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String welfareProjectId;
@Column
@Comment("是否是首页大图")
@ColDefine(type = ColType.INT)
private Integer bigPicture;
}
@@ -0,0 +1,34 @@
package io.v.nutz.zhgh.mobileHome.models;
import io.v.nutz.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
@Data
@Table
@EqualsAndHashCode(callSuper = true)
public class MobileHomeMappingBiz extends BaseModel {
@Column
@Name
@Comment("id")
@ColDefine(type = ColType.VARCHAR, width = 32)
@Prev(els = {@EL("uuid()")})
private String id;
@Column
@Comment("类型")
@ColDefine(type = ColType.VARCHAR, width = 20)
private String type;
@Column
@Comment("你自己业务的字段名")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String yourColumnName;
@Column
@Comment("对应移动端首页的字段名")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String mobileHomeColumnName;
}
@@ -0,0 +1,21 @@
package io.v.nutz.zhgh.mobileHome.service;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.mobileHome.models.MobileHome;
import org.nutz.dao.Cnd;
public interface MobileHomeService extends ViService<MobileHome> {
Pagination pageData(PageForm pageForm, Cnd cnd);
/**
* 保存到移动端首页
* @param obj 业务实体类
* @param type 类型
* @param link 移动端跳转路径
* @return true or false
*/
Boolean handle(Object obj, String type, String link, Integer bigPicture);
}
@@ -0,0 +1,82 @@
package io.v.nutz.zhgh.mobileHome.service.impl;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.zhgh.mobileHome.models.MobileHome;
import io.v.nutz.zhgh.mobileHome.models.MobileHomeMappingBiz;
import io.v.nutz.zhgh.mobileHome.service.MobileHomeService;
import io.v.nutz.sys.models.Sys_file;
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.Lang;
import org.nutz.lang.util.NutMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@IocBean(args = {"refer:dao"})
public class MobileHomeServiceImpl extends ViServiceImpl<MobileHome> implements MobileHomeService {
public MobileHomeServiceImpl(Dao dao) {
super(dao);
}
@Override
public Pagination pageData(PageForm pageForm, Cnd cnd) {
Sql sql = Sqls.create("""
SELECT
m.*,
d.NAME as typeName
FROM
mobile_home m
LEFT JOIN sys_dict d ON d.CODE = m.type
$condition
""");
sql.setCondition(cnd);
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
@Override
public Boolean handle(Object obj, String type, String link, Integer bigPicture) {
if(obj == null || StrUtil.isBlank(type)) {
return false;
}
//根据type查询映射关系
List<MobileHomeMappingBiz> mappingList = dao().query(MobileHomeMappingBiz.class, Cnd.where("type", "=", type));
//分组
Map<String, String> columnMap = mappingList.stream().collect(Collectors.toMap(MobileHomeMappingBiz::getMobileHomeColumnName, MobileHomeMappingBiz::getYourColumnName));
//进行转换
NutMap nutMap = Lang.obj2nutmap(obj);
NutMap mobileHomeMap = Lang.obj2nutmap(new MobileHome());
mobileHomeMap.keySet().forEach(key -> {
if(columnMap.get(key) != null) {
Object o = nutMap.get(columnMap.get(key));
if("coverPicture".equals(key)) {
if (o instanceof List) {
List<Sys_file> list = (List<Sys_file>) o;
mobileHomeMap.put(key, Lang.isNotEmpty(list) ? list.get(0).getFilepath() : null);
} else if(o instanceof String) {
mobileHomeMap.put(key, o);
} else {
Sys_file file = (Sys_file) o;
mobileHomeMap.put(key, Lang.isNotEmpty(file) ? file.getFilepath() : null);
}
} else {
mobileHomeMap.put(key, o);
}
}
});
MobileHome mobileHome = Lang.map2Object(mobileHomeMap, MobileHome.class);
mobileHome.setLink(link);
mobileHome.setType(type);
mobileHome.setBigPicture(bigPicture);
MobileHome home = dao().insertOrUpdate(mobileHome);
return home != null;
}
}