Ver código fonte

fix: 邮件状态调整接口,编辑接口整改

chenjianhua 7 meses atrás
pai
commit
3ac2e41c56

+ 1 - 1
service-base/src/main/java/com/simuwang/base/common/enums/EmailCron.java

@@ -9,7 +9,7 @@ import java.util.stream.Stream;
  * Description: ${DESCRIPTION}
  */
 public enum EmailCron {
-    EVERY_HOUR("1", "0 0 0/1 * * *"), ONE_AM("2", "0 0 13 * * *");
+    EVERY_HOUR("1", "0 0 0/1 * * *"), ONE_AM("2", "0 0 1 * * *");
 
     private final String text;
     private final String cron;

+ 2 - 0
service-base/src/main/java/com/simuwang/base/mapper/AssetMapper.java

@@ -1,6 +1,7 @@
 package com.simuwang.base.mapper;
 
 import com.simuwang.base.pojo.dos.AssetDO;
+import com.simuwang.base.pojo.vo.FundAssetVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -15,4 +16,5 @@ public interface AssetMapper {
 
     List<String> queryFundNavByDate(@Param("fundId") String fundId, @Param("priceDateList") List<String> priceDateList);
 
+    AssetDO queryFundAsset(AssetDO fundAssetVO);
 }

+ 2 - 0
service-base/src/main/java/com/simuwang/base/mapper/MailboxInfoMapper.java

@@ -26,4 +26,6 @@ public interface MailboxInfoMapper extends BaseMapper<MailboxInfoDO> {
     MailboxInfoDO checkEmailUnique(@Param("email") String email);
 
     long countEmailConfig(EmailPageQuery emailPageQuery);
+
+    MailboxInfoDO searchEmailConfigById(@Param("id")Integer id);
 }

+ 17 - 1
service-base/src/main/java/com/simuwang/base/pojo/dos/MailboxInfoDO.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.simuwang.base.pojo.vo.MailboxInfoTableVO;
+import com.simuwang.base.pojo.vo.MailboxInfoVO;
 import lombok.Data;
 
 import java.util.Date;
@@ -93,7 +94,7 @@ public class MailboxInfoDO {
     private Date updateTime;
 
 
-    public MailboxInfoTableVO toVo() {
+    public MailboxInfoTableVO toTableVo() {
         MailboxInfoTableVO vo =new MailboxInfoTableVO();
         vo.setCron(this.cron);
         vo.setId(this.id);
@@ -102,4 +103,19 @@ public class MailboxInfoDO {
         vo.setOpenStatus(this.openStatus);
         return vo;
     }
+
+    public MailboxInfoVO toVo() {
+        MailboxInfoVO vo =new MailboxInfoVO();
+        vo.setCron(this.cron);
+        vo.setId(this.id);
+        vo.setEmail(this.email);
+        vo.setDescription(this.description);
+        vo.setOpenStatus(this.openStatus);
+        vo.setPort(this.port);
+        vo.setServer(this.server);
+        vo.setProtocol(this.protocol);
+        vo.setType(this.type);
+        vo.setPassword(this.password);
+        return vo;
+    }
 }

+ 31 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/FundAssetVO.java

@@ -0,0 +1,31 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * FileName: NavAssetVo
+ * Author:   chenjianhua
+ * Date:     2024/9/14 11:11
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class FundAssetVO {
+    /**
+     * 基金id
+     */
+    private String fundId;
+    /**
+     * 规模日期
+     */
+    private String priceDate;
+    /**
+     * 资产份额
+     */
+    private BigDecimal assetShare;
+    /**
+     * 资产净值(基金规模)
+     */
+    private BigDecimal assetNet;
+}

+ 39 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/FundNavVO.java

@@ -0,0 +1,39 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * FileName: NavAssetVo
+ * Author:   chenjianhua
+ * Date:     2024/9/14 11:11
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class FundNavVO {
+    /**
+     * 基金id
+     */
+    private String fundId;
+    /**
+     * 邮件解析的基金名称
+     */
+    private String fundName;
+    /**
+     * 邮件解析的备案编码
+     */
+    private String registerNumber;
+    /**
+     * 规模日期
+     */
+    private String priceDate;
+    /**
+     * 单位净值
+     */
+    private BigDecimal nav;
+    /**
+     * 累计单位净值
+     */
+    private BigDecimal cumulativeNavWithdrawal;
+}

+ 2 - 2
service-base/src/main/java/com/simuwang/base/pojo/vo/FundReportFrequencyVO.java

@@ -20,11 +20,11 @@ public class FundReportFrequencyVO {
      */
     private String fundId;
     /**
-     * 净值报送频率,1-日频,2-周频,3-月频,4-季频,5-半年,6-年频
+     * 净值报送频率,1-日频,2-周频,3-月频,4-季频,5-半年,6-年频,-1无固定
      */
     private Integer navFrequency;
     /**
-     * 规模报送频率,1-日频,2-周频,3-月频,4-季频,5-半年,6-年频
+     * 规模报送频率,1-日频,2-周频,3-月频,4-季频,5-半年,6-年频,-1无固定
      */
     private Integer assetFrequency;
     /**

+ 17 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/OpenStatusVO.java

@@ -0,0 +1,17 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+/**
+ * FileName: OpenStatusVO
+ * Author:   chenjianhua
+ * Date:     2024/9/14 11:57
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class OpenStatusVO {
+
+    private Integer openStatus;
+
+    private Integer id;
+}

+ 6 - 0
service-base/src/main/resources/mapper/AssetMapper.xml

@@ -48,5 +48,11 @@
             #{priceDate}
         </foreach>
     </select>
+    <select id="queryFundAsset" resultMap="BaseResultMap"
+            parameterType="com.simuwang.base.pojo.dos.AssetDO">
+        select id,fund_id,price_date,asset_net,asset_share,
+               isvalid, creatorid, createtime, updaterid, updatetime
+        from PPW_EMAIL.asset where isvalid=1 and fund_id=#{fundId} and price_date=#{priceDate}
+    </select>
 
 </mapper>

+ 5 - 0
service-base/src/main/resources/mapper/MailBoxInfoMapper.xml

@@ -55,5 +55,10 @@
             and email like concat('%',#{email},'%')
         </if>
     </select>
+    <select id="searchEmailConfigById" resultMap="BaseResultMap"
+            parameterType="java.lang.Integer">
+        <include refid="selectConfigVo"/>
+        where id = #{id}
+    </select>
 
 </mapper>

+ 39 - 5
service-manage/src/main/java/com/simuwang/manage/api/email/EmailConfigController.java

@@ -5,6 +5,7 @@ import com.simuwang.base.pojo.dto.query.EmailPageQuery;
 import com.simuwang.base.pojo.vo.IdVO;
 import com.simuwang.base.pojo.vo.MailboxInfoTableVO;
 import com.simuwang.base.pojo.vo.MailboxInfoVO;
+import com.simuwang.base.pojo.vo.OpenStatusVO;
 import com.simuwang.manage.api.base.BaseController;
 import com.simuwang.manage.service.EmailConfigService;
 import com.smppw.common.pojo.ResultVo;
@@ -12,10 +13,7 @@ import com.smppw.common.pojo.enums.status.ResultCode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -48,7 +46,7 @@ public class EmailConfigController extends BaseController {
      * @param mailboxInfoVO
      * @return
      */
-    @RequestMapping("save-email-config")
+    @PostMapping("save-email-config")
     public ResultVo saveEmailConfig(@RequestBody MailboxInfoVO mailboxInfoVO){
         ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
         try{
@@ -67,6 +65,42 @@ public class EmailConfigController extends BaseController {
     }
 
     /**
+     * 开启关闭邮箱启动状态
+     * @param openStatusVO
+     * @return
+     */
+    @PostMapping("control-email-status")
+    public ResultVo controlEmailConfig(@RequestBody OpenStatusVO openStatusVO){
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        try{
+            emailConfigService.controlEmailConfig(openStatusVO);
+            vo.setData(true);
+        }catch (Exception e){
+            vo.setCode(ResultCode.SAVE_FAILED.getCode());
+            logger.error(e.getMessage(),e);
+        }
+        return vo;
+    }
+
+    /**
+     * 根据ID查询邮箱配置
+     * @param idVO
+     * @return
+     */
+    @GetMapping("search-email-config")
+    public ResultVo searchEmailConfig(IdVO idVO){
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        try{
+            MailboxInfoVO mailboxInfoVO = emailConfigService.searchEmailConfigById(idVO.getId());
+            vo.setData(mailboxInfoVO);
+        }catch (Exception e){
+            vo.setCode(ResultCode.SAVE_FAILED.getCode());
+            logger.error(e.getMessage(),e);
+        }
+        return vo;
+    }
+
+    /**
      * 批量删除邮箱配置
      * @param idVO --idList
      * @return

+ 13 - 0
service-manage/src/main/java/com/simuwang/manage/api/email/ParseEmailDetailController.java

@@ -4,8 +4,10 @@ import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.pojo.dto.query.ParseDetailPageQuery;
 import com.simuwang.base.pojo.vo.EmailFundAssetVO;
 import com.simuwang.base.pojo.vo.EmailFundNavVO;
+import com.simuwang.base.pojo.vo.FundAssetVO;
 import com.simuwang.manage.api.base.BaseController;
 import com.simuwang.manage.service.ParseEmailDetailService;
+import com.smppw.common.pojo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -42,4 +44,15 @@ public class ParseEmailDetailController extends BaseController {
         MybatisPage<EmailFundAssetVO> result = parseEmailDetailService.searchAssetDetail(parseDetailPageQuery);
         return result;
     }
+
+    /**
+     * 规模解析数据详情页面展示查询接口
+     * @param fundAssetVO
+     * @return
+     */
+    @PostMapping("/save-fund-asset")
+    public ResultVo saveFundAsset(@RequestBody FundAssetVO fundAssetVO){
+        parseEmailDetailService.saveFundAsset(fundAssetVO);
+        return ResultVo.ok(true);
+    }
 }

+ 5 - 0
service-manage/src/main/java/com/simuwang/manage/service/EmailConfigService.java

@@ -4,6 +4,7 @@ import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.pojo.dto.query.EmailPageQuery;
 import com.simuwang.base.pojo.vo.MailboxInfoTableVO;
 import com.simuwang.base.pojo.vo.MailboxInfoVO;
+import com.simuwang.base.pojo.vo.OpenStatusVO;
 
 import java.util.List;
 
@@ -23,4 +24,8 @@ public interface EmailConfigService {
     void deleteEmailConfig(List<Integer> idList);
 
     boolean checkEmailUnique(String email);
+
+    MailboxInfoVO searchEmailConfigById(Integer id);
+
+    void controlEmailConfig(OpenStatusVO openStatusVO);
 }

+ 3 - 0
service-manage/src/main/java/com/simuwang/manage/service/ParseEmailDetailService.java

@@ -4,6 +4,7 @@ import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.pojo.dto.query.ParseDetailPageQuery;
 import com.simuwang.base.pojo.vo.EmailFundAssetVO;
 import com.simuwang.base.pojo.vo.EmailFundNavVO;
+import com.simuwang.base.pojo.vo.FundAssetVO;
 
 /**
  * FileName: ParseEmailDetailService
@@ -15,4 +16,6 @@ public interface ParseEmailDetailService {
     MybatisPage<EmailFundNavVO> searchNavDetail(ParseDetailPageQuery parseDetailPageQuery);
 
     MybatisPage<EmailFundAssetVO> searchAssetDetail(ParseDetailPageQuery parseDetailPageQuery);
+
+    void saveFundAsset(FundAssetVO fundAssetVO);
 }

+ 19 - 1
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailConfigServiceImpl.java

@@ -4,6 +4,7 @@ import com.simuwang.base.common.conts.UserConstants;
 import com.simuwang.base.common.enums.EmailCron;
 import com.simuwang.base.common.enums.ResultCode;
 import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.common.util.EmailUtil;
 import com.simuwang.base.common.util.StringUtil;
 import com.simuwang.base.mapper.MailboxInfoMapper;
@@ -13,6 +14,7 @@ import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import com.simuwang.base.pojo.dto.query.EmailPageQuery;
 import com.simuwang.base.pojo.vo.MailboxInfoTableVO;
 import com.simuwang.base.pojo.vo.MailboxInfoVO;
+import com.simuwang.base.pojo.vo.OpenStatusVO;
 import com.simuwang.manage.service.EmailConfigService;
 import jakarta.mail.MessagingException;
 import jakarta.mail.Store;
@@ -41,7 +43,7 @@ public class EmailConfigServiceImpl implements EmailConfigService {
     @Override
     public MybatisPage<MailboxInfoTableVO> searchEmailConfigList(EmailPageQuery emailPageQuery) {
         List<MailboxInfoDO> mailboxInfoOS = emailConfigMapper.searchEmailConfigList(emailPageQuery);
-        List<MailboxInfoTableVO> mailboxInfoTableVOS = mailboxInfoOS.stream().map(MailboxInfoDO::toVo).collect(Collectors.toList());
+        List<MailboxInfoTableVO> mailboxInfoTableVOS = mailboxInfoOS.stream().map(MailboxInfoDO::toTableVo).collect(Collectors.toList());
         for(MailboxInfoTableVO mailboxInfoTableVO : mailboxInfoTableVOS){  //cron表达式转文本描述
             mailboxInfoTableVO.setCron(EmailCron.getEmailCronByCron(mailboxInfoTableVO.getCron()).getText());
         }
@@ -97,6 +99,22 @@ public class EmailConfigServiceImpl implements EmailConfigService {
         return UserConstants.UNIQUE;
     }
 
+    @Override
+    public MailboxInfoVO searchEmailConfigById(Integer id) {
+        MailboxInfoDO mailboxInfoDO = emailConfigMapper.searchEmailConfigById(id);
+        MailboxInfoVO mailboxInfoVO = mailboxInfoDO.toVo();
+        mailboxInfoVO.setCron(EmailCron.getEmailCronByCron(mailboxInfoVO.getCron()).getText());
+        return mailboxInfoVO;
+    }
+
+    @Override
+    public void controlEmailConfig(OpenStatusVO openStatusVO) {
+        MailboxInfoDO mailboxInfoDO = emailConfigMapper.searchEmailConfigById(openStatusVO.getId());
+        mailboxInfoDO.setOpenStatus(openStatusVO.getOpenStatus());
+        mailboxInfoDO.setUpdateTime(DateUtils.getNowDate());
+        emailConfigMapper.updateById(mailboxInfoDO);
+    }
+
     private MailboxInfoDO toMailboxInfoDO(MailboxInfoVO mailboxInfoVO) {
         MailboxInfoDO mailboxInfoDO = new MailboxInfoDO();
         mailboxInfoDO.setIsvalid(1);

+ 32 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailDetailServiceImpl.java

@@ -1,9 +1,13 @@
 package com.simuwang.manage.service.impl;
 
 import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.common.util.StringUtil;
+import com.simuwang.base.mapper.AssetMapper;
 import com.simuwang.base.mapper.EmailFundAssetMapper;
 import com.simuwang.base.mapper.EmailFundNavMapper;
 import com.simuwang.base.mapper.FundInfoMapper;
+import com.simuwang.base.pojo.dos.AssetDO;
 import com.simuwang.base.pojo.dos.CompanyEmailSendHistoryDO;
 import com.simuwang.base.pojo.dos.EmailFundAssetDO;
 import com.simuwang.base.pojo.dos.EmailFundNavDO;
@@ -11,10 +15,13 @@ import com.simuwang.base.pojo.dto.query.ParseDetailPageQuery;
 import com.simuwang.base.pojo.vo.CompanyEmailSendHistoryVO;
 import com.simuwang.base.pojo.vo.EmailFundAssetVO;
 import com.simuwang.base.pojo.vo.EmailFundNavVO;
+import com.simuwang.base.pojo.vo.FundAssetVO;
 import com.simuwang.manage.service.ParseEmailDetailService;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -35,6 +42,9 @@ public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
 
     @Autowired
     private EmailFundAssetMapper emailFundAssetMapper;
+
+    @Autowired
+    private AssetMapper assetMapper;
     @Override
     public MybatisPage<EmailFundNavVO> searchNavDetail(ParseDetailPageQuery parseDetailPageQuery) {
         List<EmailFundNavDO> dataList = emailFundNavMapper.searchNavDetail(parseDetailPageQuery);
@@ -64,4 +74,26 @@ public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
         long total = emailFundAssetMapper.countAssetDetail(parseDetailPageQuery);
         return MybatisPage.of(total,voList);
     }
+
+    @Override
+    public void saveFundAsset(FundAssetVO fundAssetVO) {
+        List<AssetDO> assetDOList = new ArrayList<>();
+        AssetDO assetDO = new AssetDO();
+        assetDO.setAssetNet(fundAssetVO.getAssetNet());
+        assetDO.setAssetShare(fundAssetVO.getAssetShare());
+        assetDO.setPriceDate(DateUtils.parse(fundAssetVO.getPriceDate(),DateUtils.YYYY_MM_DD));
+        assetDO.setFundId(fundAssetVO.getFundId());
+        assetDO.setCreateTime(DateUtils.getNowDate());
+        assetDO.setUpdateTime(DateUtils.getNowDate());
+        assetDO.setIsvalid(1);
+        assetDOList.add(assetDO);
+        AssetDO oldAssetDO = assetMapper.queryFundAsset(assetDO);
+        if(StringUtil.isNull(oldAssetDO)){
+            assetMapper.batchInsert(assetDOList);
+        }else{
+            oldAssetDO.setAssetShare(assetDO.getAssetShare());
+            oldAssetDO.setAssetNet(assetDO.getAssetNet());
+            assetMapper.batchInsert(assetDOList);
+        }
+    }
 }