From 8ad692b50bb49b2e518e68bb43f3d69c60aec428 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 24 Nov 2020 15:31:01 +0800 Subject: [PATCH] THEME --- .../basic/WxMiniappThemeController.java | 127 ++++++++++++++++++ .../controller/WxMiniappThemeController.java | 58 ++++++++ .../iformall/domain/po/WxMiniappTheme.java | 36 +++++ .../domain/po/WxMiniappThemeDeploy.java | 26 ++++ .../domain/po/WxMiniappThemeValue.java | 34 +++++ .../iformall/mapper/WxMiniappThemeMapper.java | 48 +++++++ .../service/WxMiniappThemeService.java | 50 +++++++ .../impl/WxMiniappThemeServiceImpl.java | 103 ++++++++++++++ .../resources/mapper/WxMiniappThemeMapper.xml | 76 +++++++++++ 9 files changed, 558 insertions(+) create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMiniappThemeController.java create mode 100644 mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxMiniappTheme.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeDeploy.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeValue.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxMiniappThemeMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxMiniappThemeService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxMiniappThemeServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxMiniappThemeMapper.xml diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMiniappThemeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMiniappThemeController.java new file mode 100644 index 000000000..5b74a1e8b --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMiniappThemeController.java @@ -0,0 +1,127 @@ +package com.iformall.controller.basic; + +import com.github.pagehelper.PageInfo; +import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.config.WechatWebProperties; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.WxWeappInfo; +import com.iformall.enums.EnumGroupSupport; +import com.iformall.enums.EnumInvestUserType; +import com.iformall.enums.EnumUserAdmin; +import com.iformall.service.*; +import com.iformall.shiro.PasswordHelper; +import com.iformall.utils.Constant; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.util.Assert; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +@RestController +@Api(description = "MiniappTheme相关接口") +@RequestMapping("wxMiniappTheme") +public class WxMiniappThemeController extends BaseController { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxMiniappThemeService wxMiniappThemeService; + + @ApiOperation("查询MiniappTheme列表") + @GetMapping(value = "/list") + @SystemControllerLog(description = "查询MiniappTheme列表") + @TenantIgnore + public ResultData getList(@ModelAttribute WxMiniappTheme wxMiniappTheme, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxMiniappThemeController::getList"); + try { + if(wxMiniappTheme == null){ + wxMiniappTheme = new WxMiniappTheme(); + } + wxMiniappTheme.setTenantId(getTenantInfo().getTenantId()); + PageInfo page = wxMiniappThemeService.listAsPage(wxMiniappTheme, pageNum, pageSize); + if(page.getTotal() == 0){ + wxMiniappTheme.setTenantId("1"); + page = wxMiniappThemeService.listAsPage(wxMiniappTheme, pageNum, pageSize); + } + return new ResultData(page); + }catch (Exception e){ + logger.error(e.getMessage(),e); + return new ResultData(ErrorCode.SYS_SERVER_ERROR); + } + } + + @ApiOperation("根据id使之生效") + @GetMapping("/updateEffect") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "根据id使之生效") + @TenantIgnore + public ResultData updateEffect(Long id) { + logger.debug("[" + getIpAddr() + "] WxMiniappThemeController::updateEffect"); + if(id == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + wxMiniappThemeService.updateEffect(id); + return new ResultData(Result.SUCCESS, "删除成功", null); + } + + @ApiOperation("根据id删除接口") + @GetMapping("/del") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "-删除") + @TenantIgnore + public ResultData delete(Long id) { + logger.debug("[" + getIpAddr() + "] WxMiniappThemeController::delete"); + if(id == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + wxMiniappThemeService.updateDel(id); + return new ResultData(Result.SUCCESS, "删除成功", null); + } + + @PostMapping("add") + @SystemControllerLog(description = "-添加") + @TenantIgnore + public ResultData add(@RequestBody WxMiniappTheme wxMiniappTheme) { + logger.debug("[" + getIpAddr() + "] WxMiniappThemeController::add"); + if(wxMiniappTheme == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + wxMiniappTheme.setTenantId(getTenantInfo().getTenantId()); + wxMiniappThemeService.saveOrUpdate(wxMiniappTheme); + return new ResultData(); + } + + @PostMapping("update") + @SystemControllerLog(description = "集团-更新") + public ResultData update(@RequestBody WxMiniappTheme wxMiniappTheme) { + logger.debug("[" + getIpAddr() + "] WxMiniappThemeController::update"); + if(wxMiniappTheme == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + wxMiniappTheme.setTenantId(getTenantInfo().getTenantId()); + wxMiniappThemeService.saveOrUpdate(wxMiniappTheme); + return new ResultData(); + } + + + + +} diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java new file mode 100644 index 000000000..6c119fb37 --- /dev/null +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java @@ -0,0 +1,58 @@ +package com.iformall.controller; + +import com.github.pagehelper.PageInfo; +import com.iformall.annotation.TenantIgnore; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxMiniappTheme; +import com.iformall.domain.po.WxMiniappThemeValue; +import com.iformall.service.WxMiniappThemeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api(description = "/api/MiniappTheme相关接口") +@RequestMapping("wxMiniappTheme") +public class WxMiniappThemeController extends BaseController { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxMiniappThemeService wxMiniappThemeService; + + @ApiOperation("查询MiniappTheme列表") + @GetMapping(value = "/getOne") + @TenantIgnore + public ResultData getOne() { + logger.debug("[" + getIpAddr() + "] WxMiniappThemeController::getOne"); + try { + WxMiniappTheme wxMiniappTheme = new WxMiniappTheme(); + wxMiniappTheme.setStatus(0); + wxMiniappTheme.setTenantId(getTenantInfo().getTenantId()); + List list = wxMiniappThemeService.findList(wxMiniappTheme); + if(list == null || list.size() == 0){ + wxMiniappTheme.setTenantId("1"); + list = wxMiniappThemeService.findList(wxMiniappTheme); + } + if(list == null || list.size() == 0){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + WxMiniappTheme wxMiniappTheme1 = list.get(0); + List childList = wxMiniappThemeService.findChildList(wxMiniappTheme1.getId()); + wxMiniappTheme1.setWxMiniappThemeValue(childList); + return new ResultData(wxMiniappTheme1); + }catch (Exception e){ + logger.error(e.getMessage(),e); + return new ResultData(ErrorCode.SYS_SERVER_ERROR); + } + } + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappTheme.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappTheme.java new file mode 100644 index 000000000..2d5bfb2cb --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappTheme.java @@ -0,0 +1,36 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@TableName(value = "wx_miniapp_theme") +@Data +public class WxMiniappTheme implements Serializable { + + protected Long id; + protected String tenantId; + + @io.swagger.annotations.ApiModelProperty(value="名称",name="name") + private String name; + @io.swagger.annotations.ApiModelProperty(value="说明",name="remarks") + private String remarks; + @io.swagger.annotations.ApiModelProperty(value="预览图片",name="previewUrl") + private String previewUrl; + @io.swagger.annotations.ApiModelProperty(value="0:生效中,1:失效",name="status") + private Integer status; + + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") + private Date createDate; + @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") + private Date updateDate; + + @TableField(exist = false) + private List wxMiniappThemeValue; + + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeDeploy.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeDeploy.java new file mode 100644 index 000000000..1a8cb765a --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeDeploy.java @@ -0,0 +1,26 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@TableName(value = "wx_miniapp_theme_deploy") +@Data +public class WxMiniappThemeDeploy implements Serializable { + + protected Long id; + + @io.swagger.annotations.ApiModelProperty(value="名称",name="name") + private String name; + @io.swagger.annotations.ApiModelProperty(value="说明",name="remarks") + private String remarks; + + @io.swagger.annotations.ApiModelProperty(value="图标",name="defaultIcon") + private String defaultIcon; + @io.swagger.annotations.ApiModelProperty(value="样式",name="defaultStyle") + private String defaultStyle; + + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeValue.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeValue.java new file mode 100644 index 000000000..cd4241be2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMiniappThemeValue.java @@ -0,0 +1,34 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@TableName(value = "wx_miniapp_theme_value") +@Data +public class WxMiniappThemeValue implements Serializable { + + protected Long id; + + @io.swagger.annotations.ApiModelProperty(value="主题ID",name="miniappThemeId") + private Long miniappThemeId; + + @io.swagger.annotations.ApiModelProperty(value="配置ID",name="miniappDeployId") + private Long miniappDeployId; + + @io.swagger.annotations.ApiModelProperty(value="图标",name="icon") + private String icon; + @io.swagger.annotations.ApiModelProperty(value="样式",name="styleClass") + private String styleClass; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="名称",name="name") + private String name; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="说明",name="remarks") + private String remarks; + + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMiniappThemeMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMiniappThemeMapper.java new file mode 100644 index 000000000..6d2e6e1ad --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMiniappThemeMapper.java @@ -0,0 +1,48 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxMiniappTheme; +import com.iformall.domain.po.WxMiniappThemeDeploy; +import com.iformall.domain.po.WxMiniappThemeValue; + +import java.util.List; + +/** + * @author + */ +public interface WxMiniappThemeMapper extends CommonMapper { + + List findList(WxMiniappTheme record); + + List findChildList(Long id); + + /** + * 使生效 + * @param record + */ + void updateStatus(WxMiniappTheme record); + + /** + * 伪删除 + * @param record + */ + void updateDel(WxMiniappTheme record); + + /** + * 查配置 + * @return + */ + List findDeployList(); + + /** + * 删value + * @param record + */ + void deleteValue(WxMiniappTheme record); + + /** + * 加value + * @param record + */ + void insertValue(WxMiniappThemeValue record); +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxMiniappThemeService.java b/mallinkService/src/main/java/com/iformall/service/WxMiniappThemeService.java new file mode 100644 index 000000000..e876a55b2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxMiniappThemeService.java @@ -0,0 +1,50 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.*; + +import java.util.List; + +public interface WxMiniappThemeService { + + List findList(WxMiniappTheme record); + + PageInfo listAsPage(WxMiniappTheme record, Integer pageIndex, Integer pageSize); + + WxMiniappTheme getById(WxMiniappTheme record); + + List findChildList(Long id); + /** + * 使生效 + * @param id + * @return + */ + void updateEffect(Long id); + + /** + * 伪删除 + * @param id + */ + void updateDel(Long id); + + /** + * 查配置 + * @return + */ + List findDeployList(); + + void saveOrUpdate(WxMiniappTheme record); + + /** + * 根据Theme删value + * @param id + */ + void deleteValue(Long id); + + /** + * 加value + * @param record + */ + void insertValue(WxMiniappThemeValue record); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMiniappThemeServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMiniappThemeServiceImpl.java new file mode 100644 index 000000000..fd2d48c38 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMiniappThemeServiceImpl.java @@ -0,0 +1,103 @@ +package com.iformall.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxMiniappTheme; +import com.iformall.domain.po.WxMiniappThemeDeploy; +import com.iformall.domain.po.WxMiniappThemeValue; +import com.iformall.mapper.WxMiniappThemeMapper; +import com.iformall.service.WxMiniappThemeService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class WxMiniappThemeServiceImpl implements WxMiniappThemeService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxMiniappThemeMapper wxMiniappThemeMapper; + + @Override + public List findList(WxMiniappTheme record) { + return wxMiniappThemeMapper.findList(record); + } + + @Override + public PageInfo listAsPage(WxMiniappTheme record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMiniappThemeMapper.findList(record)); + } + + @Override + public WxMiniappTheme getById(WxMiniappTheme record) { + WxMiniappTheme wxMiniappTheme = wxMiniappThemeMapper.selectById(record.getId()); + List childList = wxMiniappThemeMapper.findChildList(record.getId()); + wxMiniappTheme.setWxMiniappThemeValue(childList); + return wxMiniappTheme; + } + + @Override + public List findChildList(Long id) { + return wxMiniappThemeMapper.findChildList(id); + } + + @Override + public void updateEffect(Long id) { + WxMiniappTheme wxMiniappTheme = wxMiniappThemeMapper.selectById(id); + wxMiniappThemeMapper.updateStatus(wxMiniappTheme); + } + + @Override + public void updateDel(Long id) { + WxMiniappTheme record = new WxMiniappTheme(); + record.setId(id); + wxMiniappThemeMapper.updateDel(record); + } + + @Override + public List findDeployList() { + return wxMiniappThemeMapper.findDeployList(); + } + + @Override + public void saveOrUpdate(WxMiniappTheme record) { + final IdWorker idWorker = IdWorker.get(); + Date curr = new Date(); + if (record.getId() == null) { + record.setId(idWorker.nextId()); + record.setCreateDate(curr); + record.setUpdateDate(curr); + wxMiniappThemeMapper.insert(record); + + } else { + record.setUpdateDate(curr); + wxMiniappThemeMapper.updateById(record); + wxMiniappThemeMapper.deleteValue(record); + } + if(record.getWxMiniappThemeValue() != null && record.getWxMiniappThemeValue().size() > 0){ + for (WxMiniappThemeValue value:record.getWxMiniappThemeValue()) { + value.setId(idWorker.nextId()); + wxMiniappThemeMapper.insertValue(value); + } + } + } + + @Override + public void deleteValue(Long id) { + WxMiniappTheme record = new WxMiniappTheme(); + record.setId(id); + wxMiniappThemeMapper.deleteValue(record); + } + + @Override + public void insertValue(WxMiniappThemeValue record) { + wxMiniappThemeMapper.insertValue(record); + } + +} diff --git a/mallinkService/src/main/resources/mapper/WxMiniappThemeMapper.xml b/mallinkService/src/main/resources/mapper/WxMiniappThemeMapper.xml new file mode 100644 index 000000000..8e9209a74 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxMiniappThemeMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`name`,`remarks`,`preview_url`,`status`,`create_date`,`update_date` + + + + where del_status = 0 + and `id` = #{id} + + and `tenant_id` = #{tenantId} + + and `name` like concat('%', #{name},'%') + + and `status` = #{status} + + order by create_date asc + + + + + + + + update wx_miniapp_theme set `status` = 0, update_date = now() where id = #{id} and del_status = 0; + update wx_miniapp_theme set `status` = 1, update_date = now() where tenant_id = #{tenantId} and id != #{id} and `status` = 0 and del_status = 0 ; + + + + update wx_miniapp_theme set `del_status` = 1, update_date = now() where id = #{id}; + + + + + + + + delete from wx_miniapp_theme_value where miniapp_theme_id = #{id}; + + + + INSERT INTO wx_miniapp_theme_value (id,miniapp_theme_id,miniapp_deploy_id,icon,style_class) + VALUES (#{id},#{miniappThemeId},#{miniappDeployId},#{icon},#{styleClass}); + + + +